檔案系統異常引起的資料庫open失敗的解決過程

Allen2312發表於2009-01-16

越到年底事情越多,感覺自己有點年底綜合症的意思,不想去幹活的時候事情還總是特別多,前兩天有同事打電話說公司一個測試資料庫起不來了,伺服器異常當機,結果檔案系統出了點問題,所以資料庫不能啟動了,讓幫忙解決下!

結果第二天跑到公司去了,現場環境是這樣的:非歸檔的Oracle 10.2.0.4.0單機資料庫,起初是redo group4異常,不能讀取,資料庫open時候報錯:

Tue Jan 13 15:09:17 2009
Aborting crash recovery due to error 368
Tue Jan 13 15:09:17 2009
Errors in file /u01/app/oracle/admin/crm/udump/crm_ora_6918.trc:
ORA-00368: 重做日誌塊中的校驗和錯誤
ORA-00353: 日誌損壞接近塊 138939 更改 8245479013914 時間 01/12/2009 21:21:45
ORA-00312: 聯機日誌 4 執行緒 1: '/u01/app/oracle/oradata/crm/redo04.log'
ORA-368 signalled during: ALTER DATABASE OPEN...

而且前面日誌中有很多這樣的錯誤:

ORA-00604: 遞迴 SQL 級別 1 出現錯誤
ORA-01555: 快照過舊: 回退段號 6 (名稱為 "_SYSSMU6$") 過小

這為後面clear redo後留下了隱患,同事嘗試了clear redo04.log,結果報錯:ORA-1624

然後根據提示去做了ALTER DATABASE RECOVER  database until cancel ,因為是非歸檔,所以選擇auto方式,然後報錯找不到歸檔XXX.ARC,然後去alter database open resetlogs,然後還是無法open資料庫,就重啟多次嘗試recover,然後open resetlogs,不能成功。

然後使用隱含引數:

ALTER SYSTEM SET _allow_resetlogs_corruption=TRUE SCOPE=SPFILE; ALTER SYSTEM SET _allow_terminal_recovery_corruption=TRUE SCOPE=SPFILE;

重啟後,就出現前面提到的:

 ORA-00704: 載入程式程式失敗

ORA-00704: 載入程式程式失敗

ORA-00604: 遞迴 SQL 級別 1 出現錯誤

ORA-01555: 快照過舊: 回退段號 8 (名稱為 "_SYSSMU8$") 過小

Error 704 happened during db open, shutting down database

等我接手處理的時候,就是上面這個情況了!

我的操作過程:也是嘗試open resetlogs,報錯!然後recover database,open resetlogs,依然報錯!

然後看日誌,發現redo2好像也有問題,反正是測試庫,clear再說!依然recover,open resetlogs,報錯依然是:

ORA-00704: 載入程式程式失敗

ORA-00704: 載入程式程式失敗

ORA-00604: 遞迴 SQL 級別 1 出現錯誤

ORA-01555: 快照過舊: 回退段號 8 (名稱為 "_SYSSMU8$") 過小

Error 704 happened during db open, shutting down database

然後上網google下,參考了篇文件,說可以加隱含引數:_ALLOW_ERROR_SIMULATION=true,可以阻止ADJUST_SCN,嘗試了下,也不行!

再找metalink看看,結合了一堆文件,分析問題也出在undo檔案上了,drop undo offline,執行alter database datafile 2 offline,然後alter database open,這次終於出來我們想要的ora-600了

ORA-00600: 內部錯誤程式碼, 引數: [2662], [1919], [3436769350], [1919], [3436770762], [12593956], [], []

ORA-00600: 內部錯誤程式碼, 引數: [2662], [1919], [3436769350], [1919], [3436770762], [12593956], [], []

Error 600 happened during db open, shutting down database

這次應該能開啟了,重啟資料庫到mount,然後alter database open,資料庫終於open了,下面就是測試工程師的工作了,匯出資料,重建庫,匯入,搞定!!!

 

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

相關文章