Oracle数据库系统回滚段异常处理-ORA-600 4137/4193---惜分飞

Oracle数据库系统回滚段异常处理-ORA-600 4137/4193---惜分飞
最初是由于数据库sysaux文件无法正常恢复,重建ctl抛弃sysaux文件,然后打开数据库,但是无法expdp导出数据Export: Release 12.2.0.1.0 - Production on Wed Jun 24 17:18:04 2026Copyright (c) 1982, 2017, Oracle and/orits affiliates. All rights reserved.Connected to: Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit ProductionORA-31626: job does not existORA-31637: cannot create job SYS_EXPORT_SCHEMA_02foruser SYSORA-06512: atSYS.KUPV$FT, line 1140ORA-06512: atSYS.KUPV$FT, line 1741ORA-06512: atSYS.DBMS_SYS_ERROR, line 95ORA-06512: atSYS.KUPV$FT_INT, line 823ORA-39080: failed to create queuesKUPC$C_1_20260624171804andforData Pump jobORA-06512: atSYS.DBMS_SYS_ERROR, line 95ORA-06512: atSYS.KUPC$QUE_INT, line 1541ORA-00376:file3 cannot bereadat thistimeORA-06512: atSYS.DBMS_AQADM, line 742ORA-06512: atSYS.DBMS_AQADM_SYS, line 8060ORA-01110: datafile3:/u01/app/oracle/product/12.2.0.1/dbhome_2/dbs/MISSING00003ORA-06512: atSYS.DBMS_AQADM_SYSCALLS, line 912ORA-06512: atSYS.DBMS_AQADM_SYS, line 8036ORA-06512: atSYS.DBMS_AQADM, line 737ORA-06512: atSYS.KUPC$QUE_INT, line 1461ORA-06512: at line 1ORA-06512: atSYS.KUPC$QUEUE_INT, line 158ORA-06512: atSYS.KUPV$FT_INT, line 758ORA-06512: atSYS.KUPV$FT, line 1645ORA-06512: atSYS.KUPV$FT, line 1101然后通过各方人员一顿操作猛如虎,导致数据库启动报ORA-600 4137和ORA-600 4193错误,数据库无法open成功2026-06-24T18:38:50.15890608:00alter databaseopen2026-06-24T18:38:50.18272008:00Ping without log force is disabled:instance mountedinexclusive mode.2026-06-24T18:38:50.21944908:00…………2026-06-24T18:38:50.51401608:00ARC3: Archival startedARCH: STARTING ARCH PROCESSES COMPLETEErrorsinfile/u01/app/oracle/diag/rdbms/orcl/orcl1/trace/orcl1_ora_48840.trc (incident304968):ORA-00600: internal error code, arguments: [4137], [0.77.1546], [0], [0], [], [], [], [], [], [], [], []Incident detailsin:/u01/app/oracle/diag/rdbms/orcl/orcl1/incident/incdir_304968/orcl1_ora_48840_i304968.trcUse ADRCI or Support Workbench to package the incident.ORACLE Instance orcl1 (pid 53) - Error 600 encounteredwhilerecovering transaction (0, 77).2026-06-24T18:38:51.31397308:00Errorsinfile/u01/app/oracle/diag/rdbms/orcl/orcl1/trace/orcl1_ora_48840.trc:ORA-00600: internal error code, arguments: [4137], [0.77.1546], [0], [0], [], [], [], [], [], [], [], []2026-06-24T18:38:51.64936108:00Errorsinfile/u01/app/oracle/diag/rdbms/orcl/orcl1/trace/orcl1_ora_48840.trc (incident304969):ORA-00600: internal error code, arguments: [4193], [1112], [1122], [], [], [], [], [], [], [], [], []Incident detailsin:/u01/app/oracle/diag/rdbms/orcl/orcl1/incident/incdir_304969/orcl1_ora_48840_i304969.trc2026-06-24T18:38:53.41278208:00opiodr aborting process unknown ospid (48840) as a result of ORA-603需要open故障库,并且正常导出数据,需要处理两个问题1. 被抛弃的sysaux文件需要正常online起来不然expdp无法正常导出用户或者全库数据2. 需要解决open过程的ORA-600 4137/ORA-600 4193错误对于sysaux文件进行检查由于重建ctl没有包含异常的sysaux文件因此无法直接从库中查询到当前各种文件头相关情况,通过obet直接解析文件头获取相关信息(Oracle数据块编辑工具( Oracle Block Editor Tool)-obet)对于这种情况可以使用obet的修改文件头checkpoint scn和resetlogs scn功能进行快速修复OBETsetfile2filenamesetto:/u02/app/oracle/oradata/PYJHYSYS/PYJHYSYS/datafile/o1_mf_sysaux_go991cmw_.dbf (file#2)OBET backupCreated backup directory: backup_blkSuccessfully backed up block 1 from currentfileto/tmp/backup_blk/o1_mf_sysaux_go991cmw_.dbf_1.20260624191357OBET copy chkscnfile1 tofile2Error: Edit mode not enabled. Useset mode editfirst.OBETsetmode editmodesetto: editOBET copy chkscnfile1 tofile2Confirm Modify chkscn:Source:file#1 (/u02/app/oracle/oradata/PYJHYSYS/PYJHYSYS/datafile/o1_mf_system_go990lcg_.dbf)Target:file#2 (/u02/app/oracle/oradata/PYJHYSYS/PYJHYSYS/datafile/o1_mf_sysaux_go991cmw_.dbf)Proceed? (Y/YESto confirm):yesSuccessfully copied checkpoint SCN information fromfile#1 to file#2.OBET copy resetlogscnfile1 tofile2Confirm Modify resetlogscn:Source:file#1 (/u02/app/oracle/oradata/PYJHYSYS/PYJHYSYS/datafile/o1_mf_system_go990lcg_.dbf)Target:file#2 (/u02/app/oracle/oradata/PYJHYSYS/PYJHYSYS/datafile/o1_mf_sysaux_go991cmw_.dbf)Proceed? (Y/YESto confirm):yesSuccessfully copied resetlog SCN information fromfile#1 to file#2.OBETsumCheck valueforFile/u02/app/oracle/oradata/PYJHYSYS/PYJHYSYS/datafile/o1_mf_sysaux_go991cmw_.dbf, Block 1:current 0xF21B, required 0x6651OBETsumapplyConfirm applying checksum:File:/u02/app/oracle/oradata/PYJHYSYS/PYJHYSYS/datafile/o1_mf_sysaux_go991cmw_.dbfBlock: 1Offsetinblock: 16 (fileoffset: 0x00002010)Original value: 0xF21BNew value: 0x6651Confirm? (Y/YESto proceed): yVerification successful: Stored checksum matches calculated value (0x6651).Checksum applied successfully.OBET tailchkCheck tailchkforFile/u02/app/oracle/oradata/PYJHYSYS/PYJHYSYS/datafile/o1_mf_sysaux_go991cmw_.dbf, Block 1:current 0x010B0000, required 0x010B0000OBET然后重建ctl包含该sysaux尝试打开数据库,报ORA-600 4193错误SYSORCLalterdatabaseopen;alterdatabaseopen*ERRORatline 1:ORA-00603: ORACLE server session terminatedbyfatal errorORA-01092: ORACLE instance terminated. Disconnection forcedORA-00607: Internal error occurred while making a changetoa data blockORA-00600: internal error code, arguments: [4193], [1112], [1122], [], [], [], [], [], [], [], [], []Process ID: 93550Session ID: 1123 Serial number: 55884进一步跟踪启动过程确认报错在update undo$上PARSING IN CURSOR#140446136869016len160 dep1 uid0 oct6 lid0 tim3161302405543 hv1292341136 ad9bbd4828sqlid8vyjutx6hg3whupdate /* rule */ undo$setname:2,file#:3,block#:4,status$:5,user#:6,undosqn:7,xactsqn:8,scnbas:9,scnwrp:10,inst#:11,ts#:12,spare1:13 where us#:1END OF STMTPARSE#140446136869016:c11966,e11918,p18,cr94,cu0,mis1,r0,dep1,og3,plh0,tim3161302405542BINDS#140446136869016:Bind#0oacdty01 mxl32(21) mxlc00 mal00 scl00 pre00oacflg18 fl20001 frm01 csi852 siz32 off0kxsbbbfp9bbdac32 bln32 avl21 flg09value_SYSSMU12_3861134380$Bind#1oacdty02 mxl22(22) mxlc00 mal00 scl00 pre00oacflg08 fl21000001 frm00 csi00 siz24 off0kxsbbbfp7fbc23eda370 bln24 avl02 flg05value5Bind#2oacdty02 mxl22(22) mxlc00 mal00 scl00 pre00oacflg08 fl21000001 frm00 csi00 siz24 off0kxsbbbfp7fbc23eda340 bln24 avl03 flg05value144Bind#3oacdty02 mxl22(22) mxlc00 mal00 scl00 pre00oacflg08 fl21000001 frm00 csi00 siz24 off0kxsbbbfp7fbc23eda310 bln24 avl02 flg05value5Bind#4oacdty02 mxl22(22) mxlc00 mal00 scl00 pre00oacflg08 fl21000001 frm00 csi00 siz24 off0kxsbbbfp7fbc23eda2e0 bln24 avl02 flg05value1Bind#5oacdty02 mxl22(22) mxlc00 mal00 scl00 pre00oacflg08 fl21000001 frm00 csi00 siz24 off0kxsbbbfp7fbc23eda2b0 bln24 avl04 flg05value46221Bind#6oacdty02 mxl22(22) mxlc00 mal00 scl00 pre00oacflg08 fl21000001 frm00 csi00 siz24 off0kxsbbbfp7fbc23eda280 bln24 avl05 flg05value30810931Bind#7oacdty02 mxl22(22) mxlc00 mal00 scl00 pre00oacflg08 fl21000001 frm00 csi00 siz24 off0kxsbbbfp7fbc23eda250 bln24 avl06 flg05value3399756014Bind#8oacdty02 mxl22(22) mxlc00 mal00 scl00 pre00oacflg08 fl21000001 frm00 csi00 siz24 off0kxsbbbfp7fbc23eda220 bln24 avl03 flg05value2429Bind#9oacdty02 mxl22(22) mxlc00 mal00 scl00 pre00oacflg08 fl21000001 frm00 csi00 siz24 off0kxsbbbfp7fbc23eda1f0 bln24 avl02 flg05value2Bind#10oacdty02 mxl22(22) mxlc00 mal00 scl00 pre00oacflg08 fl21000001 frm00 csi00 siz24 off0kxsbbbfp7fbc23eda1c0 bln24 avl02 flg05value4Bind#11oacdty02 mxl22(22) mxlc00 mal00 scl00 pre00oacflg08 fl21000001 frm00 csi00 siz24 off0kxsbbbfp7fbc23eda190 bln24 avl02 flg05value2Bind#12oacdty02 mxl22(22) mxlc00 mal00 scl00 pre00oacflg08 fl21000001 frm00 csi00 siz24 off0kxsbbbfp7fbc23eda3a0 bln22 avl02 flg05value12WAIT#140446136869016: namdb file sequential readela 16file#1 block#547 blocks1 obj#0 tim31613024063062026-06-24T19:59:40.97907508:00ORA-00600: internal error code, arguments: [4193], [1112], [1122], [], [], [], [], [], [], [], [], []alert日志中还有ORA-600 4137等错误ORACLE Instance orcl1 (pid 53) - Error 600 encounteredwhilerecovering transaction (0, 77).2026-06-24T19:59:40.38745908:00Errorsinfile/u01/app/oracle/diag/rdbms/orcl/orcl1/trace/orcl1_ora_83245.trc:ORA-00600: internal error code, arguments: [4137], [0.77.1546], [0], [0], [], [], [], [], [], [], [], []通过这个报错,可以确认是由于0号回滚段,也就是rollback中事务异常获取相关的trace[TOC00003]----- Beginning of Customized Incident Dump(s) -----XID passedin xid: 0x0000.04d.0000060aXID from Undo block xid: 0x0000.060.00000600Dump of buffer cache at level 7forpdb0 tsn0 rdba4194432BH (0x3ddfd26b8)file#: 1 rdba: 0x00400080 (1/128) class: 15 ba: 0x3ddb80000set: 166 pool: 3 bsz: 8192 bsi: 0 sflg: 2 pwc: 0,0dbwrid: 3 obj: -1 objn: 0 tsn: [0/0] afn: 1 hint: fhash: [0x3ddece808,0xc6bdc2d8] lru: [0xbc1db108,0xbc1db108]ckptq: [NULL] fileq: [NULL]objq: [0xa2267bc0,0xa2267bc0] objaq: [0xa2267bb0,0xa2267bb0]st: XCURRENT md: NULL fpin:ktuwh72: ktugus:ktuswr1fscn: 0x980cfff669f tch: 1flags:LRBA: [0x0.0.0] LSCN: [0x0] HSCN: [0x0] HSUB: [65535]Printing buffer operationhistory(latest change first):cnt: 1001. sid:00 L353:gcur:set:MEXCL 02. sid:00 L145:zib:mk:EXCL03. sid:00 L212:zib:bic:FSQ 04. sid:00 L122:zgb:set:st05. sid:00 L830:olq1:clr:WRTCKT 06. sid:00 L951:zgb:lnk:objq07. sid:00 L372:zgb:set:MEXCL 08. sid:00 L123:zgb:no:FEN09. sid:00 L083:zgb:ent:fn 10. sid:01 L203:w_ini_dc:bic:FVBbuffer tsn: 0 rdba: 0x00400080 (1/128)scn: 0x980cffc5958seq: 0x01 flg: 0x04tail: 0x59580e01frmt: 0x02 chkval: 0x2688type: 0x0eKTU UNDO HEADER W/UNLIMITEDEXTENTS基于这样的情况,可以判断通过清理undo$中的相关记录,让其重新分配新的回滚块Block Header:blocktype0x0e (KTU UNDO HEADER W/UNLIMITEDEXTENTS)blockformat0xa2 (oracle 10)block rdba0x00400080 (file#1, block#128)scn0x0980.cff7c56d,seq1,tail0xc56d0e01block checksum value0x26839859, flag4Extent Control Header-------------------------------------------------------------Extent Header:: extents: 10 blocks: 79last map: 0x00000000#maps: 0 offset: 4128Highwater:: 0x00400225 (rfile#1,block#549)ext#: 6 blk#: 5 ext size:8#blocksinseg. hdrs freelists: 0#blocksbelow: 0mapblk: 0x00000000 offset: 6Map Header:: next: 0x00000000#extents: 10 obj#: 0 flag: 0x40000000Extent Control Header-------------------------------------------------------------0x00400081 length: 70x004206a8 length: 80x004206b0 length: 80x00400088 length: 80x00400210 length: 80x00400218 length: 80x00400220 length: 80x00400228 length: 80x004206a0 length: 80x00400230 length: 8TRN CTL::seq: 0x0462 chd: 0x005e ctl: 0x000d inc: 0x00000000 nbf: 0x0000mgc: 0x8002 xts: 0x0068 flg: 0x0001 opt: 2147483646(0x7ffffffe)uba: 0x00000225.0462.1d scn: 0x0980.cf1f2121Version: 0x01FREE BLOCK POOL::uba: 0x00000000.0462.1c ext: 0x6 spc: 0x11a2uba: 0x00000000.0462.26 ext: 0x6 spc: 0xc86uba: 0x00000000.0462.03 ext: 0x6 spc: 0x1e5cuba: 0x00000000.0460.03 ext: 0x4 spc: 0x1e5cuba: 0x00000000.043c.21 ext: 0x8 spc: 0xd2c然后数据库打开成功,使用expdp完美导出数据完成本次恢复任务