Oracle如何设置多路复用control files

控制文件是一个小小的二进制文件,是Oracle数据库的不可缺少的一部分,这个控制文件是用于记录数据库的状态和物理结构。每个数据库必须要至少一个控制文件,但是强烈的建议超过一个控制文件,每个控制文件的备份应该放在不同的磁盘上。

控制文件中的信息包括下列内容:
 • 数据库名称取自初始化参数DB_NAME 所指定的名称或CREATE DATABASE 语句中所用的名称。
 • 当创建数据库时会记录数据库标识符。
 • 创建数据库时还会记录创建数据库的时间戳。
 • 当在数据库中添加、重命名或删除数据文件或重做日志时,会更新相关数据文件和联机重做日志文件的名称和位置。
 • 当添加或删除表空间时会更新表空间信息。
 • 在日志切换过程中会记录重做日志历史信息。
 • 归档日志的位置和状态会在归档时记录。
 • 备份的位置和状态由“恢复管理器” (Recovery Manager) 实用程序记录。
 • 在进行日志切换时记录当前日志序列号。
 • 在建立检查点时记录检查点信息。
 

控制文件中包含以下条目:
 • 数据库名称和标识符
 • 创建数据库的时间戳
 • 表空间的名称
 • 数据文件和重做日志文件的名称和位置
 • 当前重做日志的序列号
 • 检查点信息
 • 还原段的开始和结尾
 • 重做日志归档信息
 • 备份信息
 
下面介绍如何给一个数据库添加多路控制文件:
 
方法一:

1:修改参数文件
 2:停止数据库
 3:复制控制文件
 4:启动数据库
 5:验证,查看v$controlfile
 Sql>alter system set control_files='/u01/app/oracle/oradata/PROD/control01.ctl','/u01/app/oracle/oradata/PROD/control02.ctl','/u01/app/oracle/oradata/PROD/control03.ctl' scope=spfile;
 (千万要注意点号,没有括号哦 在vi里的一行同一个字母不能拆分开,最好是主动的换行)
 Sql>shutdown immediate;
 $cp control01.ctl control03.ctl
 Sql>startup;
 SQL> select * from v$controlfile;
 SQL>shutdown immediate
 SQL>startup 
 
方法二:
 
1, create pfile from spfile;
 
2, shutdown immediate
 
3, 修改参数文件initPROD.ora  cd $ORACLE_HOME/dbs  vi initPROD.ora 

*.control_files='/u01/app/oracle/oradata/PROD/DISK1/control01.ctl','/u01/app/oracle/oradata/PROD/DISK2/control02.ctl','/u
 
01/app/oracle/oradata/PROD/DISK3/control03.ctl' 

4,拷贝控制文件多路复用到新的磁盘地址:[oracle@vmoel5u4 DISK2]$ cp ./control02.ctl /u01/app/oracle/oradata/PROD/DISK3/control03.ctl
 
5,重新创建spfile 并且启动数据库:sqlplus / as sysdba    create spfile from pfile  startup
 
6,查看下是否添加成功: SQL> show parameter control 

相关推荐