第三章 控制文件
1.功能特点
记录数据库当前的物理状态
维护数据库的一致性,是一个二进制的小文件
在mount阶段被读取,记录rman备份的元数据
查看database控制文件的位置
Show parameter control_file
Select name from v$controlfile
2实时更新机制
当增加,重命名删除一个数据文件或者一个联机日志文件时,oracle服务器进程会立即更新控制文件以反映数据结构的变化。
日志写进程lgwr负责把当前日志序列号记录到控制文件中。
检查点进程ckpt负责把校验点的信息记录到控制文件中
归档进程arcn负责把回档日志的信息记录到控制文件中
通过视图v$controlfile_record_section 可以了解到控制文件中记录了大量的数据库当前状态信息
3 多元化
配置多个control_files 控制文件最好事3个(最多是八个),多路复用指的是相互镜像。
一般配置方法
修改spfile中的control_files 参数,修改之前最好将spfile 先备份一份
复制控制文件,oracle建议将多个控制文件分配在不同的物理磁盘上。
三个控制文件要一致(同一版本scn相同),本来就是镜像关系
可以将控制文件dump出来,在跟踪文件中观察一下控制文件的内容
Alter session set events’immediate trace name controlf level 12’;
Select * from v$diag_info
4 备份与重建
指对控制文件的实时备份,用于恢复数据文件
注意,数据库打开时是不能cp控制文件的
Alter database backup controlfile to ‘/u01/oradata/prod/con.bak’;
重建控制文件
可以在数据库启动的mount 或open阶段生成一个trace文件,方便重建控制文件
文件内容存在default trace file中
alter database backup controlfile to trace
可以指定trace文件的路径
Alter database backup controlfile to trace as ‘/u01/oradata/prod/con.trace’
5 恢复与重建控制文件
控制文件一旦损坏,系统将不能正常工作,受损的控制文件会记录在告警日志中,恢复或重建控制文件必须在nomount的情况下进行。
如果单个控制文件损坏,可以通过简单的复制解决
如果所有的控制文件丢失,可以通过二进制控制文件备份,和tracke脚本重建创建控制文件,trace 重建会丢失归档的记录信息,和rman信息
利用trace 重建控制文件
第一步在数据局库mount 或open下生成 trace脚本
第二步启动到nomount状态下
第三步 执行trace 脚本
脚本中的可见信息有 DB_NAME,指定几个参数限定控制文件的最大值,在线日志的物理信息,数据文件的物理信息,使用的字符集。重建复制了当前所有数据文件头部的最新scn信息复制到了控制文件中,以使接下来打开数据库。
Select file#,checkpoint_change#fromo v$datafile ;
Select file#,checkpoint_change#from v$datafile_header
第四步 打开数据库
Alter database open ;
第五步 添加临时数据文件信息,(trace脚本中的最后一行)
ALTER TABLESPACE TEMP ADD TEMPFILE '/u01/oradata/prod/temp01.dbf'
SIZE 30408704 REUSE AUTOEXTEND ON NEXT 655360 MAXSIZE 32767M;
ALTER TABLESPACE TEMP2 ADD TEMPFILE '/u01/oradata/prod/temp02.dbf'
SIZE 10485760 REUSE AUTOEXTEND OFF;