关于Undo Internal的研究
原文链接:http://www.eygle.com/internal/undo_internal.htm
本文就Undo的内部结构作初步探讨:
我们通过实验来看一下回滚段的内部结构.
测试脚本及过程如下:
首先创建一个测试表
create table ud ( n number );
insert into ud values(1);
insert into ud values(2);
commit;
然后执行一个事物:
select * from ud;
update ud set n=1000 where n=2;
select * from ud;
找到该事物使用的回滚段:
select xidusn,xidslot,xidsqn,ubablk,ubafil,ubarec from v$transaction;
获得回滚段名称并dump其内容:
select usn,name from v$rollname where usn=7;
alter system dump undo header '_SYSSMU7$';
<div class="left style25">以下开始测试:
SQL> create table ud ( n number );Table created.SQL> insert into ud values(1);1 row created.SQL> insert into ud values(2);1 row created.SQL> commit;Commit complete.SQL> startup force;ORACLE instance started.Total System Global Area 47256168 bytesFixed Size 451176 bytesVariable Size 29360128 bytesDatabase Buffers 16777216 bytesRedo Buffers 667648 bytesDatabase mounted.Database opened.SQL> select usn,writes,rssize,xacts,hwmsize,shrinks,wraps from v$rollstat; USN WRITES RSSIZE XACTS HWMSIZE SHRINKS WRAPS---------- ---------- ---------- ---------- ---------- ---------- ---------- 0 7380 385024 0 385024 0 0 1 0 122880 0 122880 0 0 2 0 122880 0 122880 0 0 3 0 122880 0 122880 0 0 4 0 122880 0 122880 0 0 5 0 122880 0 122880 0 0 6 0 122880 0 122880 0 0 7 0 122880 0 122880 0 0 8 54 122880 0 122880 0 0 9 9040 122880 0 122880 0 0 10 210 122880 0 122880 0 011 rows selected.SQL> select * from ud; N---------- 1 2SQL> update ud set n=1000 where n=2;1 row updated.SQL> select xidusn,xidslot,xidsqn,ubablk,ubafil,ubarec from v$transaction; XIDUSN XIDSLOT XIDSQN UBABLK UBAFIL UBAREC---------- ---------- ---------- ---------- ---------- ---------- 7 35 2861 109 2 28SQL> select usn,writes,rssize,xacts,hwmsize,shrinks,wraps from v$rollstat; USN WRITES RSSIZE XACTS HWMSIZE SHRINKS WRAPS---------- ---------- ---------- ---------- ---------- ---------- ---------- 0 7380 385024 0 385024 0 0 1 0 122880 0 122880 0 0 2 0 122880 0 122880 0 0 3 0 122880 0 122880 0 0 4 0 122880 0 122880 0 0 5 0 122880 0 122880 0 0 6 0 122880 0 122880 0 0 7 126 122880 1 122880 0 0 8 54 122880 0 122880 0 0 9 9040 122880 0 122880 0 0 10 210 122880 0 122880 0 011 rows selected.SQL> select usn,name from v$rollname where usn=7; USN NAME---------- ------------------------------ 7 _SYSSMU7$SQL> alter system dump undo header '_SYSSMU7$';System altered.SQL> @gettrcnameTRACE_FILE_NAME--------------------------------------------------------------------------------/opt/oracle/admin/hsjf/udump/hsjf_ora_3563.trc 找到这个trace文件:
********************************************************************************Undo Segment:_SYSSMU7$ (7)********************************************************************************Extent Control Header-----------------------------------------------------------------Extent Header:: spare1: 0 spare2: 0 #extents: 2 #blocks: 15 last map0x00000000#maps: 0 offset: 4080 Highwater::0x0080006dext#: 0 blk#: 3 ext size: 7 #blocks in seg. hdr's freelists: 0 #blocks below: 0 mapblk0x00000000offset: 0 Unlocked Map Header:: next0x00000000#extents: 2 obj#: 0 flag: 0x40000000Extent Map----------------------------------------------------------------- 0x0080006alength: 7 0x008000d1length: 8 Retention Table ----------------------------------------------------------- Extent Number:0Commit Time: 1095324259 Extent Number:1Commit Time: 1095296201 TRN CTL:: seq: 0x040d chd: 0x0025 ctl: 0x0024 inc: 0x00000000 nfb: 0x0000 mgc: 0x8201 xts: 0x0068 flg: 0x0001 opt: 2147483646 (0x7ffffffe) uba: 0x0080006d.040d.1c scn: 0x0000.017e6e59Version: 0x01FREE BLOCK POOL:: uba: 0x00000000.040d.1b ext: 0x0spc: 0x994 uba: 0x00000000.040c.30 ext: 0x5spc: 0xa1e uba: 0x00000000.040c.43 ext: 0x5spc: 0x198 uba: 0x00000000.03ed.01 ext: 0x0spc: 0x1fa0 uba: 0x00000000.0000.00 ext: 0x0spc: 0x0 TRN TBL::------Transaction table,也就是这个回滚段中记录的事务列表 indexstate cflagswrap# uel scn dba parent-xid nub stmt_num------------------------------------------------------------------------------------------------ 0x00 9 0x000x0b2d0x00270x0000.017ea9920x0080006c0x0000.000.000000000x00000001 0x00000000 0x01 9 0x000x0b2d0x00020x0000.017e9dba0x0080006c0x0000.000.000000000x00000001 0x00000000 0x02 9 0x000x0b2d0x00040x0000.017ea1ad0x0080006c0x0000.000.000000000x00000001 0x00000000 0x03 9 0x000x0b2d0x00010x0000.017e99c70x0080006c0x0000.000.000000000x00000001 0x00000000 0x04 9 0x000x0b2d0x00000x0000.017ea5a00x0080006c0x0000.000.000000000x00000001 0x00000000 0x05 9 0x000x0b2d0x000b0x0000.017ebd500x0080006c0x0000.000.000000000x00000001 0x00000000 0x06 9 0x000x0b2d0x00050x0000.017eb95d0x0080006c0x0000.000.000000000x00000001 0x00000000 0x07 9 0x000x0b2d0x000f0x0000.017f1fa20x0080006d0x0000.000.000000000x00000001 0x00000000 0x08 9 0x000x0b2d0x00290x0000.017eccb80x0080006d0x0000.000.000000000x00000001 0x00000000 0x09 9 0x000x0b2d0x00080x0000.017ec8c50x0080006d0x0000.000.000000000x00000001 0x00000000 0x0a 9 0x000x0b2d0x00090x0000.017ec4d30x0080006d0x0000.000.000000000x00000001 0x00000000 0x0b 9 0x000x0b2d0x000a0x0000.017ec0e00x0080006d0x0000.000.000000000x00000001 0x00000000 0x0c 9 0x000x0b2d0x00110x0000.017ed49e0x0080006d0x0000.000.000000000x00000001 0x00000000 0x0d 9 0x000x0b2d0x00140x0000.017ee85b0x0080006d0x0000.000.000000000x00000001 0x00000000 0x0e 9 0x000x0b2d0x001f0x0000.017f000c0x0080006d0x0000.000.000000000x00000001 0x00000000 0x0f 9 0x000x0b2d0x00240x0000.017f23940x0080006d0x0000.000.000000000x00000001 0x00000000 0x10 9 0x000x0b2d0x00130x0000.017edc830x0080006d0x0000.000.000000000x00000001 0x00000000 0x11 9 0x000x0b2d0x00100x0000.017ed8900x0080006d0x0000.000.000000000x00000001 0x00000000 0x12 9 0x000x0b2d0x000d0x0000.017ee4690x0080006d0x0000.000.000000000x00000001 0x00000000 0x13 9 0x000x0b2d0x00120x0000.017ee0760x0080006d0x0000.000.000000000x00000001 0x00000000 0x14 9 0x000x0b2d0x00170x0000.017eec4e0x0080006d0x0000.000.000000000x00000001 0x00000000 0x15 9 0x000x0b2c0x00160x0000.017e763f0x0080006c0x0000.000.000000000x00000001 0x00000000 0x16 9 0x000x0b2c0x002a0x0000.017e7a310x0080006c0x0000.000.000000000x00000001 0x00000000 0x17 9 0x000x0b2d0x001a0x0000.017ef0410x0080006d0x0000.000.000000000x00000001 0x00000000 0x18 9 0x000x0b2d0x001c0x0000.017f07f10x0080006d0x0000.000.000000000x00000001 0x00000000 0x19 9 0x000x0b2d0x001e0x0000.017ef8260x0080006d0x0000.000.000000000x00000001 0x00000000 0x1a 9 0x000x0b2d0x00190x0000.017ef4330x0080006d0x0000.000.000000000x00000001 0x00000000 0x1b 9 0x000x0b2d0x00210x0000.017f13c90x0080006d0x0000.000.000000000x00000001 0x00000000 0x1c 9 0x000x0b2d0x00200x0000.017f0be40x0080006d0x0000.000.000000000x00000001 0x00000000 0x1d 9 0x000x0b2c0x00030x0000.017e95d50x0080006c0x0000.000.000000000x00000001 0x00000000 0x1e 9 0x000x0b2d0x000e0x0000.017efc190x0080006d0x0000.000.000000000x00000001 0x00000000 0x1f 9 0x000x0b2d0x00180x0000.017f03fe0x0080006d0x0000.000.000000000x00000001 0x00000000 0x20 9 0x000x0b2d0x001b0x0000.017f0fd70x0080006d0x0000.000.000000000x00000001 0x00000000 0x21 9 0x000x0b2d0x00220x0000.017f17bc0x0080006d0x0000.000.000000000x00000001 0x00000000 0x22 9 0x000x0b2d0x00070x0000.017f1baf0x0080006d0x0000.000.000000000x00000001 0x00000000|<---状态9为非活动事务. 0x23 10 0x800x0b2d0x00000x0000.017f73e00x0080006d0x0000.000.000000000x00000001 0x00000000 ||<---状态10位活动事务. |<---dba,包含这个活动事务的block地址 |<---index就是事务表中的slot号 |dba=0x0080006d我们对之进行转换,算法参考这里. | v$transaction.xidslot=35转换为16进制,正是23 |0x0080006d = 0000 0000 1000 0000 0000 0000 0110 1101 |dba 0x0080006d位于file 2,block 109上 0x24 9 0x000x0b2d0xffff0x0000.017f25190x0080006d0x0000.000.000000000x00000001 0x00000000 0x25 9 0x000x0b2c0x00150x0000.017e724c0x0080006c0x0000.000.000000000x00000001 0x00000000 0x26 9 0x000x0b2b0x002c0x0000.017e860a0x0080006c0x0000.000.000000000x00000001 0x00000000 0x27 9 0x000x0b2c0x002b0x0000.017ead850x0080006c0x0000.000.000000000x00000001 0x00000000 0x28 9 0x000x0b2c0x002e0x0000.017e8def0x0080006c0x0000.000.000000000x00000001 0x00000000 0x29 9 0x000x0b2c0x000c0x0000.017ed0ab0x0080006d0x0000.000.000000000x00000001 0x00000000 0x2a 9 0x000x0b2c0x002f0x0000.017e7e240x0080006c0x0000.000.000000000x00000001 0x00000000 0x2b 9 0x000x0b2c0x002d0x0000.017eb1780x0080006c0x0000.000.000000000x00000001 0x00000000 0x2c 9 0x000x0b2c0x00280x0000.017e89fc0x0080006c0x0000.000.000000000x00000001 0x00000000 0x2d 9 0x000x0b2c0x00060x0000.017eb56b0x0080006c0x0000.000.000000000x00000001 0x00000000 0x2e 9 0x000x0b2c0x001d0x0000.017e91e20x0080006c0x0000.000.000000000x00000001 0x00000000 0x2f 9 0x000x0b2c0x00260x0000.017e82170x0080006c0x0000.000.000000000x00000001 0x00000000alter system dump datafile 2 block 109;********************************************************************************Start dump data blocks tsn: 1 file#: 2 minblk 109 maxblk 109buffer tsn: 1 rdba: 0x0080006d (2/109)scn: 0x0000.017f73e0 seq: 0x01 flg: 0x04 tail: 0x73e00201frmt: 0x02 chkval: 0x8fbe type: 0x02=KTU UNDO BLOCK********************************************************************************UNDO BLK:xid: 0x0007.023.00000b2dseq: 0x40d cnt: 0x1cirb: 0x1cicl: 0x0 flg: 0x0000 | | |<---xid = Undo segment no.Slotno.sequence no | |<---index.rollback.begin |这是回滚开始的地方,我们向下找到这个记录Rec Offset Rec Offset Rec Offset Rec Offset Rec Offset---------------------------------------------------------------------------0x01 0x1f18 0x02 0x1e48 0x03 0x1d78 0x04 0x1ca8 0x05 0x1bd8 0x06 0x1b08 0x07 0x1a38 0x08 0x1968 0x09 0x1898 0x0a 0x17c8 0x0b 0x16f8 0x0c 0x1628 0x0d 0x1558 0x0e 0x1488 0x0f 0x13b8 0x10 0x12e8 0x11 0x1218 0x12 0x1148 0x13 0x1078 0x14 0x0fa8 0x15 0x0ed8 0x16 0x0e08 0x17 0x0d38 0x18 0x0c68 0x19 0x0b98 0x1a 0x0ac8 0x1b 0x09dc 0x1c 0x0960 *-----------------------------* Rec #0x1slt: 0x0bobjn: 516(0x00000204)objd: 514tblspc: 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: 0x00000000*-----------------------------uba: 0x0080006c.040d.26 ctl max scn: 0x0000.017e096c prv tx scn: 0x0000.017e0d5eKDO undo record:KTB Redo op: 0x04ver: 0x01op: Litl: xid:0x0006.01f.00000b4b uba: 0x0080005d.04fa.01 flg: C--- lkc:0 scn: 0x0000.017ec07bKDO Op code: URP row dependencies Disabledxtype: XAbdba: 0x00400e8dhdba: 0x00400e89itli: 2ispac: 0maxfr: 4863tabn: 1 slot: 15(0xf) flag: 0x6c lock: 0 ckix: 0ncol: 4 nnew: 4 size: 0col0: [ 6]c5 0b 60 0b 2d 5bcol1: [ 7]78 68 09 0d 0c 2a 20col2: [ 1]80col3: [ 5]c4 19 5b 63 64 *-----------------------------* Rec #0x2slt: 0x0aobjn: 516(0x00000204)objd: 514tblspc: 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: 0x00000000*-----------------------------uba: 0x0080006d.040d.01 ctl max scn: 0x0000.017e0d5e prv tx scn: 0x0000.017e0dd1KDO undo record:KTB Redo op: 0x04ver: 0x01op: Litl: xid:0x0006.018.00000b4b uba: 0x0080005d.04fa.02 flg: C--- lkc:0 scn: 0x0000.017ec46eKDO Op code: URP row dependencies Disabledxtype: XAbdba: 0x00400e8dhdba: 0x00400e89itli: 2ispac: 0maxfr: 4863tabn: 1 slot: 25(0x19) flag: 0x6c lock: 0 ckix: 0ncol: 4 nnew: 4 size: 0col0: [ 6]c5 0b 60 0b 4c 3dcol1: [ 7]78 68 09 0d 0d 21 2ccol2: [ 1]80col3: [ 5]c4 19 5c 0a 0a *-----------------------------* Rec #0x3slt: 0x09objn: 516(0x00000204)objd: 514tblspc: 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: 0x00000000*-----------------------------uba: 0x0080006d.040d.02 ctl max scn: 0x0000.017e0dd1 prv tx scn: 0x0000.017e109bKDO undo record:KTB Redo op: 0x04ver: 0x01op: Litl: xid:0x0006.009.00000b4b uba: 0x0080005d.04fa.03 flg: C--- lkc:0 scn: 0x0000.017ec860KDO Op code: URP row dependencies Disabledxtype: XAbdba: 0x00400e8dhdba: 0x00400e89itli: 2ispac: 0maxfr: 4863tabn: 1 slot: 35(0x23) flag: 0x6c lock: 0 ckix: 0ncol: 4 nnew: 4 size: 0col0: [ 6]c5 0b 60 0c 07 22col1: [ 7]78 68 09 0d 0e 18 38col2: [ 1]80col3: [ 5]c4 19 5c 14 15 *-----------------------------* Rec #0x4slt: 0x08objn: 516(0x00000204)objd: 514tblspc: 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: 0x00000000*-----------------------------uba: 0x0080006d.040d.03 ctl max scn: 0x0000.017e109b prv tx scn: 0x0000.017e148eKDO undo record:KTB Redo op: 0x04ver: 0x01op: Litl: xid:0x0006.011.00000b4b uba: 0x0080005d.04fa.04 flg: C--- lkc:0 scn: 0x0000.017ecc53KDO Op code: URP row dependencies Disabledxtype: XAbdba: 0x00400e8dhdba: 0x00400e89itli: 2ispac: 0maxfr: 4863tabn: 1 slot: 45(0x2d) flag: 0x6c lock: 0 ckix: 0ncol: 4 nnew: 4 size: 0col0: [ 6]c5 0b 60 0c 26 07col1: [ 7]78 68 09 0d 0f 10 08col2: [ 1]80col3: [ 5]c4 19 5c 1e 20 *-----------------------------* Rec #0x5slt: 0x29objn: 516(0x00000204)objd: 514tblspc: 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: 0x00000000*-----------------------------uba: 0x0080006d.040d.04 ctl max scn: 0x0000.017e148e prv tx scn: 0x0000.017e1880KDO undo record:KTB Redo op: 0x04ver: 0x01op: Litl: xid:0x0006.01a.00000b4b uba: 0x0080005d.04fa.05 flg: C--- lkc:0 scn: 0x0000.017ed046KDO Op code: URP row dependencies Disabledxtype: XAbdba: 0x00400e8dhdba: 0x00400e89itli: 2ispac: 0maxfr: 4863tabn: 1 slot: 55(0x37) flag: 0x6c lock: 0 ckix: 0ncol: 4 nnew: 4 size: 0col0: [ 6]c5 0b 60 0c 44 50col1: [ 7]78 68 09 0d 10 07 14col2: [ 1]80col3: [ 5]c4 19 5c 28 2b *-----------------------------* Rec #0x6slt: 0x0cobjn: 516(0x00000204)objd: 514tblspc: 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: 0x00000000*-----------------------------uba: 0x0080006d.040d.05 ctl max scn: 0x0000.017e1880 prv tx scn: 0x0000.017e1c73KDO undo record:KTB Redo op: 0x04ver: 0x01op: Litl: xid:0x0006.029.00000b4b uba: 0x0080005d.04fa.06 flg: C--- lkc:0 scn: 0x0000.017ed439KDO Op code: URP row dependencies Disabledxtype: XAbdba: 0x00400e8dhdba: 0x00400e89itli: 2ispac: 0maxfr: 4863tabn: 1 slot: 65(0x41) flag: 0x6c lock: 0 ckix: 0ncol: 4 nnew: 4 size: 0col0: [ 6]c5 0b 60 0c 63 32col1: [ 7]78 68 09 0d 10 3a 21col2: [ 1]80col3: [ 5]c4 19 5c 32 36 *-----------------------------* Rec #0x7slt: 0x11objn: 516(0x00000204)objd: 514tblspc: 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: 0x00000000*-----------------------------uba: 0x0080006d.040d.06 ctl max scn: 0x0000.017e1c73 prv tx scn: 0x0000.017e2066KDO undo record:KTB Redo op: 0x04ver: 0x01op: Litl: xid:0x0006.027.00000b4b uba: 0x0080005d.04fa.07 flg: C--- lkc:0 scn: 0x0000.017ed82bKDO Op code: URP row dependencies Disabledxtype: XAbdba: 0x00400e8dhdba: 0x00400e89itli: 2ispac: 0maxfr: 4863tabn: 1 slot: 75(0x4b) flag: 0x6c lock: 0 ckix: 0ncol: 4 nnew: 4 size: 0col0: [ 6]c5 0b 60 0d 1e 17col1: [ 7]78 68 09 0d 11 31 2dcol2: [ 1]80col3: [ 5]c4 19 5c 3c 41 *-----------------------------* Rec #0x8slt: 0x10objn: 516(0x00000204)objd: 514tblspc: 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: 0x00000000*-----------------------------uba: 0x0080006d.040d.07 ctl max scn: 0x0000.017e2066 prv tx scn: 0x0000.017e2459KDO undo record:KTB Redo op: 0x04ver: 0x01op: Litl: xid:0x0006.01d.00000b4b uba: 0x0080005d.04fa.08 flg: C--- lkc:0 scn: 0x0000.017edc1eKDO Op code: URP row dependencies Disabledxtype: XAbdba: 0x00400e8dhdba: 0x00400e89itli: 2ispac: 0maxfr: 4863tabn: 1 slot: 85(0x55) flag: 0x6c lock: 0 ckix: 0ncol: 4 nnew: 4 size: 0col0: [ 6]c5 0b 60 0d 3c 60col1: [ 7]78 68 09 0d 12 28 39col2: [ 1]80col3: [ 5]c4 19 5c 46 4c *-----------------------------* Rec #0x9slt: 0x13objn: 516(0x00000204)objd: 514tblspc: 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: 0x00000000*-----------------------------uba: 0x0080006d.040d.08 ctl max scn: 0x0000.017e2459 prv tx scn: 0x0000.017e284bKDO undo record:KTB Redo op: 0x04ver: 0x01op: Litl: xid:0x0006.01c.00000b4b uba: 0x0080005d.04fa.09 flg: C--- lkc:0 scn: 0x0000.017ee011KDO Op code: URP row dependencies Disabledxtype: XAbdba: 0x00400e8dhdba: 0x00400e89itli: 2ispac: 0maxfr: 4863tabn: 1 slot: 95(0x5f) flag: 0x6c lock: 0 ckix: 0ncol: 4 nnew: 4 size: 0col0: [ 6]c5 0b 60 0d 5b 45col1: [ 7]78 68 09 0d 13 20 09col2: [ 1]80col3: [ 5]c4 19 5c 50 57 *-----------------------------* Rec #0xaslt: 0x12objn: 516(0x00000204)objd: 514tblspc: 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: 0x00000000*-----------------------------uba: 0x0080006d.040d.09 ctl max scn: 0x0000.017e284b prv tx scn: 0x0000.017e2c3eKDO undo record:KTB Redo op: 0x04ver: 0x01op: Litl: xid:0x0006.02c.00000b4b uba: 0x0080005d.04fa.0a flg: C--- lkc:0 scn: 0x0000.017ee403KDO Op code: URP row dependencies Disabledxtype: XAbdba: 0x00400e8dhdba: 0x00400e89itli: 2ispac: 0maxfr: 4863tabn: 1 slot: 105(0x69) flag: 0x6c lock: 0 ckix: 0ncol: 4 nnew: 4 size: 0col0: [ 6]c5 0b 60 0e 16 27col1: [ 7]78 68 09 0d 14 17 15col2: [ 1]80col3: [ 5]c4 19 5c 5a 61 *-----------------------------* Rec #0xbslt: 0x0dobjn: 516(0x00000204)objd: 514tblspc: 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: 0x00000000*-----------------------------uba: 0x0080006d.040d.0a ctl max scn: 0x0000.017e2c3e prv tx scn: 0x0000.017e3031KDO undo record:KTB Redo op: 0x04ver: 0x01op: Litl: xid:0x0006.022.00000b4b uba: 0x0080005d.04fa.0b flg: C--- lkc:0 scn: 0x0000.017ee7f6KDO Op code: URP row dependencies Disabledxtype: XAbdba: 0x00400e8dhdba: 0x00400e89itli: 2ispac: 0maxfr: 4863tabn: 1 slot: 115(0x73) flag: 0x6c lock: 0 ckix: 0ncol: 4 nnew: 4 size: 0col0: [ 6]c5 0b 60 0e 35 0ccol1: [ 7]78 68 09 0d 15 0e 22col2: [ 1]80col3: [ 5]c4 19 5d 01 08 *-----------------------------* Rec #0xcslt: 0x14objn: 516(0x00000204)objd: 514tblspc: 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: 0x00000000*-----------------------------uba: 0x0080006d.040d.0b ctl max scn: 0x0000.017e3031 prv tx scn: 0x0000.017e3424KDO undo record:KTB Redo op: 0x04ver: 0x01op: Litl: xid:0x0006.02a.00000b4b uba: 0x0080005d.04fa.0c flg: C--- lkc:0 scn: 0x0000.017eebe9KDO Op code: URP row dependencies Disabledxtype: XAbdba: 0x00400e8dhdba: 0x00400e89itli: 2ispac: 0maxfr: 4863tabn: 1 slot: 125(0x7d) flag: 0x6c lock: 0 ckix: 0ncol: 4 nnew: 4 size: 0col0: [ 6]c5 0b 60 0e 53 55col1: [ 7]78 68 09 0d 16 05 2ecol2: [ 1]80col3: [ 5]c4 19 5d 0b 13 *-----------------------------* Rec #0xdslt: 0x17objn: 516(0x00000204)objd: 514tblspc: 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: 0x00000000*-----------------------------uba: 0x0080006d.040d.0c ctl max scn: 0x0000.017e3424 prv tx scn: 0x0000.017e3816KDO undo record:KTB Redo op: 0x04ver: 0x01op: Litl: xid:0x0006.02e.00000b4b uba: 0x0080005d.04fa.0d flg: C--- lkc:0 scn: 0x0000.017eefdcKDO Op code: URP row dependencies Disabledxtype: XAbdba: 0x00400e8dhdba: 0x00400e89itli: 2ispac: 0maxfr: 4863tabn: 1 slot: 135(0x87) flag: 0x6c lock: 0 ckix: 0ncol: 4 nnew: 4 size: 0col0: [ 6]c5 0b 60 0f 0e 37col1: [ 7]78 68 09 0d 16 38 3acol2: [ 1]80col3: [ 5]c4 19 5d 15 1d *-----------------------------* Rec #0xeslt: 0x1aobjn: 516(0x00000204)objd: 514tblspc: 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: 0x00000000*-----------------------------uba: 0x0080006d.040d.0d ctl max scn: 0x0000.017e3816 prv tx scn: 0x0000.017e3c09KDO undo record:KTB Redo op: 0x04ver: 0x01op: Litl: xid:0x0006.028.00000b4b uba: 0x0080005d.04fa.0e flg: C--- lkc:0 scn: 0x0000.017ef3ceKDO Op code: URP row dependencies Disabledxtype: XAbdba: 0x00400e8dhdba: 0x00400e89itli: 2ispac: 0maxfr: 4863tabn: 1 slot: 145(0x91) flag: 0x6c lock: 0 ckix: 0ncol: 4 nnew: 4 size: 0col0: [ 6]c5 0b 60 0f 2d 1ccol1: [ 7]78 68 09 0d 17 30 0acol2: [ 1]80col3: [ 5]c4 19 5d 1f 28 *-----------------------------* Rec #0xfslt: 0x19objn: 516(0x00000204)objd: 514tblspc: 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: 0x00000000*-----------------------------uba: 0x0080006d.040d.0e ctl max scn: 0x0000.017e3c09 prv tx scn: 0x0000.017e3ffcKDO undo record:KTB Redo op: 0x04ver: 0x01op: Litl: xid:0x0006.02f.00000b4b uba: 0x0080005d.04fa.0f flg: C--- lkc:0 scn: 0x0000.017ef7c1KDO Op code: URP row dependencies Disabledxtype: XAbdba: 0x00400e8dhdba: 0x00400e89itli: 2ispac: 0maxfr: 4863tabn: 1 slot: 155(0x9b) flag: 0x6c lock: 0 ckix: 0ncol: 4 nnew: 4 size: -1col0: [ 5]c5 0b 60 0f 4ccol1: [ 7]78 68 09 0d 18 27 16col2: [ 1]80col3: [ 5]c4 19 5d 29 33 *-----------------------------* Rec #0x10slt: 0x1eobjn: 516(0x00000204)objd: 514tblspc: 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: 0x00000000*-----------------------------uba: 0x0080006d.040d.0f ctl max scn: 0x0000.017e3ffc prv tx scn: 0x0000.017e43f4KDO undo record:KTB Redo op: 0x04ver: 0x01op: Litl: xid:0x0006.02b.00000b4b uba: 0x0080005d.04fa.10 flg: C--- lkc:0 scn: 0x0000.017efbb4KDO Op code: URP row dependencies Disabledxtype: XAbdba: 0x00400e8dhdba: 0x00400e89itli: 2ispac: 0maxfr: 4863tabn: 1 slot: 165(0xa5) flag: 0x6c lock: 0 ckix: 0ncol: 4 nnew: 4 size: 1col0: [ 6]c5 0b 60 10 06 4acol1: [ 7]78 68 09 0e 01 1e 23col2: [ 1]80col3: [ 5]c4 19 5d 33 3e *-----------------------------* Rec #0x11slt: 0x0eobjn: 516(0x00000204)objd: 514tblspc: 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: 0x00000000*-----------------------------uba: 0x0080006d.040d.10 ctl max scn: 0x0000.017e43f4 prv tx scn: 0x0000.017e4599KDO undo record:KTB Redo op: 0x04ver: 0x01op: Litl: xid:0x0006.003.00000b4c uba: 0x0080005d.04fa.11 flg: C--- lkc:0 scn: 0x0000.017effa7KDO Op code: URP row dependencies Disabledxtype: XAbdba: 0x00400e8dhdba: 0x00400e89itli: 2ispac: 0maxfr: 4863tabn: 1 slot: 175(0xaf) flag: 0x6c lock: 0 ckix: 0ncol: 4 nnew: 4 size: 0col0: [ 6]c5 0b 60 10 25 2ccol1: [ 7]78 68 09 0e 02 15 2fcol2: [ 1]80col3: [ 5]c4 19 5d 3d 48 *-----------------------------* Rec #0x12slt: 0x1fobjn: 516(0x00000204)objd: 514tblspc: 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: 0x00000000*-----------------------------uba: 0x0080006d.040d.11 ctl max scn: 0x0000.017e4599 prv tx scn: 0x0000.017e46d6KDO undo record:KTB Redo op: 0x04ver: 0x01op: Litl: xid:0x0006.021.00000b4b uba: 0x0080005d.04fa.12 flg: C--- lkc:0 scn: 0x0000.017f0399KDO Op code: URP row dependencies Disabledxtype: XAbdba: 0x00400e8dhdba: 0x00400e89itli: 2ispac: 0maxfr: 4863tabn: 1 slot: 185(0xb9) flag: 0x6c lock: 0 ckix: 0ncol: 4 nnew: 4 size: 0col0: [ 6]c5 0b 60 10 44 11col1: [ 7]78 68 09 0e 03 0c 3bcol2: [ 1]80col3: [ 5]c4 19 5d 47 53 *-----------------------------* Rec #0x13slt: 0x18objn: 516(0x00000204)objd: 514tblspc: 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: 0x00000000*-----------------------------uba: 0x0080006d.040d.12 ctl max scn: 0x0000.017e46d6 prv tx scn: 0x0000.017e4ad0KDO undo record:KTB Redo op: 0x04ver: 0x01op: Litl: xid:0x0006.000.00000b4c uba: 0x0080005d.04fa.13 flg: C--- lkc:0 scn: 0x0000.017f078cKDO Op code: URP row dependencies Disabledxtype: XAbdba: 0x00400e8dhdba: 0x00400e89itli: 2ispac: 0maxfr: 4863tabn: 1 slot: 195(0xc3) flag: 0x6c lock: 0 ckix: 0ncol: 4 nnew: 4 size: 0col0: [ 6]c5 0b 60 10 62 5acol1: [ 7]78 68 09 0e 04 04 0bcol2: [ 1]80col3: [ 5]c4 19 5d 51 5e *-----------------------------* Rec #0x14slt: 0x1cobjn: 516(0x00000204)objd: 514tblspc: 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: 0x00000000*-----------------------------uba: 0x0080006d.040d.13 ctl max scn: 0x0000.017e4ad0 prv tx scn: 0x0000.017e4ec3KDO undo record:KTB Redo op: 0x04ver: 0x01op: Litl: xid:0x0006.026.00000b4b uba: 0x0080005d.04fa.14 flg: C--- lkc:0 scn: 0x0000.017f0b7fKDO Op code: URP row dependencies Disabledxtype: XAbdba: 0x00400e8dhdba: 0x00400e89itli: 2ispac: 0maxfr: 4863tabn: 1 slot: 205(0xcd) flag: 0x6c lock: 0 ckix: 0ncol: 4 nnew: 4 size: 0col0: [ 6]c5 0b 60 11 1d 3fcol1: [ 7]78 68 09 0e 04 37 17col2: [ 1]80col3: [ 5]c4 19 5d 5c 06 *-----------------------------* Rec #0x15slt: 0x20objn: 516(0x00000204)objd: 514tblspc: 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: 0x00000000*-----------------------------uba: 0x0080006d.040d.14 ctl max scn: 0x0000.017e4ec3 prv tx scn: 0x0000.017e52b6KDO undo record:KTB Redo op: 0x04ver: 0x01op: Litl: xid:0x0006.002.00000b4c uba: 0x0080005d.04fa.15 flg: C--- lkc:0 scn: 0x0000.017f0f72KDO Op code: URP row dependencies Disabledxtype: XAbdba: 0x00400e8dhdba: 0x00400e89itli: 2ispac: 0maxfr: 4863tabn: 1 slot: 215(0xd7) flag: 0x6c lock: 0 ckix: 0ncol: 4 nnew: 4 size: 0col0: [ 6]c5 0b 60 11 3c 21col1: [ 7]78 68 09 0e 05 2e 24col2: [ 1]80col3: [ 5]c4 19 5e 02 10 *-----------------------------* Rec #0x16slt: 0x1bobjn: 516(0x00000204)objd: 514tblspc: 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: 0x00000000*-----------------------------uba: 0x0080006d.040d.15 ctl max scn: 0x0000.017e52b6 prv tx scn: 0x0000.017e56a9KDO undo record:KTB Redo op: 0x04ver: 0x01op: Litl: xid:0x0006.00a.00000b4b uba: 0x0080005d.04fa.16 flg: C--- lkc:0 scn: 0x0000.017f1364KDO Op code: URP row dependencies Disabledxtype: XAbdba: 0x00400e8dhdba: 0x00400e89itli: 2ispac: 0maxfr: 4863tabn: 1 slot: 225(0xe1) flag: 0x6c lock: 0 ckix: 0ncol: 4 nnew: 4 size: 0col0: [ 6]c5 0b 60 11 5b 06col1: [ 7]78 68 09 0e 06 25 30col2: [ 1]80col3: [ 5]c4 19 5e 0c 1b *-----------------------------* Rec #0x17slt: 0x21objn: 516(0x00000204)objd: 514tblspc: 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: 0x00000000*-----------------------------uba: 0x0080006d.040d.16 ctl max scn: 0x0000.017e56a9 prv tx scn: 0x0000.017e5a9bKDO undo record:KTB Redo op: 0x04ver: 0x01op: Litl: xid:0x0006.006.00000b4c uba: 0x0080005d.04fa.17 flg: C--- lkc:0 scn: 0x0000.017f1757KDO Op code: URP row dependencies Disabledxtype: XAbdba: 0x00400e8dhdba: 0x00400e89itli: 2ispac: 0maxfr: 4863tabn: 1 slot: 235(0xeb) flag: 0x6c lock: 0 ckix: 0ncol: 4 nnew: 4 size: 0col0: [ 6]c5 0b 60 12 15 4fcol1: [ 7]78 68 09 0e 07 1c 3ccol2: [ 1]80col3: [ 5]c4 19 5e 16 26 *-----------------------------* Rec #0x18slt: 0x22objn: 516(0x00000204)objd: 514tblspc: 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: 0x00000000*-----------------------------uba: 0x0080006d.040d.17 ctl max scn: 0x0000.017e5a9b prv tx scn: 0x0000.017e5e8dKDO undo record:KTB Redo op: 0x04ver: 0x01op: Litl: xid:0x0006.012.00000b4b uba: 0x0080005d.04fa.18 flg: C--- lkc:0 scn: 0x0000.017f1b4aKDO Op code: URP row dependencies Disabledxtype: XAbdba: 0x00400e8dhdba: 0x00400e89itli: 2ispac: 0maxfr: 4863tabn: 1 slot: 245(0xf5) flag: 0x6c lock: 0 ckix: 0ncol: 4 nnew: 4 size: 0col0: [ 6]c5 0b 60 12 34 31col1: [ 7]78 68 09 0e 08 14 0ccol2: [ 1]80col3: [ 5]c4 19 5e 20 30 *-----------------------------* Rec #0x19slt: 0x07objn: 516(0x00000204)objd: 514tblspc: 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: 0x00000000*-----------------------------uba: 0x0080006d.040d.18 ctl max scn: 0x0000.017e5e8d prv tx scn: 0x0000.017e6281KDO undo record:KTB Redo op: 0x04ver: 0x01op: Litl: xid:0x0006.005.00000b4c uba: 0x0080005d.04fa.19 flg: C--- lkc:0 scn: 0x0000.017f1f3dKDO Op code: URP row dependencies Disabledxtype: XAbdba: 0x00400e8dhdba: 0x00400e89itli: 2ispac: 0maxfr: 4863tabn: 1 slot: 255(0xff) flag: 0x6c lock: 0 ckix: 0ncol: 4 nnew: 4 size: 0col0: [ 6]c5 0b 60 12 53 16col1: [ 7]78 68 09 0e 09 0b 18col2: [ 1]80col3: [ 5]c4 19 5e 2a 3b *-----------------------------* Rec #0x1aslt: 0x0fobjn: 516(0x00000204)objd: 514tblspc: 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: 0x00000000*-----------------------------uba: 0x0080006d.040d.19 ctl max scn: 0x0000.017e6281 prv tx scn: 0x0000.017e6673KDO undo record:KTB Redo op: 0x04ver: 0x01op: Litl: xid:0x0006.008.00000b4c uba: 0x0080005d.04fa.1a flg: C--- lkc:0 scn: 0x0000.017f232fKDO Op code: URP row dependencies Disabledxtype: XAbdba: 0x00400e8ehdba: 0x00400e89itli: 2ispac: 0maxfr: 4863tabn: 1 slot: 7(0x7) flag: 0x6c lock: 0 ckix: 0ncol: 4 nnew: 4 size: 0col0: [ 6]c5 0b 60 13 0d 5fcol1: [ 7]78 68 09 0e 0a 02 24col2: [ 1]80col3: [ 5]c4 19 5e 34 46 *-----------------------------* Rec #0x1bslt: 0x24objn: 18(0x00000012)objd: 18tblspc: 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: 0x00000000*-----------------------------uba: 0x0080006d.040d.1a ctl max scn: 0x0000.017e6673 prv tx scn: 0x0000.017e6a66KDO undo record:KTB Redo op: 0x04ver: 0x01op: Litl: xid:0x0007.01e.00000b14 uba: 0x008000dd.03f2.1b flg: C--- lkc:0 scn: 0x0000.017cfed9KDO Op code: URP row dependencies Disabledxtype: XAbdba: 0x0040007ahdba: 0x00400079itli: 1ispac: 0maxfr: 4863tabn: 0 slot: 33(0x21) flag: 0x2c lock: 0 ckix: 0ncol: 17 nnew: 11 size: 0col0: [ 2]c1 02col1: [ 4]c3 02 3e 4ecol6: [ 1]80col7: [ 7]78 67 07 10 04 29 0ecol8: [ 7]78 68 09 0f 0e 39 1acol9: [ 7]78 67 07 10 04 29 0ecol 10: [ 1]80col 13: [ 1]80col 14: *NULL*col 15: [ 1]80col 16: [ 4]c3 07 38 24 *-----------------------------* Rec #0x1cslt: 0x23objn: 16177(0x00003f31)objd: 16177tblspc: 0(0x00000000)SQL> select object_name from dba_objects where object_id=16177;OBJECT_NAME--------------------------------------------------------------------------------UD* Layer:11 (Row) opc: 1 rci 0x00 Undo type:Regular undo Begin trans Last buffer split:No Temp Object:No Tablespace Undo:No rdba: 0x00000000*-----------------------------uba: 0x0080006d.040d.1b ctl max scn: 0x0000.017e6a66 prv tx scn: 0x0000.017e6e59KDO undo record:KTB Redo op: 0x03ver: 0x01op: ZKDO Op code: URP row dependencies Disabledxtype: XAbdba: 0x0040657ahdba: 0x00406579itli: 2ispac: 0maxfr: 4863tabn: 0 slot: 1(0x1) flag: 0x2c lock: 0 ckix: 80ncol: 1 nnew: 1 size: 0col0: [ 2]c1 03 <------这里记录的就是前镜像 c1 03就是2 End dump data blocks tsn: 1 file#: 2 minblk 109 maxblk 109我们再来看一下数据块的变化:
SQL> select file_id,block_id from dba_extents where segment_name='UD'; FILE_ID BLOCK_ID---------- ---------- 1 25977SQL> alter system dump datafile 1 blockmin 25977 block max 25979;System altered.查看trace内容:Start dump data blocks tsn: 0 file#: 1 minblk 25977 maxblk 25979buffer tsn: 0 rdba: 0x00406579 (1/25977)scn: 0x0000.017f2520 seq: 0x01 flg: 0x04 tail: 0x25201001frmt: 0x02 chkval: 0x1d41 type: 0x10=DATA SEGMENT HEADER - UNLIMITEDExtent Control Header-----------------------------------------------------------------Extent Header:: spare1: 0 spare2: 0 #extents: 1 #blocks: 7 last map0x00000000#maps: 0 offset: 4128 Highwater::0x0040657bext#: 0 blk#: 1 ext size: 7 #blocks in seg. hdr's freelists: 1 #blocks below: 1 mapblk0x00000000offset: 0 Unlocked Map Header:: next0x00000000#extents: 1 obj#: 16177flag: 0x40000000Extent Map----------------------------------------------------------------- 0x0040657alength: 7 nfl = 1, nfb = 1 typ = 1 nxf = 0 ccnt = 1SEG LST:: flg: USED lhd: 0x0040657a ltl: 0x0040657a buffer tsn: 0 rdba: 0x0040657a (1/25978)scn: 0x0000.017f73e0 seq: 0x01 flg: 0x04 tail: 0x73e00601frmt: 0x02 chkval: 0x6763 type: 0x06=trans dataBlock header dump:0x0040657a Object id on Block? Y seg/obj: 0x3f31csc: 0x00.17f73dcitc: 2flg: Otyp: 1 - DATA fsl: 0fnx: 0x0 ver: 0x01Itl Xid Uba FlagLck Scn/Fsc0x01 0x0005.018.00000b530x0080004d.04f6.1dC--- 0scn 0x0000.017f25210x02 0x0007.023.00000b2d0x0080006d.040d.1c---- 1fsc 0x0000.00000000ITL事务槽--Interested Transaction List(ITL)ITL内容包括:xid---Transaction IDUba---Undo Block AddressLck---Lock Statusxid=Undo.Segment.Number+Transaction.Table.Slot.Number+Wrap我们看到itl2上存在活动事务.xid=0x0007.023.00000b2d指向7号回滚段.Slot号为23,Wrap#为b2d,正是我们dump回滚段看到的那个事务.uba=Address.Of.Last.Undo.Block.Used+Sequence+Last.Entry.in.UNDO.Record.Mapuba=0x0080006d.040d.1c data_block_dump,data header at 0xadb505c===============tsiz: 0x1fa0hsiz: 0x16pbl: 0x0adb505cbdba: 0x0040657a 76543210flag=--------ntab=1nrow=2frre=-1fsbo=0x16fseo=0x1f94avsp=0x1f78tosp=0x1f780xe:pti nrow=2offs=00x12:pri offs=0x1f9a0x14:pri offs=0x1f94block_row_dump:tab 0, row 0, @0x1f9atl: 6 fb: --H-FL-- lb: 0x0cc: 1col0: [ 2]c1 02tab 0, row 1, @0x1f94tl: 6 fb: --H-FL-- lb: 0x2cc: 1col0: [ 2]c2 0bend_of_block_dumpbuffer tsn: 0 rdba: 0x0000657b (0/25979)scn: 0x0000.00000000 seq: 0x01 flg: 0x05 tail: 0x00000001frmt: 0x02 chkval: 0x627b type: 0x00=unknownHex dump of corrupt header 4 = CORRUPTDump of memory from 0x0ADB5000 to 0x0ADB5014ADB5000 00000200 0000657B 00000000 05010000[....{e..........]ADB5010 0000627B [{b..] End dump data blocks tsn: 0 file#: 1 minblk 25977 maxblk 25979现在我们来总结一下事务的流程:
1.分配一个回滚段
2.在回滚段事务表中分配一个事务槽
3.分配undo block
4.更新数据块上的ITL事务槽
5.把前镜像记录在undo block内
6.更改数据块的内容
由于Delayed Block Cleanout的存在,Oracle在读一个block时,如果ITL事务槽存在活动事务,那么Oracle必须根据相应的xid找到
相应的回滚段以判断事务状态.
页:
[1]