第六章Maintaining the Control File
本节学习要求
1、了解控制文件使用方式
2、了解控制文件内容
3、多路径管理控制文件
4、利用OMF管理控制文件
5、获取控制文件信息
控制文件
小的二进制文件
定义了物理数据库的当前状态
维护数据库的完整性
使用场景:数据库mount过程读取控制文件;数据库运行过程需要控制文件
一个控制文件对应一个数据库,一个数据库可以对应多个控制文件
可以通过恢复找回控制文件
初始大小由create database决定
控制文件大小是create database执行过程中MAXDATAFILES,MAXLOGFILES,
MAXLOGMEMBERS,MAXLOGHISTORY,MAXINSTANCES等参数决定的,这些参数值越大,控制文件大小越大。
启动数据库nomount
1、在$ORACLE_HOME/dbs目录下读取初始化参数文件
①读取spfileSID.ora文件
②spfileSID.ora文件找不到就读取spfile.ora文件
③spfile.ora文件也找不到,就读取initSID.ora文件
以上三个文件都找不到,需要在startup过程指定pfile文件位置
2、分配SGA
3、启动后台进程
4、打开alertSID.log文件和trace文件
在初始化参数文件或startup命令执行过程中需要指定DB_NAME参数
数据库mount状态包括以下过程
为instance分配一个数据库
定位并打开参数文件中定义的控制文件
读取控制文件,获取数据文件和联机重做日志文件的名称和状态,但是并不检查数据文件和联机重做日志文件是否存在
数据库open状态包括以下过程
打开数据文件
打开联机重做日志文件
如果数据文件或联机重做日志文件不存在,数据库会提示出错
最后,Oracle server会检查数据文件和联机重做日志文件是否可以打开,同时检查数据库的一致性。必要时SMON进程会进行实例恢复。
控制文件内容
数据库名称和ID
数据库创建时间戳
表空间名称
数据文件和联机重做日志文件的名称及位置
当前联机重做日志文件的序列号
检查点信息
undo段的起点和终点信息
redo log归档信息
备份信息
控制文件丢失并不致命,只是恢复会比较麻烦
至少需要两个控制文件,初始化参数文件中CONTROL_FILES会记录所有控制文件的位置,数据库会向所有的控制文件中同时更新信息,所以所有控制文件始终都是一致的。
Oracle读取控制文件时,只读取CONTROL_FILES参数中的第一个控制文件
Oracle数据库运行期间只要有一个控制文件不可使用,实例就会崩溃