Oracle 11gR2 for Windows遭遇ora-600[4194]的恢复
本站文章除注明转载外,均为本站原创: 转载自love wife love life —Roger的Oracle/MySQL/PostgreSQL数据恢复博客
这也某客户的数据库出现异常,非归档环境。Instance crash之后正常open,然而数据库很快就crash 掉。我们来简单分析一下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 |
Sat Aug 02 09:49:51 2014 MMON started with pid=15, OS id=3852 starting up 1 dispatcher(s) for network address '(ADDRESS=(PARTIAL=YES)(PROTOCOL=TCP))'... Sat Aug 02 09:49:51 2014 MMNL started with pid=16, OS id=3196 starting up 1 shared server(s) ... ORACLE_BASE from environment = C:\Oracle11 Sat Aug 02 09:49:52 2014 ALTER DATABASE MOUNT Sat Aug 02 09:49:55 2014 Sweep [inc][51985]: completed Sweep [inc][51984]: completed Sweep [inc][51983]: completed Sweep [inc][51982]: completed Sweep [inc][51981]: completed Sweep [inc][51980]: completed Sweep [inc][51979]: completed Successful mount of redo thread 1, with mount id 4101312896 Database mounted in Exclusive Mode Lost write protection disabled Sweep [inc][51948]: completed Completed: ALTER DATABASE MOUNT Sat Aug 02 09:49:57 2014 ALTER DATABASE OPEN Sweep [inc][51947]: completed Beginning crash recovery of 1 threads parallel recovery started with 3 processes Started redo scan Completed redo scan read 126 KB redo, 85 data blocks need recovery Started redo application at Thread 1: logseq 19, block 3 Recovery of Online Redo Log: Thread 1 Group 1 Seq 19 Reading mem 0 Mem# 0: C:\ORACLE11\ORADATA\xxxx\REDO01.LOG Completed redo application of 0.10MB Completed crash recovery at Thread 1: logseq 19, block 256, scn 18445043 85 data blocks read, 85 data blocks written, 126 redo k-bytes read Sweep [inc][51852]: completed Sweep [inc][51851]: completed Sweep [inc][51835]: completed Thread 1 advanced to log sequence 20 (thread open) Sweep [inc][51747]: completed Sweep [inc2][51980]: completed Sweep [inc2][51979]: completed Sweep [inc2][51948]: completed Sweep [inc2][51947]: completed Sweep [inc2][51852]: completed Sweep [inc2][51851]: completed Thread 1 opened at log sequence 20 Current log# 2 seq# 20 mem# 0: C:\ORACLE11\ORADATA\xxxx\REDO02.LOG Successful open of redo thread 1 Sweep [inc2][51835]: completed MTTR advisory is disabled because FAST_START_MTTR_TARGET is not set SMON: enabling cache recovery Successfully onlined Undo Tablespace 2. Verifying file header compatibility for 11g tablespace encryption.. Verifying 11g file header compatibility for tablespace encryption completed SMON: enabling tx recovery Database Characterset is AL32UTF8 Errors in file c:\oracle11\diag\rdbms\xxxx\xxxx\trace\xxxx_smon_2036.trc (incident=53038): ORA-00600: internal error code, arguments: [4194], [], |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 |
Incident details in: c:\oracle11\diag\rdbms\xxxx\xxxx\incident\incdir_53038\xxxx_smon_2036_i53038.trc No Resource Manager plan active Doing block recovery for file 3 block 233 Resuming block recovery (PMON) for file 3 block 233 Block recovery from logseq 20, block 52 to scn 18445244 Recovery of Online Redo Log: Thread 1 Group 2 Seq 20 Reading mem 0 Mem# 0: C:\ORACLE11\ORADATA\xxxx\REDO02.LOG Block recovery completed at rba 20.62.16, scn 0.18445245 Doing block recovery for file 3 block 208 Resuming block recovery (PMON) for file 3 block 208 Block recovery from logseq 20, block 52 to scn 18445233 Recovery of Online Redo Log: Thread 1 Group 2 Seq 20 Reading mem 0 Mem# 0: C:\ORACLE11\ORADATA\xxxx\REDO02.LOG Block recovery completed at rba 20.57.16, scn 0.18445235 Errors in file c:\oracle11\diag\rdbms\xxxx\xxxx\trace\xxxx_smon_2036.trc: ORA-01595: error freeing extent (2) of rollback segment (6)) ORA-00600: internal error code, arguments: [4194], [], Starting background process QMNC Sat Aug 02 09:50:01 2014 QMNC started with pid=20, OS id=4036 Sat Aug 02 09:50:01 2014 Trace dumping is performing id=[cdmp_20140802095001] Sat Aug 02 09:50:02 2014 Errors in file c:\oracle11\diag\rdbms\xxxx\xxxx\trace\xxxx_mmon_3852.trc (incident=53054): ORA-00600: internal error code, arguments: [4194], [], Incident details in: c:\oracle11\diag\rdbms\xxxx\xxxx\incident\incdir_53054\xxxx_mmon_3852_i53054.trc Completed: ALTER DATABASE OPEN Doing block recovery for file 3 block 2022 Resuming block recovery (PMON) for file 3 block 2022 Block recovery from logseq 20, block 62 to scn 18445254 Recovery of Online Redo Log: Thread 1 Group 2 Seq 20 Reading mem 0 Mem# 0: C:\ORACLE11\ORADATA\xxxx\REDO02.LOG Block recovery stopped at EOT rba 20.66.16 Block recovery completed at rba 20.66.16, scn 0.18445253 Doing block recovery for file 3 block 272 Resuming block recovery (PMON) for file 3 block 272 Block recovery from logseq 20, block 62 to scn 18445246 Recovery of Online Redo Log: Thread 1 Group 2 Seq 20 Reading mem 0 Mem# 0: C:\ORACLE11\ORADATA\xxxx\REDO02.LOG Block recovery completed at rba 20.62.16, scn 0.18445247 Trace dumping is performing id=[cdmp_20140802095004] Errors in file c:\oracle11\diag\rdbms\xxxx\xxxx\trace\xxxx_mmon_3852.trc (incident=53055): ORA-00600: internal error code, arguments: [4194], [], Incident details in: c:\oracle11\diag\rdbms\xxxx\xxxx\incident\incdir_53055\xxxx_mmon_3852_i53055.trc Doing block recovery for file 3 block 2022 Resuming block recovery (PMON) for file 3 block 2022 Block recovery from logseq 20, block 62 to scn 18445254 Recovery of Online Redo Log: Thread 1 Group 2 Seq 20 Reading mem 0 Mem# 0: C:\ORACLE11\ORADATA\xxxx\REDO02.LOG Block recovery completed at rba 20.66.16, scn 0.18445255 Doing block recovery for file 3 block 272 Resuming block recovery (PMON) for file 3 block 272 Block recovery from logseq 20, block 62 to scn 18445262 Trace dumping is performing id=[cdmp_20140802095006] Recovery of Online Redo Log: Thread 1 Group 2 Seq 20 Reading mem 0 Mem# 0: C:\ORACLE11\ORADATA\xxxx\REDO02.LOG Block recovery completed at rba 20.74.16, scn 0.18445263 Errors in file c:\oracle11\diag\rdbms\xxxx\xxxx\trace\xxxx_mmon_3852.trc (incident=53056): ORA-00600: internal error code, arguments: [kewrose_1], [600], [ORA-00600: internal error code, arguments: [4194], [], [], [], [], [], [], [], [], [], [], [] Incident details in: c:\oracle11\diag\rdbms\xxxx\xxxx\incident\incdir_53056\xxxx_mmon_3852_i53056.trc Sat Aug 02 09:50:06 2014 Errors in file c:\oracle11\diag\rdbms\xxxx\xxxx\trace\xxxx_ora_560.trc (incident=53134): ORA-00600: 鍐呴儴閿欒浠g爜, 鍙傛暟: [4194], [], Incident details in: c:\oracle11\diag\rdbms\xxxx\xxxx\incident\incdir_53134\xxxx_ora_560_i53134.trc Trace dumping is performing id=[cdmp_20140802095007] Doing block recovery for file 3 block 233 Resuming block recovery (PMON) for file 3 block 233 Block recovery from logseq 20, block 52 to scn 18445244 Recovery of Online Redo Log: Thread 1 Group 2 Seq 20 Reading mem 0 Mem# 0: C:\ORACLE11\ORADATA\xxxx\REDO02.LOG Block recovery completed at rba 20.62.16, scn 0.18445246 Errors in file c:\oracle11\diag\rdbms\xxxx\xxxx\trace\xxxx_ora_560.trc (incident=53135): ORA-00600: 鍐呴儴閿欒浠g爜, 鍙傛暟: [4194], [], Incident details in: c:\oracle11\diag\rdbms\xxxx\xxxx\incident\incdir_53135\xxxx_ora_560_i53135.trc Trace dumping is performing id=[cdmp_20140802095008] Doing block recovery for file 3 block 233 Errors in file c:\oracle11\diag\rdbms\xxxx\xxxx\trace\xxxx_ora_560.trc: ORA-00600: 鍐呴儴閿欒浠g爜, 鍙傛暟: [4194], [], ORA-00600: 鍐呴儴閿欒浠g爜, 鍙傛暟: [4194], [], Resuming block recovery (PMON) for file 3 block 233 Block recovery from logseq 20, block 52 to scn 18445244 Recovery of Online Redo Log: Thread 1 Group 2 Seq 20 Reading mem 0 Mem# 0: C:\ORACLE11\ORADATA\xxxx\REDO02.LOG Block recovery completed at rba 20.62.16, scn 0.18445246 Exception [type: ACCESS_VIOLATION, UNABLE_TO_READ] [ADDR:0x3D599566] [PC:0x6D81343, ___dyn_tls_init_callback()+110921500] Sat Aug 02 09:50:10 2014 Errors in file c:\oracle11\diag\rdbms\xxxx\xxxx\cdump\xxxxcore.log ORA-07445: caught exception [ACCESS_VIOLATION] at [___dyn_tls_init_callback()+110921500] [0x06D81343] Sat Aug 02 09:50:10 2014 db_recovery_file_dest_size of 3072 MB is 0.00% used. This is a user-specified limit on the amount of space that will be used by this database for recovery-related files, and does not reflect the amount of space available in the underlying filesystem or ASM diskgroup. Trace dumping is performing id=[cdmp_20140802095010] Sat Aug 02 09:50:11 2014 Restarting dead background process MMON Sat Aug 02 09:50:11 2014 MMON started with pid=15, OS id=1908 Sat Aug 02 09:50:11 2014 Errors in file c:\oracle11\diag\rdbms\xxxx\xxxx\trace\xxxx_ora_560.trc (incident=54138): ORA-00603: ORACLE server session terminated by fatal error ORA-00600: internal error code, arguments: [4194], [], Incident details in: c:\oracle11\diag\rdbms\xxxx\xxxx\incident\incdir_54138\xxxx_ora_560_i54138.trc Errors in file c:\oracle11\diag\rdbms\xxxx\xxxx\incident\incdir_54138\xxxx_ora_560_i54138.trc: ORA-00603: ORACLE server session terminated by fatal error ORA-00600: internal error code, arguments: [4194], [], Sat Aug 02 09:50:13 2014 Doing block recovery for file 3 block 233 Resuming block recovery (PMON) for file 3 block 233 Block recovery from logseq 20, block 52 to scn 18445244 Recovery of Online Redo Log: Thread 1 Group 2 Seq 20 Reading mem 0 Mem# 0: C:\ORACLE11\ORADATA\xxxx\REDO02.LOG Block recovery completed at rba 20.62.16, scn 0.18445246 Errors in file c:\oracle11\diag\rdbms\xxxx\xxxx\trace\xxxx_ora_3364.trc (incident=53158): ORA-00600: 鍐呴儴閿欒浠g爜, 鍙傛暟: [4194], [], [ |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
Doing block recovery for file 3 block 233 Resuming block recovery (PMON) for file 3 block 233 Block recovery from logseq 20, block 52 to scn 18445244 Recovery of Online Redo Log: Thread 1 Group 2 Seq 20 Reading mem 0 Mem# 0: C:\ORACLE11\ORADATA\xxxx\REDO02.LOG Block recovery completed at rba 20.62.16, scn 0.18445246 Errors in file c:\oracle11\diag\rdbms\xxxx\xxxx\trace\xxxx_pmon_3452.trc (incident=52950): ORA-00600: internal error code, arguments: [4194], [], Errors in file c:\oracle11\diag\rdbms\xxxx\xxxx\trace\xxxx_pmon_3452.trc: ORA-00600: internal error code, arguments: [4194], [], PMON (ospid: 3452): terminating the instance due to error 472 Sat Aug 02 09:50:22 2014 Instance terminated by PMON, pid = 3452 Sat Aug 02 10:09:11 2014 Starting ORACLE instance (normal) |
上面的错误对于大家来讲或许并不陌生,ora-00600 [4194]是一个非常常见的错误。然而,细心的人或许注意到了,
这里有一点不同的是:[4194]后面的2位都是空的。
对于ora-00600 [4194] 错误,Oracle MOS文档有个标准的解释,如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
ERROR: ORA-600 [4194] [a] [b] VERSIONS: versions 6.0 to 10.1 DESCRIPTION: A mismatch has been detected between Redo records and rollback (Undo) records. We are validating the Undo record number relating to the change being applied against the maximum undo record number recorded in the undo block. This error is reported when the validation fails. ARGUMENTS: Arg [a] Maximum Undo record number in Undo block Arg [b] Undo record number from Redo block |
简单的讲,就是Oracle SMON进程在进程事务rollback时,发现redo block中对应的undo record 编号和
undo block中的undo record 编号不一致,进而导致事务无法进行正常回滚,最后抛出这个错误。
我们来看下smon 进程的trace,里面提到了异常的事务信息:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
Symbol file C:\Oracle11\product\11.2.0\dbhome_1\BIN\orannzsbb11.SYM does not match binary. Symbol TimeStamp=4b62bd94, Module TimeStamp=0 are different EnumerateLoadedModules64 failed with error -1073741819 Symbol file orannzsbb11.SYM does not match binary. Symbol TimeStamp=4b62bd94, Module TimeStamp=0 are different Incident 49431 created, dump file: c:\oracle11\diag\rdbms\xxxx\xxxx\incident\incdir_49431\xxxx_smon_1900_i49431.trc ORA-00600: internal error code, arguments: [4194], [], Error 600 in redo application callback Dump of change vector: TYP:0 CLS:28 AFN:3 DBA:0x00c000e9 OBJ:4294967295 SCN:0x0000.011346a3 SEQ:20 OP:5.1 ENC:0 RBL:0 ktudb redo: siz: 80 spc: 3542 flg: 0x0010 seq: 0x12bf rec: 0x25 xid: 0x0006.010.000033dd ktubl redo: slt: 16 rci: 0 opc: 5.7 [objn: 0 objd: 0 tsn: 0] Undo type: Regular undo Begin trans Last buffer split: No Temp Object: No Tablespace Undo: No 0x00000000 prev ctl uba: 0x00c000e9.12bf.22 prev ctl max cmt scn: 0x0000.01134172 prev tx cmt scn: 0x0000.01134184 txn start scn: 0xffff.ffffffff logon user: 0 prev brb: 12583127 prev bcl: 0 BuExt idx: 0 flg2: 0 Block after image is corrupt: buffer rdba: 0x00c000e9 scn: 0x0000.011346a3 seq: 0x14 flg: 0x04 tail: 0x46a30214 frmt: 0x02 chkval: 0x8596 type: 0x02=KTU UNDO BLOCK Hex dump of block: st=0, typ_found=1 Dump of memory from 0x9F508000 to 0x9F50A000 。。。。。。。。。。。。 |
UBA应该是:0x00c000e9.0x12bf.0x25,即:0x00c000e9.12bf.25,这里的XID为:xid: 0x0006.010.000033dd
说明是第对应的第16个事务槽(SLOT:0x10). record 编号为0x25。 opcode为5.7,标示Begin transaction (transaction table update)
那么我们定位到这个record(0x25),来看看undo block的实际dump是什么:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
*----------------------------- * Rec #0x25 slt: 0x10 objn: 5834(0x000016ca) objd: 5834 tblspc: 0(0x00000000) * Layer: 11 (Row) opc: 1 rci 0x00 Undo type: Regular undo Begin trans Last buffer split: No Temp Object: No Tablespace Undo: No rdba: 0x00000000Ext idx: 0 flg2: 0 *----------------------------- uba: 0x00c000e9.12bf.22 ctl max scn: 0x0000.01134172 prv tx scn: 0x0000.01134184 txn start scn: scn: 0x0000.01134685 logon user: 0 prev brb: 12583127 prev bcl: 0 KDO undo record: KTB Redo op: 0x04 ver: 0x01 compat bit: 4 (post-11) padding: 0 op: L itl: xid: 0x0008.001.000033ba uba: 0x00c0083a.0e7f.19 flg: C--- lkc: 0 scn: 0x0000.01133d89 KDO Op code: URP row dependencies Disabled xtype: XA flags: 0x00000000 bdba: 0x00402d92 hdba: 0x00402d90 itli: 2 ispac: 0 maxfr: 4863 tabn: 0 slot: 6(0x6) flag: 0x2c lock: 0 ckix: 0 ncol: 54 nnew: 4 size: -4 col 42: [ 2] c1 02 col 44: [13] 78 72 07 1e 10 01 0a 01 31 2d 00 1c 3c col 49: *NULL* col 50: *NULL* |
我们可以看到该事务(0x10)回滚到0x25就结束了,因为rci值为0,说明这里就是结束的位置。 大家注意看这里的opcode代码,layer为11,opc为1.
那么也就是说undo block这个record实际上的opcode为:11.1.
大家应该都知道11.1标示什么? 11.1 标示:Interpret Undo Record (Undo)。同时看下面的信息也可以知道这里应该是进行了update操作。(URP)。
因此,很明显redo和undo block(file 3 block 233)的信息是不一致的。
上面的信息不够完整,下面我将recover失败的block(file 3 block 233)的信息贴出来:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 |
Block image after block recovery: buffer tsn: 2 rdba: 0x00c000e9 (3/233) scn: 0x0000.011346a3 seq: 0x14 flg: 0x04 tail: 0x46a30214 frmt: 0x02 chkval: 0x8596 type: 0x02=KTU UNDO BLOCK Hex dump of block: st=0, typ_found=1 Dump of memory from 0x9F508000 to 0x9F50A000 9F508000 0000A202 00C000E9 011346A3 04140000 [.........F......] 9F508010 00008596 00020006 000033D9 3B3B12BF [.........3....;;] 。。。。。。。。 ******************************************************************************** UNDO BLK: xid: 0x0006.002.000033d9 seq: 0x12bf cnt: 0x3b irb: 0x3b icl: 0x0 flg: 0x0000 Rec Offset Rec Offset Rec Offset Rec Offset Rec Offset --------------------------------------------------------------------------- 0x01 0x1f3c 0x02 0x1ed0 0x03 0x1e24 0x04 0x1dbc 0x05 0x1d54 0x06 0x1cec 0x07 0x1c24 0x08 0x1b40 0x09 0x1adc 0x0a 0x1a88 0x0b 0x1a04 0x0c 0x19a4 0x0d 0x1954 0x0e 0x18ec 0x0f 0x186c 0x10 0x1800 0x11 0x1784 0x12 0x1700 0x13 0x1688 0x14 0x1624 0x15 0x15a0 0x16 0x1528 0x17 0x14c4 0x18 0x1440 0x19 0x13c8 0x1a 0x1364 0x1b 0x12cc 0x1c 0x1234 0x1d 0x117c 0x1e 0x112c 0x1f 0x1048 0x20 0x0fe4 0x21 0x0f90 0x22 0x0f0c 0x23 0x0e94 0x24 0x0e30 0x25 0x0d78 0x26 0x0d18 0x27 0x0cc8 0x28 0x0c44 0x29 0x0b30 0x2a 0x0ac0 0x2b 0x0a40 0x2c 0x09d8 0x2d 0x0978 0x2e 0x0928 0x2f 0x0878 0x30 0x07d0 0x31 0x0728 0x32 0x0678 0x33 0x05e0 0x34 0x0538 0x35 0x0488 0x36 0x03f0 0x37 0x0348 0x38 0x02d8 0x39 0x0244 0x3a 0x0134 0x3b 0x00d0 。。。。。。。。。 *----------------------------- * Rec #0x25 slt: 0x10 objn: 5834(0x000016ca) objd: 5834 tblspc: 0(0x00000000) * Layer: 11 (Row) opc: 1 rci 0x00 Undo type: Regular undo Begin trans Last buffer split: No Temp Object: No Tablespace Undo: No rdba: 0x00000000Ext idx: 0 flg2: 0 *----------------------------- uba: 0x00c000e9.12bf.22 ctl max scn: 0x0000.01134172 prv tx scn: 0x0000.01134184 txn start scn: scn: 0x0000.01134685 logon user: 0 prev brb: 12583127 prev bcl: 0 KDO undo record: KTB Redo op: 0x04 ver: 0x01 compat bit: 4 (post-11) padding: 0 op: L itl: xid: 0x0008.001.000033ba uba: 0x00c0083a.0e7f.19 flg: C--- lkc: 0 scn: 0x0000.01133d89 KDO Op code: URP row dependencies Disabled xtype: XA flags: 0x00000000 bdba: 0x00402d92 hdba: 0x00402d90 itli: 2 ispac: 0 maxfr: 4863 tabn: 0 slot: 6(0x6) flag: 0x2c lock: 0 ckix: 0 ncol: 54 nnew: 4 size: -4 col 42: [ 2] c1 02 col 44: [13] 78 72 07 1e 10 01 0a 01 31 2d 00 1c 3c col 49: *NULL* col 50: *NULL* *----------------------------- * Rec #0x26 slt: 0x10 objn: 5839(0x000016cf) objd: 5839 tblspc: 0(0x00000000) * Layer: 10 (Index) opc: 22 rci 0x25 Undo type: Regular undo Last buffer split: No Temp Object: No Tablespace Undo: No rdba: 0x00000000 *----------------------------- index undo for leaf key operations KTB Redo op: 0x04 ver: 0x01 compat bit: 4 (post-11) padding: 0 op: L itl: xid: 0x0003.010.000033c2 uba: 0x00c0095b.0fbd.23 flg: C--- lkc: 0 scn: 0x0000.01133d87 Dump kdilk : itl=4, kdxlkflg=0x1 sdc=0 indexid=0x402db8 block=0x00402db9 (kdxlre): restore leaf row (clear leaf delete flags) key :(10): 02 c1 02 06 00 40 2d 92 00 06 。。。。。。 *----------------------------- * Rec #0x27 slt: 0x10 objn: 5839(0x000016cf) objd: 5839 tblspc: 0(0x00000000) * Layer: 10 (Index) opc: 22 rci 0x26 Undo type: Regular undo Last buffer split: No Temp Object: No Tablespace Undo: No rdba: 0x00000000 *----------------------------- index undo for leaf key operations KTB Redo op: 0x02 ver: 0x01 compat bit: 4 (post-11) padding: 0 op: C uba: 0x00c000e9.12bf.26 Dump kdilk : itl=4, kdxlkflg=0x1 sdc=0 indexid=0x402db8 block=0x00402db9 (kdxlpu): purge leaf row key :(10): 02 c1 04 06 00 40 2d 92 00 06 。。。。。。。 * Rec #0x3b slt: 0x02 objn: 68192(0x00010a60) objd: 68192 tblspc: 1(0x00000001) * Layer: 10 (Index) opc: 22 rci 0x3a Undo type: Regular undo Last buffer split: No Temp Object: No Tablespace Undo: No rdba: 0x00000000 *----------------------------- index undo for leaf key operations KTB Redo op: 0x04 ver: 0x01 compat bit: 4 (post-11) padding: 0 op: L itl: xid: 0x0002.012.000033b2 uba: 0x00c0009a.0f08.33 flg: C--- lkc: 0 scn: 0x0000.0113469f Dump kdilk : itl=2, kdxlkflg=0x1 sdc=0 indexid=0x807a32 block=0x00807a33 (kdxlre): restore leaf row (clear leaf delete flags) key :(15): 07 78 72 07 1e 10 3b 11 06 00 80 75 ff 00 07 |
我们可以看到,最新的一个事务事务XID为:0x0006.002.000033d9。seq为seq: 0x12bf
整个undo block 一共包含cnt: 0x3b(即59)个undo record记录;其中 irb: 0x3b 标示最新的一个事务
如果进行rollback,那么第0x3b的事务将是rollback的起点。
那么一个事务进行rollback,到什么时候结束呢? 当对应的rci值为0时,即表示结束。
很明显,最新的事务的SLOT为0x002。而出问题的事务的slot是0x010(转换为10进制为16)。
当然,最后要处理这个case是比较容易的,通过屏蔽第6号回滚段即可,这里不在累述。
Leave a Reply
You must be logged in to post a comment.