ORA-00607: Internal error occurred while making a change to a data block

paulyibinyi發表於2010-09-01

      前段時間一個客戶的資料庫在中午12點 突然down機,然後啟動資料庫不成功

資料庫日誌報以下錯誤:

Errors in file /usr/oracle/admin/blog/bdump/blog_smon_7657.trc:

ORA-00600: internal error code, arguments: [kghstack_free2], [], [], [], [], [], [], []
ORA-00607: Internal error occurred while making a change to a data block
ORA-00602: internal programming exception
ORA-07445: exception encountered: core dump [kgscDump()+438] [SIGSEGV] [unknown code] [0x000000000] [] []
ORA-07445: exception encountered: core dump [kgscDump()+438] [SIGSEGV] [unknown code] [0x000000000] [] []
ORA-07445: exception encountered: core dump [_intel_fast_memcpy.A()+10] [SIGSEGV] [Invalid permissions for mapped object] [0x2A975D5
000] [] []
 

  透過查詢trace檔案,發現有對錶做大量的update操作,造成這個表的資料庫不一致,

Because of the crash redo log have been corrupted. 就是說當前線上日誌中的內容有損壞

只能丟失這個表的部分資料或者用bbed來修復,單對bbed不是很熟悉,剛好客戶說這損壞的部分

資料可以重錄,就採取exp的備份的表來做恢復。

    成功開啟庫的步驟參考metalink解決方案:

ORA-00600 [kghstack_free2] and Database doesn't Open

Cause
Because of the crash redo log have been corrupted.

This issue could reproduce in environments that are using IMU, see Bug 5762424



Solution
1) In order to open database you will have to use event 10513 to stop TX recovery.

    a) If using init.ora, update the file with this line and bounce database

        event = "10513 trace name context forever, level 2"

   b) If using spfile:


       sqlplus /nolog
       connect / as sysdba
       startup mount
       alter system set event= '10513 trace name context forever, level 2' scope=spfile;
       shutdown
       startup


2) Find the offending object in the trace file looking at the current statement or based on a block dump

3) drop this object

4) remove event 10513

5) disable IMU

     _in_memory_undo=FALSE


6) startup database.

 

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

相關文章