Oracle 11g 物理存储结构

  Oracle 系统的物理存储结构比较具体和直观,它用来描述 Oracle 数据在磁盘上的物理组成情况。Oracle 系统的数据在逻辑上存储在表空间中,而在物理上存储在表空间所包含的物理文件(即数据文件)中。

  Oracle 数据库的物理存储结构由多种物理文件组成,主要由数据文件、控制文件、重做日志文件、归档日志文件、参数文件、口令文件和警告日志文件等。

一、数据文件

  数据文件时用于保存用户应用程序数据和 Oracle 系统内部数据的文件,这些文件在操作系统中就是普通的系统文件, Oracle 在创建表空间的同时会创建数据文件。Oracle 数据库在逻辑上由表空间组成,每个表空间可以包含一个或多个数据文件,一个数据文件只能隶属于一个表空间。

  在创建表空的同时,Oracle 会创建该表空间的数据文件。在表空间中创建数据对象(如表、索引、序列等)时,用户是无法指定使用哪一个数据文件来进行存储的,只能由 Oracle 系统负责为数据对象选择集体的数据文件,并在其中分配物理存储空间。一个数据对象的数据可以全部存储在一个数据文件中,也可以分布存储在一个表空的多个数据文件中。

  在读取数据时,Oracle系统首先从数据文件中读取数据,并将数据存储在内存的高数缓冲区中。如果用户要读取数据库的某些数据,而请求的数据又不在内存的高速数据缓冲区中,则需要从相应的数据文件中读取数据并存储在缓冲区中。当修改和插入数据时,Oracle 不会立即将数据写入数据文件,而是把这些数据保存在数据缓冲区中,然后由 Oracle 的后台进程 DBWR 决定如何将其写入相应的数据文件。这样的存取方式减少了磁盘的 I/O 操作,提高了系统的响应性能。

  数据文件又可以分为3种类型:系统数据文件(system01.dbf 和 sysaux01.dbf )、撤销数据文件(undotbs01.dbf)和用户数据文件(users01.dbf、example01.dbf、tbsp_1.dbf和 tbsp_2.dbf)。

  1、系统数据文件

  用于存放“特殊” 的用户数据和 Oracle 系统本身的数据,如用户建立的表名、列名及字段类型等,这些属于用户数据范畴,这些数据将存放在系统表空间所包含的数据文件中;而 Oracle 系统内部的数据字典、系统表中所存储的数据属于 Oracle 系统的内部数据,这些数据也存放在系统表空间所包含的数据文件中。

  2、撤销数据文件

  撤销数据文件隶属于撤销表空间。如果修改 Oracle 数据库中的数据,那么就必须使用撤销段,撤销段用来临时存放修改前的旧数据,而撤销段通常存放一个单纯的撤销表空间中,这个撤销表空间所包含的数据文件就是撤销数据文件。

  3、用户数据文件

  用户数据文件用于存放用户应用系统的数据,这些数据包括与应用系统有关的所有相关信息。

二、控制文件

  控制文件时一个二进制文件,记录了数据库的物理结构,其中主要包含数据库名、数据文件与日志文件的名字和位置、数据库建立日期等信息。控制文件一般在 Oracle 系统安装时或创建数据库时自动创建,控制文件所存放的路径由服务器参数文件 spfileorcl.ora 的 control_files 参数值来指定。

  由于控制文件存放有数据文件、日志文件等的相关信息,因此, Oracle 实例在启动时必须访问控制文件。只有控制文件正常,实例才能加载并打开数据库;但若控制文件中记录了错误的信息,或者实例无法找到一个可用的控制文件,则实例无法正常启动。

  当 Oracle 实例在正常启动时,系统首先要访问的初始化参数文件 spfile,然后 Oracle 为系统全局区(SGA) 分配内存。这时, Oracle 实例处于安装状态,并且控制文件处于打开状态;接下来 Oracle 会自动读出 “控制文件” 中的所有数据文件和日志文件的信息,并打开当前数据库中所有的数据文件和所有的日志文件以供用户访问。

  每个数据库至少拥有以供控制文件,以供数据库可以同时拥有多个控制文件,但是以供控制文件只能属于一个数据库。控制文件内部除了存放数据库名及其创建日期、数据文件、日志文件等的相关的信息之外,在系统运行过程中,还存放系统更改好、检查点信息及归档的当前状态等信息。

  出于安全考虑,在安装 Oracle 数据库或创建数据库时,Oracle 数据库系统会自动创建两个或3个控制文件,每个控制文件记录相同的信息。这样可确保在数据库运行时,如果某个控制文件损坏, Oracle 会自动使用另外一个控制文件,当所有的控制文件都损坏时,系统将无法工作。

三、日志文件

四、服务器参数文件

五、密码文件、警告文件和跟踪文件

猜你喜欢

转载自www.cnblogs.com/niujifei/p/10953547.html