数据库基础原理1:Oracle数据库体系结构

来源:这里教程网 时间:2026-03-03 13:19:46 作者:

    数据库和实例 数据库,是信息的物理存储,是磁盘上看的见的物理文件。 实例,是服务器上运行的软件,表现为一大块内存和一系列后台进程。

如图所示:     一个数据库可以有多个实例(在RAC架构中),但一个实例属于且仅属于一个数据库。在单实例环境中,实例和数据库是一对一的。       首先,如图,打开实例,分配一系列内存空间,和启动一系列的后台进程    然后,在挂在和打开数据库: 对于单实例架构,如上图,一个实例对应一个数据库:  通过视图或参数查询实例信息:  通过视图或参数查询数据库信息:      默认情况,他们的名字是一样的。但完全不是一回事,instance_name 实例名称,可以通过参数修改。而db_name则不能随意修改,它被记录在数据文件,控制文件和日志文件中,它标识着这些文件是作为一个数据库整体的一致性存在。每个文件标记着db_name,意味着它们是一个组织单元,一起组成一个完成的数据库。所以db_name不能轻易修改。      操作系统通过instance_name去找到参数文件,然后找到需要的实例。 而实例通过db_name,找到一系列文件,这些文件一起完整组成一个数据库。    而对于RAC架构,如图,多个实例,对应一个数据库。      通过视图或参数查询实例: 节点1: 节点2: 名称是不一样的。 通过视图或参数查询数据库: 节点1: 节点2: 两个节点的数据库名称db_name,是一样的。 因为它们是共享一套数据库。        我们不能像操作文件系统的文件一样,直接修改访问数据库,必须通过实例去访问。        数据库是相对静态的,它是一个孤岛。而实例就是通往孤岛的航船。     上面说到数据库和实例的区别和联系。下面分别说明。     2.  数据库       上面说到,数据库是磁盘上一系列的物理文件,这些文件不是杂乱堆放的,上面说的DB_NAME就像是一根线,把它们串联起来。仅仅串联起来,还不能撑起一个庞大系统。所以,他们是有结构的,也就是存储结构。而存储结构又分物理结构和逻辑结构。       (1)物理存储结构         简而言之,就是划分了哪些文件,它们在物理上是怎么存储的,以及它们分别的作用是什么。         最重要的就是三大关键文件:数据文件,控制文件,在线重做日志文件。 如图:         非关键文件包括:         参数文件, 密码文件,归档日志文件,告警文件,跟踪文件,备份文件        【数据文件】:最基础的文件,存储 数据库的实际数据。 逻辑数据库结构(例如表和索引)的业务数据是物理存储在数据文件中的。维护数据结构信息的数据字典,用于实现多用户并发的回滚段等也都存储在数据文件中。        查询数据文件:         【块】: 而数据文件是由Oracle数据库的数据块组成,如图:   数据库实例根据用户的操作和需要,以Oracle数据库块为单位,将数据读入内存中。,同样,实例也会根据需要将数据库块从内存中写入磁盘中的数据文件。而数据库块由磁盘上操作系统的数据块组成。       查询 块 大小:     块 大小 是一次读或写操作的最小数据量。 一般情况下,OLTP系统,每次提取的数据较少,更小的块可能更为合适,Oracle不会因为传输大块而浪费资源。对于OLAP,每次操作,动辄上百万的数据行,使用较大的数据块则更为合适。     【数据文件首部】,数据文件的第一个数据块,为数据文件首部。它记录了维护整个数据库完整性的关键信息。像上面提到的DB_NAME 就记录在里面。还一个重要的信息,检查点结构(SCN)。        SCN,是一个逻辑时间戳,记录了改动该数据文件的最后时刻。对于数据库的恢复,至关重要。        DB_NAME 只是串联起控制文件,数据文件,重做日志文件,是它们作为一个整体。而SCN就是让它们保持步调一致,在前进的过程中,标记自己的时间坐标。              待续....

相关推荐