簡單記錄一次ORA-00600 kcratr_nab_less_than_odr

來源:互聯網
上載者:User

當前詳細報錯已經沒有了,只有相應圖。參考EYGLE一篇文章中資料:

1.故障現象

資料庫版本11G,錯誤類似以下:

ORA-00600: 內部錯誤碼, 參數: [kcratr_nab_less_than_odr]錯誤,具體的錯誤資訊類似:
Incident 63078 created, dump file: /u01/diag/rdbms/orcl/orcl/incident/incdir_63078/orcl_ora_1916_i63078.trc
ORA-00600: 內部錯誤碼, 參數: [kcratr_nab_less_than_odr], [1], [3313], [2328320], [2334233], [], [], [], [], [], [], []
ORA-00600: 內部錯誤碼, 參數: [kcratr_nab_less_than_odr], [1], [3313], [2328320], [2334233], [], [], [], [], [], [], []
ORA-00600: 內部錯誤碼, 參數: [kcratr_nab_less_than_odr], [1], [3313], [2328320], [2334233], [], [], [], [], [], [], []

ALERT日誌中有以下:

Thread 1 checkpoint: logseq 3313, block 2, scn 5965899084787
  cache-low rba: logseq 3313, block 1484161
    on-disk rba: logseq 3313, block 2334233, scn 5965899135009
  start recovery at logseq 3313, block 1484161, scn 0

600錯誤中的1,3313的含義,是Thread 1 logseq 3313,那麼剩下的就應該是恢複時的rba地址,錯誤提示中的2334233是On-Disk Rba,是恢複應該到達的終點,而2328320小於On-Disk Rba,就應該是Less Than裡面提到的恢複的終點,因為沒有到達Redo的最後位置,被認為是非法的,可能遺失資料。
TRACE檔案中會有相應的提示:

WARNING! Crash recovery of thread 1 seq 3313 is
ending at redo block 2328320 but should not have ended before
redo block 2334233

我遇到的問題當時只有圖片如下


原因可能是因為執行個體恢複的進度不夠(因為Redo丟失或者硬體故障導致的REDO不完整--壞塊)。

這一點可以從當時報錯的TRACE檔案的圖片中得到驗證。

可以看到,需要最少恢複到的ON DISK RBA是block24955,而當前能恢複到的是24957,有部分塊丟失,因此報錯。

2.故障解決:

首先嘗試通過RECOVER DATABASE; RECOVERDATABASEUNTIL CANCEL;等方式進行恢複,但是未解決此問題。

最終通過重建控制檔案、再進行不完全恢複來OPEN資料庫。(前提是客戶只要求OPEN庫,是客戶的測試庫,丟些資料沒關係,如果是生產庫不允許丟資料,此方法就不適用了)

使用命令類似以下:

MOUNT狀態下: ALTERDATABASEBACKUP CONTROLFILE TOTRACE AS'/home/oracle/a.txt';

使用備份的控制檔案中內容,在SQLPLUS視窗執行類似以下:

CREATECONTROLFILE REUSE DATABASE…………

Alter database recover database until cancel using backup controlfile;

Alter database open resetlogs;  

並建立暫存資料表空間。

參考連結:http://www.xifenfei.com/2347.html      http://www.eygle.com/archives/2010/05/kcratr_nab_less_than_odr.html

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.