数据库通过控制文件保持数据库的完整性,一旦控制文件被破坏数据库讲无法启动,因此建议采用多路控制文件或者备份控制文件的方法.
控制文件是数据库建立的时候自动生成的二进制文件,只能通过实例进行修改,如果手动修改的化会造成控制文件与物理文件信息不符合,从而导致数据库不能正常工作.
控制文件主要包括的内容:
1.控制文件所属数据库的名字,一个控制文件只能属一个数据库
2.数据库创建时间
3.数据文件的名称,位置,联机,脱机状态信息
4.所有表空间信息
5.当前日志序列号
6.最近检查点信息 其中,数据库名称,标识和创建时间在数据库创建时写入;数据文件和重做日志名称和位置在增加,重命名或者删除的时候更新;表空间信息在增加或者删除表空间的时候进行更新 .
在初始化参数文件中control_files参数主要来描述控制文件的文件名跟物理路径.
例如:
control_files = ("C:\oradata\BOOK\CONTROL01.CTL") 该参数只设置一个,也可以设置多个, control_files = ("C:\oradata\BOOK\CONTROL01.CTL,C:\oradata\BOOK\CONTROL02.CTL,C:\oradata\BOOK\CONTROL03.CTL"), 这个方法叫做多路控制文件,ORACLE可以利用这个方法恢复被破坏的控制文件.ORACLE最多允许设置8个多路控制文件.必须所有的多路控制文件完整正确,数据库才能正常启动.
如何修改控制文件路径:
1.查看路径:
c:\>sqlplus "/ as sysdba" sql> select *from v$controlfile;
2.进行创建PFILE;
create pfile ='c:\oracle\product\10.2.0\db_1\dba\pfilebook.ora' from spfile='c:\oracle\product\10.2.0\db_1\dba\sfilebook.ora' 手动修改:c:\oracle\product\10.2.0\db_1\dba\pfilebook.ora,将路径改为:control_files = ("E:\oradata\BOOK\CONTROL01.CTL,E:\oradata\BOOK\CONTROL02.CTL,E:\oradata\BOOK\CONTROL03.CTL")
3.删掉c:\oracle\product\10.2.0\db_1\dba\sfilebook.ora 为了避免出错,请先备份.
4.c:\>sqlplus "/ as sysdba"
5.create sfile ='c:\oracle\product\10.2.0\db_1\dba\pfilebook.ora' from pfile='c:\oracle\product\10.2.0\db_1\dba\sfilebook.ora'
6.验证控制文件 select *from v$controlfile;