一.概念普及
控制文件包括数据库的状态和数据库的物理结构信息,主要包括数据库名.数据库标识符(DBID),数据库字符集,数据文件信息
临时文件信息,在线重做日志文件信息,表空间信息,rman信息,检查点信息,还原点信息
在数据库mount状态,数据库会打开控制文件读取数据文件和在线日志的路径,数据库在open状态会打开所有数据文件和在线日志
所有的控制文件内容是相同的,他们之间互为在线副本或镜像。当进程读取控制文件内容时总是读取第一个控制文件,当除第一个以外的其他控制文件出问题时,只有写操作会出错,读操作正常。但是只要其中一个出现问题,实例拒绝mount.
增加控制文件的不走
1.设置control_files参数
SYS@orcl>alter system set control_files='/u01/app/oracle/oradata/orcl/control01.ctl','/u01/app/oracle/oradata/orcl/control03.ctl','/u01/app/oracle/fast_recovery_area/orcl/control02.ctl' scope=spfile;
2.关闭数据库实例
SYS@orcl>shutdown immediate;
3.复制控制文件到conttrol_files中指定的新位置
SYS@orcl>host cp /u01/app/oracle/oradata/orcl/control01.ctl /u01/app/oracle/oradata/orcl/control03.ctl
4.启动数据库实例
SYS@orcl>startup;
二.控制文件备份
1.自动备份
a.显式自动备份,rman中设置configure autobackup为on,当使用此功能时,oracle会在下面两种时刻备份控制文件
(1).rman命令执行任何备份操作成功后会自动备份控制文件
例如
RMAN> backup datafile 4;
(2).数据库增减表空间或者表空间中添加数据文件
例如
alter tablespace users add datafile '/oracle/app/oracle/oradata/orcl/users02.dbf'
需要注意的一点是,orale11g有控制文件自动备份延迟的特性,就是说即使设置了控制文件的自动备份,在数据库结构发生改变之后也不会立即在指定目录看到控制文件的备份,而是过一段时间才能看到,这是为了防由于数据库结构发生多次改变而频繁的备份控制文件
这个延迟的时间由oracle的隐含参数_controlfile_autobackup_delay决定,缺省值为300s.
b.隐式自动备份
如果rman中 'controlfile autobackup'设置为off,中药使用rman命令备份system表空间中的第一个数据文件,也就是一号数据文件,控制文件就会自动备份
2.手动备份
a,通过rman备份
backup as backupset current controlfile;
b.通过sqlplus备份
alter database backup controlfile to '/home/oracle/control02.ctl'
c.重建脚本
alter database backup controlfile to trace
在trace文件中有重建控制文件的命令