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

教程发布:风哥 教程分类:ITPUX技术网 更新日期:2022-02-12 浏览学习:704

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

前段时间一个客户的数据库在中午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.

本文标签:
网站声明:本文由风哥整理发布,转载请保留此段声明,本站所有内容将不对其使用后果做任何承诺,请读者谨慎使用!
【上一篇】
【下一篇】