当你在数据库运行时误删除了控制文件怎么办?很不幸有一次我就有这个情况,虽然是测试环境,这里因为我有事先把控制文件分别备份,所以恢复还是比较简单的。下面简单记录下怎么恢复。
控制文件版本不一致一般是因为在实例运行时删除了控制文件,此时直接复制了其他控制文件过来,但数据库读写时实际上只写入一个控制文件,并没有写入复制过来的控制文件。这种情况会造成控制文件版本不一致。
1、关闭实例
SQL> shutdown abort
ORACLE instance shut down.
2、修改控制文件(oracle用户执行)
rm -rf /u01/App/oracle/oradata/orcl/control01.ctl
cp /u01/app/oracle/fast_recovery_area/orcl/control02.ctl /u01/app/oracle/oradata/orcl/control01.ctl
3、重启数据库
上面简单的记录了控制文件恢复过程,实际上也说明了控制文件多个地方备份的重要性,虽然可以重建控制文件来恢复,但是毕竟麻烦很多。