概述
當你在數據庫運行時誤刪除了控制文件怎么辦?很不幸有一次我就有這個情況,雖然是測試環境,這里因為我有事先把控制文件分別備份,所以恢復還是比較簡單的。下面簡單記錄下怎么恢復。
問題
控制文件版本不一致一般是因為在實例運行時刪除了控制文件,此時直接復制了其他控制文件過來,但數據庫讀寫時實際上只寫入一個控制文件,并沒有寫入復制過來的控制文件。這種情況會造成控制文件版本不一致。
解決過程:
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、重啟數據庫
上面簡單的記錄了控制文件恢復過程,實際上也說明了控制文件多個地方備份的重要性,雖然可以重建控制文件來恢復,但是畢竟麻煩很多。