联系:手机/微信(+86 17813235971) QQ(107644445)
标题:不当恢复truncate数据导致数据库不能open处理
作者:惜分飞©版权所有[未经本人同意,不得以任何形式转载,否则有进一步追究法律责任的权利.]
有客户误truncate操作干掉了数据库中的几张表,然后尝试通过FY_Recover_Data进行恢复,恢复到一半然后终止了,数据库结果就起不来了(具体什么原因不知道,肯定是各种不合适的操作引起的故障),我接手故障的时候,数据库被强制resetlogs,报ORA-600 2662错误
Fri Jan 30 10:24:16 2026alter database open resetlogsRESETLOGS is being done without consistancy checks. This may resultin a corrupted database. The database should be recreated.RESETLOGS after incomplete recovery UNTIL CHANGE 49708968810Clearing online redo logfile 1 /u01/oracle/oradata/orcl/redo01.logClearing online log 1 of thread 1 sequence number 1069648Clearing online redo logfile 1 completeClearing online redo logfile 2 /u01/oracle/oradata/orcl/redo02.logClearing online log 2 of thread 1 sequence number 1069649Clearing online redo logfile 2 completeClearing online redo logfile 3 /u01/oracle/oradata/orcl/redo03.logClearing online log 3 of thread 1 sequence number 1069647Clearing online redo logfile 3 completeResetting resetlogs activation ID 1738690566 (0x67a25006)Online log /u01/oracle/oradata/orcl/redo01.log: Thread 1 Group 1 was previously clearedOnline log /u01/oracle/oradata/orcl/redo02.log: Thread 1 Group 2 was previously clearedOnline log /u01/oracle/oradata/orcl/redo03.log: Thread 1 Group 3 was previously clearedFri Jan 30 10:24:17 2026Setting recovery target incarnation to 3Fri Jan 30 10:24:17 2026Assigning activation ID 1751706121 (0x6868ea09)Thread 1 opened at log sequence 1 Current log# 1 seq# 1 mem# 0: /u01/oracle/oradata/orcl/redo01.logSuccessful open of redo thread 1MTTR advisory is disabled because FAST_START_MTTR_TARGET is not setFri Jan 30 10:24:17 2026SMON: enabling cache recoveryErrors in file /u01/oracle/diag/rdbms/orcl/orcl/trace/orcl_ora_14707.trc (incident=123363):ORA-00600: 内部错误代码, 参数: [2662], [11], [2464328561], [11], [2464328917], [12583040], [], [], [], []Incident details in: /u01/oracle/diag/rdbms/orcl/orcl/incident/incdir_123363/orcl_ora_14707_i123363.trcFri Jan 30 10:24:18 2026Use ADRCI or Support Workbench to package the incident.See Note 411.1 at My Oracle Support for error and packaging details.Errors in file /u01/oracle/diag/rdbms/orcl/orcl/trace/orcl_ora_14707.trc:ORA-00600: 内部错误代码, 参数: [2662], [11], [2464328561], [11], [2464328917], [12583040], [], [], [], []Errors in file /u01/oracle/diag/rdbms/orcl/orcl/trace/orcl_ora_14707.trc:ORA-00600: 内部错误代码, 参数: [2662], [11], [2464328561], [11], [2464328917], [12583040], [], [], [], []Error 600 happened during db open, shutting down databaseUSER (ospid: 14707): terminating the instance due to error 600Instance terminated by USER, pid = 14707ORA-1092 signalled during: alter database open resetlogs...Use ADRCI or Support Workbench to package the incident.See Note 411.1 at My Oracle Support for error and packaging details.Use ADRCI or Support Workbench to package the incident.See Note 411.1 at My Oracle Support for error and packaging details.Errors in file /u01/oracle/diag/rdbms/orcl/orcl/trace/orcl_ora_14707.trc:ORA-00600: 内部错误代码, 参数: [2662], [11], [2464328564], [11], [2464328917], [12583040], [], [], [], []ORA-00600: 内部错误代码, 参数: [2662], [11], [2464328563], [11], [2464328917], [12583040], [], [], [], []ORA-01092: ORACLE 实例终止。强制断开连接ORA-00600: 内部错误代码, 参数: [2662], [11], [2464328561], [11], [2464328917], [12583040], [], [], [], []Errors in file /u01/oracle/diag/rdbms/orcl/orcl/trace/orcl_ora_14707.trc:ORA-27300: 操作系统系统相关操作: semctl 失败, 状态为: 22ORA-27301: 操作系统故障消息: Invalid argumentORA-27302: 错误发生在: sskgpwpost1ORA-27303: 附加信息: semid = 32779ORA-00600: 内部错误代码, 参数: [2662], [11], [2464328564], [11], [2464328917], [12583040], [], [], [], []ORA-00600: 内部错误代码, 参数: [2662], [11], [2464328563], [11], [2464328917], [12583040], [], [], [], []ORA-01092: ORACLE 实例终止。强制断开连接ORA-00603: ORACLE server session terminated by fatal errorORA-00600: internal error code, arguments: [2662], [11], [2464328564], [11], [2464328917], [12583040], []ORA-00600: internal error code, arguments: [2662], [11], [2464328563], [11], [2464328917], [12583040], []ORA-01092: ORACLE instance terminated. Disconnection forcedORA-00600: internal error code, arguments: [2662], [11], [2464328561], [11], [2464328917], [12583040], [] |
通过Oracle数据库异常恢复检查脚本(Oracle Database Recovery Check)脚本检查发现有文件被offline,且resetlogs 信息不对
通过obet工具(Oracle数据块编辑工具( Oracle Block Editor Tool)-obet)对resetlogs相关信息进行修改
OBET> set mode editmode set to: editOBET> set file 18filename set to: /tmp/FY_RST_DATA.DAT (file#18)OBET> copy resetlogscn file 1 to file 18Confirm Modify resetlogscn:Source: file#1 (/u01/oracle/oradata/orcl/system01.dbf)Target: file#18 (/tmp/FY_RST_DATA.DAT)Proceed? (Y/YES to confirm): ySuccessfully copied resetlog SCN information from file#1 to file#18.OBET> copy chkscn file 1 to file 18Confirm Modify chkscn:Source: file#1 (/u01/oracle/oradata/orcl/system01.dbf)Target: file#18 (/tmp/FY_RST_DATA.DAT)Proceed? (Y/YES to confirm): ySuccessfully copied checkpoint SCN information from file#1 to file#18.OBET> sumCheck value for File /tmp/FY_RST_DATA.DAT, Block 1:current = 0xF8EA, required = 0xFCEAOBET> sum checkWarning: Unknown option 'check', ignoredCheck value for File /tmp/FY_RST_DATA.DAT, Block 1:current = 0xF8EA, required = 0xFCEAOBET> sum applyConfirm applying checksum:File: /tmp/FY_RST_DATA.DATBlock: 1Offset in block: 16 (file offset: 0x00002010)Original value: 0xF8EANew value: 0xFCEAConfirm? (Y/YES to proceed): yVerification successful: Stored checksum matches calculated value (0xFCEA).Checksum applied successfully. |
然后尝试打开库,报ORA-600 kdourp_inorder2错误
Database Characterset is ZHS16GBKErrors in file /u01/oracle/diag/rdbms/orcl/orcl/trace/orcl_smon_9198.trc (incident=159324):ORA-00600: internal error code, arguments: [kdourp_inorder2], [16], [0], [146], [108], [], [], [], [], []Incident details in: /u01/oracle/diag/rdbms/orcl/orcl/incident/incdir_159324/orcl_smon_9198_i159324.trcStopping background process MMNLUse ADRCI or Support Workbench to package the incident.See Note 411.1 at My Oracle Support for error and packaging details.Block recovery from logseq 2, block 39 to scn 49708988852Recovery of Online Redo Log: Thread 1 Group 2 Seq 2 Reading mem 0 Mem# 0: /u01/oracle/oradata/orcl/redo02.logBlock recovery completed at rba 2.42.16, scn 11.2464348597ORACLE Instance orcl (pid = 14) - Error 600 encountered while recovering transaction (14, 8) on object 14.Errors in file /u01/oracle/diag/rdbms/orcl/orcl/trace/orcl_smon_9198.trc:ORA-00600: internal error code, arguments: [kdourp_inorder2], [16], [0], [146], [108], [], [], [], [], []Stopping background process MMONFri Jan 30 11:42:26 2026Errors in file /u01/oracle/diag/rdbms/orcl/orcl/trace/orcl_smon_9198.trc (incident=159325):ORA-00600: internal error code, arguments: [kdourp_inorder2], [16], [0], [146], [108], [], [], [], [], []Incident details in: /u01/oracle/diag/rdbms/orcl/orcl/incident/incdir_159325/orcl_smon_9198_i159325.trcStarting background process MMONFri Jan 30 11:42:27 2026MMON started with pid=49, OS id=10684Starting background process MMNLUse ADRCI or Support Workbench to package the incident.See Note 411.1 at My Oracle Support for error and packaging details.Block recovery from logseq 2, block 39 to scn 49708988852Recovery of Online Redo Log: Thread 1 Group 2 Seq 2 Reading mem 0 Mem# 0: /u01/oracle/oradata/orcl/redo02.logBlock recovery completed at rba 2.42.16, scn 11.2464348597ORACLE Instance orcl (pid = 14) - Error 600 encountered while recovering transaction (14, 8) on object 14.Errors in file /u01/oracle/diag/rdbms/orcl/orcl/trace/orcl_smon_9198.trc:ORA-00600: internal error code, arguments: [kdourp_inorder2], [16], [0], [146], [108], [], [], [], [], [] |
该报错比较明显是由于undo回滚段异常导致,通过屏蔽回滚段,open库成功.后续对客户truncate的表进行分析,比较悲催由于没有第一时间保护现场而且对所在表空间进行了大量写入操作,导致truncate数据恢复较少.
浙公网安备 33010602011771号