成功恢復無備份RAC環境資料庫

dbasdk發表於2014-08-01

昨天,一兄弟電話求助,有一套醫院HIS資料庫無法啟動,RAC環境,無備份,嘗試過重建控制檔案操作,但失敗。

遠端連線後,情況如下:

1.兩節點RAC,Oracle11.2.0.1版本,Linux作業系統
2.recover database時提示需使用backup controlfile
3.rman list backupset無輸出

由於沒有記錄具體的操作,這裡主要就碰到的異常做一下描述

1.重啟資料庫,在日誌中發現另一節點沒有被關閉,首先關閉另一節點

2.由於控制檔案已被錯誤重建,並且,溝通後認為丟失一部分資料是可以接受的,因此,決定重新建立控制檔案,在建立控制檔案時,存在一個知識點:
RAC環境重建控制檔案報錯:
ORA-12720: operation requires database is in EXCLUSIVE mode

這裡需要修改引數檔案:
alter system set cluster_database=false scope=spfile;

3.重建控制檔案後進行恢復操作
增加隱含引數:
alter system set "_allow_resetlogs_corruption"=true scope=spfile;

recover database using backup controlfile until cancel;
alter database open resetlogs;
報錯
ORA-00600: internal error code, arguments:  [2662]
這個錯誤以前碰到過,需要使用event調整SCN
首先,再增加一個隱含引數:
alter system set "_allow_error_simulation"=true scope=spfile;
重啟重建控制檔案並恢復後
alter session set events '10015 trace name ADJUST_SCN level 10';
alter database open;

4.經過上一步操作,SCN已經OK了,但仍然報錯
ORA-00600: internal error code, arguments:  [4194]
4000開頭的錯誤,改UNDO為手動管理模式,修改初始化引數
undo_management='MANUAL'

完成啟動。

總結:
1.這個例子,其實最開始控制檔案沒有丟失,應該先嚐試進行恢復,不知道之前是不是遇到了錯誤,導致選擇了重建控制檔案的方法。不過,這裡應該指出的是,最好不要一上來就重建控制檔案。
2.備份!備份!備份!

感覺恢復資料庫,就像傷寒論裡面說的,觀其脈證,知犯何逆,隨證治之。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29734436/viewspace-1243797/,如需轉載,請註明出處,否則將追究法律責任。

相關文章