我近日遇到一例因控制文件损坏导致ORACLE数据库不能启动的例子,完成数据库修复后我把恢复过程总结如下:
客户的计算机ORACLE应用程序不能启动,提示一个ORACLE错误,打开系统查看Oracle的日志文件wnybALRT.log文件中有 ora-00204的错误,初步判断是由于控制文件损坏引起的ORACLE启动故障。作为恢复数据,我首先对ORACLE进行了全库冷备份,以防止修复数据库时造成新的破坏,在备份文件过程中我使用SVRMGRL工具先连接到ORACLE实例然后关闭ORACLE数据库,等待关闭完成后拷贝整个ORADATA目录到另一个磁盘目录,在拷贝过程中系统提示文件control03.ctl的循环冗余效验出错(如下图),这更加验证了我的判断。
Oracle的控制文件是一个非常小的(在兆字节范围内的)二进制文件,而它所含有数据库结构的信息。系统总共有三个控制文件分别是control01.ctl、control02.ctl、control03.ctl,这三个文件的内容完全相同、互为备份,所以我删除坏文件control03.ctl,然后拷贝control02.ctl到control03.ctl文件,再进入SVRMGRL模式使用startup命令启动数据库,从而解决了因控制文件损坏引起的ORACLE不能启动故障。
注:oracle 关闭、启动命令
SVRMGRL>connect internal/oracle
SVRMGRL>shutdown immediate
SVRMGRL>startup
转载于:https://blog.51cto.com/luweibo/357455