控制文件是一个小小的二进制文件,是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,拷贝控制文件多路复用到新的磁盘地址:[[email protected] 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
ORACLE如何设置多路复用control files