首页 > 代码库 > 控制文件管理

控制文件管理

Oracle控制文件时一个很小的二进制文件,不能手动修改。oracle数据库通过控制文件保持数据库的完整性,一旦控制文件被破坏数据库将无法启动;因此建议采用多路控制文件或者备份控制文件的方法。

控制文件包含以下信息:

1.数据库名称(控制文件所属数据库的名字,一个控制文件只能属一个数据库)

2.数据库创建时间

3.数据文件的名称,位置,联机,脱机状态信息

4.所有表空间信息

5.当前日志序列号

6.检查点信息

7. undo段的起始点和结束点

8. redo日志归档信息(日志归档时记录)

9. 备份信息(由RMAN负责维护)

查看控制文件位置:

SQL>show parameter control_files

SQL> select * from v$controlfile;

STATUS NAME IS_ BLOCK_SIZE FILE_SIZE_BLKS

------- ---------------------------------------- --- ---------- ----------------------------------------------------------------

/u01/oracle/oradata/orcl/control01.ctl NO 16384 430

/u01/oracle/oradata/orcl/control02.ctl NO 16384 430

/u01/oracle/oradata/orcl/control03.ctl NO 16384 430

查看控制文件内容:

$strings $ORACLE_BASE/oradata/orcl/control01.ctl

控制文件多路复用:

SQL>alter system set control_files=‘*********‘,‘********‘,.......... scope=spfile;

SQL>shutdown immediate

SQL>ho cp /u01/....../control01.ctl /......./control04.ctl

SQL>startup

SQL>show parameter control_files;

设置RMAN自动备份控制文件:

$ramn target/

RMAN> show all;

RMAN configuration parameters are:

CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # default

CONFIGURE BACKUP OPTIMIZATION OFF; # default

CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default

CONFIGURE CONTROLFILE AUTOBACKUP OFF;

CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO ‘%F‘; # default

CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET; # default

CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default

CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default

CONFIGURE MAXSETSIZE TO UNLIMITED; # default

CONFIGURE ENCRYPTION FOR DATABASE OFF; # default

CONFIGURE ENCRYPTION ALGORITHM ‘AES128‘; # default

CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # default

CONFIGURE SNAPSHOT CONTROLFILE NAME TO ‘/u01/oracle/10g/dbs/snapcf_orcl.f‘; # default

RMAN> CONFIGURE CONTROLFILE AUTOBACKUP ON;

对控制文件的管理原则:

1.明确控制文件的名称和存储路径

参数设置错误将无法打开数据库,数据库打开以后,实例将同时写入所有的控制文件但是只会读取第一个控制文件的内容。

2.为数据库创建多路控制文件

a.多路控制文件内容必须完全一样,oracle实例同时将内容写入到control_files变量所设置的控制文件中。

b.初始化参数control_files中列出的第一个文件是数据库运行期间唯一可读取的控制文件。

c.创建,恢复和备份控制文件必须在数据库关闭的状态下运行,这样才能保证操作过程中控制文件不被修改。

d.数据库运行期间如果一个控制文件变为不可用,那么实例将不再运行,应该终止这个实例,并对破坏的控制文件进行修复。

3.将多路控制文件放在不同的硬盘上

4.采用操作系统镜像方式备份控制文件

5.手工方式备份控制文件

应该及时备份特别是发生了如下的操作的时候:

添加删除重命名数据文件

添加删除表空间,改变表空间读写状态

添加删除重做日志文件

控制文件管理