联系:手机/微信(+86 17813235971) QQ(107644445)
标题:Oracle Recovery Tools实战批量坏块修复
作者:惜分飞©版权所有[未经本人同意,不得以任何形式转载,否则有进一步追究法律责任的权利.]
有客户数据库无法正常启动ORA-600 6711错误
SQL> startup mount pfile='d:/pfile.txt' ORACLE instance started. Total System Global Area 4294964032 bytes Fixed Size 9036608 bytes Variable Size 889192448 bytes Database Buffers 3388997632 bytes Redo Buffers 7737344 bytes Database mounted. SQL> alter database open ; alter database open * ERROR at line 1: ORA-00603: ORACLE server session terminated by fatal error ORA-01092: ORACLE instance terminated. Disconnection forced ORA-00600: internal error code, arguments: [6711], [4313028], [1], [4309898], [0], [], [], [], [], [], [], [] Process ID: 22708 Session ID: 978 Serial number: 56675
alert日志报错
2022-06-26T12:34:41.855326+08:00 alter database open 2022-06-26T12:34:41.984974+08:00 Ping without log force is disabled: instance mounted in exclusive mode. Endian type of dictionary set to little Undo initialization finished serial:0 start:313418906 end:313418906 diff:0 ms (0.0 seconds) Database Characterset is ZHS16GBK No Resource Manager plan active 2022-06-26T12:34:43.302315+08:00 Errors in file C:\APP\XFF\diag\rdbms\orcl\ora19c\trace\ora19c_ora_22708.trc (incident=38629): ORA-00600: internal error code, arguments: [6711], [4313028], [1], [4309898], [0], [], [], [], [], [], [], [] Incident details in: C:\APP\XFF\diag\rdbms\orcl\ora19c\incident\incdir_38629\ora19c_ora_22708_i38629.trc Use ADRCI or Support Workbench to package the incident. See Note 411.1 at My Oracle Support for error and packaging details. 2022-06-26T12:34:44.232115+08:00 ***************************************************************** An internal routine has requested a dump of selected redo. This usually happens following a specific internal error, when analysis of the redo logs will help Oracle Support with the diagnosis. It is recommended that you retain all the redo logs generated (by all the instances) during the past 12 hours, in case additional redo dumps are required to help with the diagnosis. ***************************************************************** 2022-06-26T12:34:44.315431+08:00 Errors in file C:\APP\XFF\diag\rdbms\orcl\ora19c\trace\ora19c_ora_22708.trc: ORA-00600: internal error code, arguments: [6711], [4313028], [1], [4309898], [0], [], [], [], [], [], [], [] 2022-06-26T12:34:44.315431+08:00 Errors in file C:\APP\XFF\diag\rdbms\orcl\ora19c\trace\ora19c_ora_22708.trc: ORA-00600: internal error code, arguments: [6711], [4313028], [1], [4309898], [0], [], [], [], [], [], [], [] Error 600 happened during db open, shutting down database Errors in file C:\APP\XFF\diag\rdbms\orcl\ora19c\trace\ora19c_ora_22708.trc (incident=38630): ORA-00603: ORACLE server session terminated by fatal error ORA-01092: ORACLE instance terminated. Disconnection forced ORA-00600: internal error code, arguments: [6711], [4313028], [1], [4309898], [0], [], [], [], [], [], [], [] Incident details in: C:\APP\XFF\diag\rdbms\orcl\ora19c\incident\incdir_38630\ora19c_ora_22708_i38630.trc 2022-06-26T12:34:45.266678+08:00 opiodr aborting process unknown ospid (22708) as a result of ORA-603 2022-06-26T12:34:45.274688+08:00 ORA-603 : opitsk aborting process License high water mark = 1 USER (ospid: (prelim)): terminating the instance due to ORA error
通过分析trace文件进行分析,确认是由于histgrm$表异常导致,通过一些特殊处理,绕过该表相关sql,open数据库,并且尝试导出数据
SQL> startup mount pfile='d:/pfile.txt'; ORACLE instance started. Total System Global Area 4294964032 bytes Fixed Size 9036608 bytes Variable Size 889192448 bytes Database Buffers 3388997632 bytes Redo Buffers 7737344 bytes Database mounted. SQL> SQL> SQL> alter database open; Database altered.
通过分析是由于system有坏块导致,dbv检查文件
通过Oracle Recovery Tools工具批量坏块修复功能修复
通过工具修复大量主要坏块被修复,还有一些内部逻辑错误(后续工具继续完善),再次尝试逻辑导出数据,无任何报错,数据比较完美恢复