oracle 9i 默认控制文件为三个,控制文件记录数据库的创建时间,归档记录,和发生检查点时更新数据文件和控制文件时的scn,等等数据库重要信息,如果在运行过程中,有一个控制文件损坏,在系统要写控制文件时,就会down,三个控制文件
最好不要放在同一个目录下,放在不同硬盘下,做好镜象,这样一个损坏,就可以使用好的覆盖坏的即可,以下是测试例子
1. 用ULTRAEDIT工具 修改control02.ctl控制文件 模拟损坏
2. SQL> alter system checkpoint; 发生检查点,系统要更新数据文件头和控制文件
alter system checkpoint
*
ERROR at line 1:
ORA-03113: end-of-file on communication channel
SQL> alter system switch logfile;
alter system switch logfile
*
ERROR at line 1:
ORA-03114: not connected to ORACLE
alert.log 记录如下:
Thu Feb 28 17:47:48 2008
Errors in file d:\oracle\admin\paul\bdump\paul_ckpt_2860.trc:
ORA-00211: controlfile does not match previous controlfiles
ORA-00202: controlfile: 'D:\ORACLE\ORADATA\PAUL\CONTROL02.CTL'
Thu Feb 28 17:47:48 2008
CKPT: terminating instance due to error 211
Thu Feb 28 17:47:51 2008
Errors in file d:\oracle\admin\paul\bdump\paul_pmon_3268.trc:
ORA-00211: controlfile does not match previous controlfiles
Thu Feb 28 17:48:06 2008
Instance terminated by CKPT, pid = 2860
3.把好的覆盖坏的,改名为坏的控制文件名即可
4.startup database 正常
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/7199859/viewspace-197119/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/7199859/viewspace-197119/