ora-00600 3020 問題分析處理

paulyibinyi發表於2016-05-09
ORA-00600 3020 分析處理過程如下:
ERROR: 
  Format: ORA-600 [3020] [a] [b] [c] [d] [e]
 
VERSIONS:
  version 6.0 and above

DESCRIPTION:        

  This is called a 'STUCK RECOVERY'.

  There is an inconsistency between the information stored in the redo 
  and the information stored in a database block being recovered.

ARGUMENTS:          

For Oracle 9.2 and earlier:
  Arg [a] Block DBA
  Arg [b] Redo Thread
  Arg [c] Redo RBA Seq
  Arg [d] Redo RBA Block No
  Arg [e] Redo RBA Offset.

For Oracle 10.1
  Arg [a] Absolute file number of the datafile.
  Arg [b] Block number
  Arg [c] Block DBA

FUNCTIONALITY:
  kernel cache recovery parallel
 
IMPACT:             
  INSTANCE FAILURE during recovery.
建議:
這個ORA-00600 3020 錯誤發生在做介質恢復時,但有些物理檔案沒有恢復到磁碟,或恢復還沒有完成。

因此,要確保整個備份已恢復,在恢復資料庫命令之前,該恢復已完成。

如果ORA-00600 3020 問題繼續發生,可以恢復到出問題時的不完全恢復
 Example:
 SQL> recover database until time 'YYYY-MON-DD:HH:MI:SS';
 這樣會丟失出問題後的資料。
因此要檢查作業系統和硬體,看是什麼原因引起。
 
如果是報某些資料檔案有問題,可以單獨恢復資料檔案,然後恢復需要的歸檔,做recover進行後滾


如果是dataguard 備庫某些資料檔案報ORA-00600 3020 錯誤
可以把主庫對應的資料檔案恢復到備庫,然後在備庫做recover,可能也可以解決這個報錯,
如果還是繼續報錯,則需要找出受影響的物件,在主庫進行重建,會自動更新到備庫。

以下sql可以找出相關物件 SQL> Select * from DBA_EXTENTS
      where FILE_ID=&file_number and 
      &block_number BETWEEN BLOCK_ID and BLOCK_ID+BLOCKS-1; 

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

相關文章