原文链接:
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$';
以下开始测试:
>
> 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 bytes
> Fixed Size 451176 bytes
> Variable Size 29360128 bytes
> Database Buffers 16777216 bytes
> Redo Buffers 667648 bytes
> Database 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 0
>
> 11 rows selected.
>
> SQL> select * from ud;
>
> N
> ----------
> 1
> 2
>
> SQL> 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 28
>
> 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 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 0
>
> 11 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> @gettrcname
>
> TRACE_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 map 0x00000000 #maps: 0 offset: 4080
> Highwater:: 0x0080006d ext#: 0 blk#: 3 ext size: 7
> #blocks in seg. hdr's freelists: 0
> #blocks below: 0
> mapblk 0x00000000 offset: 0
> Unlocked
> Map Header:: next 0x00000000 #extents: 2 obj#: 0 flag: 0x40000000
> Extent Map
> -----------------------------------------------------------------
> 0x0080006a length: 7
> 0x008000d1 length: 8
>
> Retention Table
> -----------------------------------------------------------
> Extent Number:0 Commit Time: 1095324259
> Extent Number:1 Commit 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.017e6e59
> Version: 0x01
> FREE BLOCK POOL::
> uba: 0x00000000.040d.1b ext: 0x0 spc: 0x994
> uba: 0x00000000.040c.30 ext: 0x5 spc: 0xa1e
> uba: 0x00000000.040c.43 ext: 0x5 spc: 0x198
> uba: 0x00000000.03ed.01 ext: 0x0 spc: 0x1fa0
> uba: 0x00000000.0000.00 ext: 0x0 spc: 0x0
> TRN TBL::------Transaction table,也就是这个回滚段中记录的事务列表
>
>
> index state cflags wrap# uel scn dba parent-xid nub stmt_num
> ------------------------------------------------------------------------------------------------
> 0x00 9 0x00 0x0b2d 0x0027 0x0000.017ea992 0x0080006c 0x0000.000.00000000 0x00000001 0x00000000
> 0x01 9 0x00 0x0b2d 0x0002 0x0000.017e9dba 0x0080006c 0x0000.000.00000000 0x00000001 0x00000000
> 0x02 9 0x00 0x0b2d 0x0004 0x0000.017ea1ad 0x0080006c 0x0000.000.00000000 0x00000001 0x00000000
> 0x03 9 0x00 0x0b2d 0x0001 0x0000.017e99c7 0x0080006c 0x0000.000.00000000 0x00000001 0x00000000
> 0x04 9 0x00 0x0b2d 0x0000 0x0000.017ea5a0 0x0080006c 0x0000.000.00000000 0x00000001 0x00000000
> 0x05 9 0x00 0x0b2d 0x000b 0x0000.017ebd50 0x0080006c 0x0000.000.00000000 0x00000001 0x00000000
> 0x06 9 0x00 0x0b2d 0x0005 0x0000.017eb95d 0x0080006c 0x0000.000.00000000 0x00000001 0x00000000
> 0x07 9 0x00 0x0b2d 0x000f 0x0000.017f1fa2 0x0080006d 0x0000.000.00000000 0x00000001 0x00000000
> 0x08 9 0x00 0x0b2d 0x0029 0x0000.017eccb8 0x0080006d 0x0000.000.00000000 0x00000001 0x00000000
> 0x09 9 0x00 0x0b2d 0x0008 0x0000.017ec8c5 0x0080006d 0x0000.000.00000000 0x00000001 0x00000000
> 0x0a 9 0x00 0x0b2d 0x0009 0x0000.017ec4d3 0x0080006d 0x0000.000.00000000 0x00000001 0x00000000
> 0x0b 9 0x00 0x0b2d 0x000a 0x0000.017ec0e0 0x0080006d 0x0000.000.00000000 0x00000001 0x00000000
> 0x0c 9 0x00 0x0b2d 0x0011 0x0000.017ed49e 0x0080006d 0x0000.000.00000000 0x00000001 0x00000000
> 0x0d 9 0x00 0x0b2d 0x0014 0x0000.017ee85b 0x0080006d 0x0000.000.00000000 0x00000001 0x00000000
> 0x0e 9 0x00 0x0b2d 0x001f 0x0000.017f000c 0x0080006d 0x0000.000.00000000 0x00000001 0x00000000
> 0x0f 9 0x00 0x0b2d 0x0024 0x0000.017f2394 0x0080006d 0x0000.000.00000000 0x00000001 0x00000000
> 0x10 9 0x00 0x0b2d 0x0013 0x0000.017edc83 0x0080006d 0x0000.000.00000000 0x00000001 0x00000000
> 0x11 9 0x00 0x0b2d 0x0010 0x0000.017ed890 0x0080006d 0x0000.000.00000000 0x00000001 0x00000000
> 0x12 9 0x00 0x0b2d 0x000d 0x0000.017ee469 0x0080006d 0x0000.000.00000000 0x00000001 0x00000000
> 0x13 9 0x00 0x0b2d 0x0012 0x0000.017ee076 0x0080006d 0x0000.000.00000000 0x00000001 0x00000000
> 0x14 9 0x00 0x0b2d 0x0017 0x0000.017eec4e 0x0080006d 0x0000.000.00000000 0x00000001 0x00000000
> 0x15 9 0x00 0x0b2c 0x0016 0x0000.017e763f 0x0080006c 0x0000.000.00000000 0x00000001 0x00000000
> 0x16 9 0x00 0x0b2c 0x002a 0x0000.017e7a31 0x0080006c 0x0000.000.00000000 0x00000001 0x00000000
> 0x17 9 0x00 0x0b2d 0x001a 0x0000.017ef041 0x0080006d 0x0000.000.00000000 0x00000001 0x00000000
> 0x18 9 0x00 0x0b2d 0x001c 0x0000.017f07f1 0x0080006d 0x0000.000.00000000 0x00000001 0x00000000
> 0x19 9 0x00 0x0b2d 0x001e 0x0000.017ef826 0x0080006d 0x0000.000.00000000 0x00000001 0x00000000
> 0x1a 9 0x00 0x0b2d 0x0019 0x0000.017ef433 0x0080006d 0x0000.000.00000000 0x00000001 0x00000000
> 0x1b 9 0x00 0x0b2d 0x0021 0x0000.017f13c9 0x0080006d 0x0000.000.00000000 0x00000001 0x00000000
> 0x1c 9 0x00 0x0b2d 0x0020 0x0000.017f0be4 0x0080006d 0x0000.000.00000000 0x00000001 0x00000000
> 0x1d 9 0x00 0x0b2c 0x0003 0x0000.017e95d5 0x0080006c 0x0000.000.00000000 0x00000001 0x00000000
> 0x1e 9 0x00 0x0b2d 0x000e 0x0000.017efc19 0x0080006d 0x0000.000.00000000 0x00000001 0x00000000
> 0x1f 9 0x00 0x0b2d 0x0018 0x0000.017f03fe 0x0080006d 0x0000.000.00000000 0x00000001 0x00000000
> 0x20 9 0x00 0x0b2d 0x001b 0x0000.017f0fd7 0x0080006d 0x0000.000.00000000 0x00000001 0x00000000
> 0x21 9 0x00 0x0b2d 0x0022 0x0000.017f17bc 0x0080006d 0x0000.000.00000000 0x00000001 0x00000000
> 0x22 9 0x00 0x0b2d 0x0007 0x0000.017f1baf 0x0080006d 0x0000.000.00000000 0x00000001 0x00000000
> |<---状态9为非活动事务.
> 0x23 10 0x80 0x0b2d 0x0000 0x0000.017f73e0 0x0080006d 0x0000.000.00000000 0x00000001 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 0x00 0x0b2d 0xffff 0x0000.017f2519 0x0080006d 0x0000.000.00000000 0x00000001 0x00000000
> 0x25 9 0x00 0x0b2c 0x0015 0x0000.017e724c 0x0080006c 0x0000.000.00000000 0x00000001 0x00000000
> 0x26 9 0x00 0x0b2b 0x002c 0x0000.017e860a 0x0080006c 0x0000.000.00000000 0x00000001 0x00000000
> 0x27 9 0x00 0x0b2c 0x002b 0x0000.017ead85 0x0080006c 0x0000.000.00000000 0x00000001 0x00000000
> 0x28 9 0x00 0x0b2c 0x002e 0x0000.017e8def 0x0080006c 0x0000.000.00000000 0x00000001 0x00000000
> 0x29 9 0x00 0x0b2c 0x000c 0x0000.017ed0ab 0x0080006d 0x0000.000.00000000 0x00000001 0x00000000
> 0x2a 9 0x00 0x0b2c 0x002f 0x0000.017e7e24 0x0080006c 0x0000.000.00000000 0x00000001 0x00000000
> 0x2b 9 0x00 0x0b2c 0x002d 0x0000.017eb178 0x0080006c 0x0000.000.00000000 0x00000001 0x00000000
> 0x2c 9 0x00 0x0b2c 0x0028 0x0000.017e89fc 0x0080006c 0x0000.000.00000000 0x00000001 0x00000000
> 0x2d 9 0x00 0x0b2c 0x0006 0x0000.017eb56b 0x0080006c 0x0000.000.00000000 0x00000001 0x00000000
> 0x2e 9 0x00 0x0b2c 0x001d 0x0000.017e91e2 0x0080006c 0x0000.000.00000000 0x00000001 0x00000000
> 0x2f 9 0x00 0x0b2c 0x0026 0x0000.017e8217 0x0080006c 0x0000.000.00000000 0x00000001 0x00000000
>
>
> alter system dump datafile 2 block 109;
>
> ********************************************************************************
> Start dump data blocks tsn: 1 file#: 2 minblk 109 maxblk 109
> buffer tsn: 1 rdba: 0x0080006d (2/109)
> scn: 0x0000.017f73e0 seq: 0x01 flg: 0x04 tail: 0x73e00201
> frmt: 0x02 chkval: 0x8fbe type: 0x02=KTU UNDO BLOCK
>
> ********************************************************************************
> UNDO BLK:
> xid: 0x0007.023.00000b2d seq: 0x40d cnt: 0x1c irb: 0x1c icl: 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 #0x1 slt: 0x0b objn: 516(0x00000204) objd: 514 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: 0x00000000
> *-----------------------------
> uba: 0x0080006c.040d.26 ctl max scn: 0x0000.017e096c prv tx scn: 0x0000.017e0d5e
> KDO undo record:
> KTB Redo
> op: 0x04 ver: 0x01
> op: L itl: xid: 0x0006.01f.00000b4b uba: 0x0080005d.04fa.01
> flg: C--- lkc: 0 scn: 0x0000.017ec07b
> KDO Op code: URP row dependencies Disabled
> xtype: XA bdba: 0x00400e8d hdba: 0x00400e89
> itli: 2 ispac: 0 maxfr: 4863
> tabn: 1 slot: 15(0xf) flag: 0x6c lock: 0 ckix: 0
> ncol: 4 nnew: 4 size: 0
> col 0: [ 6] c5 0b 60 0b 2d 5b
> col 1: [ 7] 78 68 09 0d 0c 2a 20
> col 2: [ 1] 80
> col 3: [ 5] c4 19 5b 63 64
>
> *-----------------------------
> * Rec #0x2 slt: 0x0a objn: 516(0x00000204) objd: 514 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: 0x00000000
> *-----------------------------
> uba: 0x0080006d.040d.01 ctl max scn: 0x0000.017e0d5e prv tx scn: 0x0000.017e0dd1
> KDO undo record:
> KTB Redo
> op: 0x04 ver: 0x01
> op: L itl: xid: 0x0006.018.00000b4b uba: 0x0080005d.04fa.02
> flg: C--- lkc: 0 scn: 0x0000.017ec46e
> KDO Op code: URP row dependencies Disabled
> xtype: XA bdba: 0x00400e8d hdba: 0x00400e89
> itli: 2 ispac: 0 maxfr: 4863
> tabn: 1 slot: 25(0x19) flag: 0x6c lock: 0 ckix: 0
> ncol: 4 nnew: 4 size: 0
> col 0: [ 6] c5 0b 60 0b 4c 3d
> col 1: [ 7] 78 68 09 0d 0d 21 2c
> col 2: [ 1] 80
> col 3: [ 5] c4 19 5c 0a 0a
>
> *-----------------------------
> * Rec #0x3 slt: 0x09 objn: 516(0x00000204) objd: 514 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: 0x00000000
> *-----------------------------
> uba: 0x0080006d.040d.02 ctl max scn: 0x0000.017e0dd1 prv tx scn: 0x0000.017e109b
> KDO undo record:
> KTB Redo
> op: 0x04 ver: 0x01
> op: L itl: xid: 0x0006.009.00000b4b uba: 0x0080005d.04fa.03
> flg: C--- lkc: 0 scn: 0x0000.017ec860
> KDO Op code: URP row dependencies Disabled
> xtype: XA bdba: 0x00400e8d hdba: 0x00400e89
> itli: 2 ispac: 0 maxfr: 4863
> tabn: 1 slot: 35(0x23) flag: 0x6c lock: 0 ckix: 0
> ncol: 4 nnew: 4 size: 0
> col 0: [ 6] c5 0b 60 0c 07 22
> col 1: [ 7] 78 68 09 0d 0e 18 38
> col 2: [ 1] 80
> col 3: [ 5] c4 19 5c 14 15
>
> *-----------------------------
> * Rec #0x4 slt: 0x08 objn: 516(0x00000204) objd: 514 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: 0x00000000
> *-----------------------------
> uba: 0x0080006d.040d.03 ctl max scn: 0x0000.017e109b prv tx scn: 0x0000.017e148e
> KDO undo record:
> KTB Redo
> op: 0x04 ver: 0x01
> op: L itl: xid: 0x0006.011.00000b4b uba: 0x0080005d.04fa.04
> flg: C--- lkc: 0 scn: 0x0000.017ecc53
> KDO Op code: URP row dependencies Disabled
> xtype: XA bdba: 0x00400e8d hdba: 0x00400e89
> itli: 2 ispac: 0 maxfr: 4863
> tabn: 1 slot: 45(0x2d) flag: 0x6c lock: 0 ckix: 0
> ncol: 4 nnew: 4 size: 0
> col 0: [ 6] c5 0b 60 0c 26 07
> col 1: [ 7] 78 68 09 0d 0f 10 08
> col 2: [ 1] 80
> col 3: [ 5] c4 19 5c 1e 20
>
> *-----------------------------
> * Rec #0x5 slt: 0x29 objn: 516(0x00000204) objd: 514 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: 0x00000000
> *-----------------------------
> uba: 0x0080006d.040d.04 ctl max scn: 0x0000.017e148e prv tx scn: 0x0000.017e1880
> KDO undo record:
> KTB Redo
> op: 0x04 ver: 0x01
> op: L itl: xid: 0x0006.01a.00000b4b uba: 0x0080005d.04fa.05
> flg: C--- lkc: 0 scn: 0x0000.017ed046
> KDO Op code: URP row dependencies Disabled
> xtype: XA bdba: 0x00400e8d hdba: 0x00400e89
> itli: 2 ispac: 0 maxfr: 4863
> tabn: 1 slot: 55(0x37) flag: 0x6c lock: 0 ckix: 0
> ncol: 4 nnew: 4 size: 0
> col 0: [ 6] c5 0b 60 0c 44 50
> col 1: [ 7] 78 68 09 0d 10 07 14
> col 2: [ 1] 80
> col 3: [ 5] c4 19 5c 28 2b
>
> *-----------------------------
> * Rec #0x6 slt: 0x0c objn: 516(0x00000204) objd: 514 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: 0x00000000
> *-----------------------------
> uba: 0x0080006d.040d.05 ctl max scn: 0x0000.017e1880 prv tx scn: 0x0000.017e1c73
> KDO undo record:
> KTB Redo
> op: 0x04 ver: 0x01
> op: L itl: xid: 0x0006.029.00000b4b uba: 0x0080005d.04fa.06
> flg: C--- lkc: 0 scn: 0x0000.017ed439
> KDO Op code: URP row dependencies Disabled
> xtype: XA bdba: 0x00400e8d hdba: 0x00400e89
> itli: 2 ispac: 0 maxfr: 4863
> tabn: 1 slot: 65(0x41) flag: 0x6c lock: 0 ckix: 0
> ncol: 4 nnew: 4 size: 0
> col 0: [ 6] c5 0b 60 0c 63 32
> col 1: [ 7] 78 68 09 0d 10 3a 21
> col 2: [ 1] 80
> col 3: [ 5] c4 19 5c 32 36
>
> *-----------------------------
> * Rec #0x7 slt: 0x11 objn: 516(0x00000204) objd: 514 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: 0x00000000
> *-----------------------------
> uba: 0x0080006d.040d.06 ctl max scn: 0x0000.017e1c73 prv tx scn: 0x0000.017e2066
> KDO undo record:
> KTB Redo
> op: 0x04 ver: 0x01
> op: L itl: xid: 0x0006.027.00000b4b uba: 0x0080005d.04fa.07
> flg: C--- lkc: 0 scn: 0x0000.017ed82b
> KDO Op code: URP row dependencies Disabled
> xtype: XA bdba: 0x00400e8d hdba: 0x00400e89
> itli: 2 ispac: 0 maxfr: 4863
> tabn: 1 slot: 75(0x4b) flag: 0x6c lock: 0 ckix: 0
> ncol: 4 nnew: 4 size: 0
> col 0: [ 6] c5 0b 60 0d 1e 17
> col 1: [ 7] 78 68 09 0d 11 31 2d
> col 2: [ 1] 80
> col 3: [ 5] c4 19 5c 3c 41
>
> *-----------------------------
> * Rec #0x8 slt: 0x10 objn: 516(0x00000204) objd: 514 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: 0x00000000
> *-----------------------------
> uba: 0x0080006d.040d.07 ctl max scn: 0x0000.017e2066 prv tx scn: 0x0000.017e2459
> KDO undo record:
> KTB Redo
> op: 0x04 ver: 0x01
> op: L itl: xid: 0x0006.01d.00000b4b uba: 0x0080005d.04fa.08
> flg: C--- lkc: 0 scn: 0x0000.017edc1e
> KDO Op code: URP row dependencies Disabled
> xtype: XA bdba: 0x00400e8d hdba: 0x00400e89
> itli: 2 ispac: 0 maxfr: 4863
> tabn: 1 slot: 85(0x55) flag: 0x6c lock: 0 ckix: 0
> ncol: 4 nnew: 4 size: 0
> col 0: [ 6] c5 0b 60 0d 3c 60
> col 1: [ 7] 78 68 09 0d 12 28 39
> col 2: [ 1] 80
> col 3: [ 5] c4 19 5c 46 4c
>
> *-----------------------------
> * Rec #0x9 slt: 0x13 objn: 516(0x00000204) objd: 514 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: 0x00000000
> *-----------------------------
> uba: 0x0080006d.040d.08 ctl max scn: 0x0000.017e2459 prv tx scn: 0x0000.017e284b
> KDO undo record:
> KTB Redo
> op: 0x04 ver: 0x01
> op: L itl: xid: 0x0006.01c.00000b4b uba: 0x0080005d.04fa.09
> flg: C--- lkc: 0 scn: 0x0000.017ee011
> KDO Op code: URP row dependencies Disabled
> xtype: XA bdba: 0x00400e8d hdba: 0x00400e89
> itli: 2 ispac: 0 maxfr: 4863
> tabn: 1 slot: 95(0x5f) flag: 0x6c lock: 0 ckix: 0
> ncol: 4 nnew: 4 size: 0
> col 0: [ 6] c5 0b 60 0d 5b 45
> col 1: [ 7] 78 68 09 0d 13 20 09
> col 2: [ 1] 80
> col 3: [ 5] c4 19 5c 50 57
>
> *-----------------------------
> * Rec #0xa slt: 0x12 objn: 516(0x00000204) objd: 514 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: 0x00000000
> *-----------------------------
> uba: 0x0080006d.040d.09 ctl max scn: 0x0000.017e284b prv tx scn: 0x0000.017e2c3e
> KDO undo record:
> KTB Redo
> op: 0x04 ver: 0x01
> op: L itl: xid: 0x0006.02c.00000b4b uba: 0x0080005d.04fa.0a
> flg: C--- lkc: 0 scn: 0x0000.017ee403
> KDO Op code: URP row dependencies Disabled
> xtype: XA bdba: 0x00400e8d hdba: 0x00400e89
> itli: 2 ispac: 0 maxfr: 4863
> tabn: 1 slot: 105(0x69) flag: 0x6c lock: 0 ckix: 0
> ncol: 4 nnew: 4 size: 0
> col 0: [ 6] c5 0b 60 0e 16 27
> col 1: [ 7] 78 68 09 0d 14 17 15
> col 2: [ 1] 80
> col 3: [ 5] c4 19 5c 5a 61
>
> *-----------------------------
> * Rec #0xb slt: 0x0d objn: 516(0x00000204) objd: 514 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: 0x00000000
> *-----------------------------
> uba: 0x0080006d.040d.0a ctl max scn: 0x0000.017e2c3e prv tx scn: 0x0000.017e3031
> KDO undo record:
> KTB Redo
> op: 0x04 ver: 0x01
> op: L itl: xid: 0x0006.022.00000b4b uba: 0x0080005d.04fa.0b
> flg: C--- lkc: 0 scn: 0x0000.017ee7f6
> KDO Op code: URP row dependencies Disabled
> xtype: XA bdba: 0x00400e8d hdba: 0x00400e89
> itli: 2 ispac: 0 maxfr: 4863
> tabn: 1 slot: 115(0x73) flag: 0x6c lock: 0 ckix: 0
> ncol: 4 nnew: 4 size: 0
> col 0: [ 6] c5 0b 60 0e 35 0c
> col 1: [ 7] 78 68 09 0d 15 0e 22
> col 2: [ 1] 80
> col 3: [ 5] c4 19 5d 01 08
>
> *-----------------------------
> * Rec #0xc slt: 0x14 objn: 516(0x00000204) objd: 514 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: 0x00000000
> *-----------------------------
> uba: 0x0080006d.040d.0b ctl max scn: 0x0000.017e3031 prv tx scn: 0x0000.017e3424
> KDO undo record:
> KTB Redo
> op: 0x04 ver: 0x01
> op: L itl: xid: 0x0006.02a.00000b4b uba: 0x0080005d.04fa.0c
> flg: C--- lkc: 0 scn: 0x0000.017eebe9
> KDO Op code: URP row dependencies Disabled
> xtype: XA bdba: 0x00400e8d hdba: 0x00400e89
> itli: 2 ispac: 0 maxfr: 4863
> tabn: 1 slot: 125(0x7d) flag: 0x6c lock: 0 ckix: 0
> ncol: 4 nnew: 4 size: 0
> col 0: [ 6] c5 0b 60 0e 53 55
> col 1: [ 7] 78 68 09 0d 16 05 2e
> col 2: [ 1] 80
> col 3: [ 5] c4 19 5d 0b 13
>
> *-----------------------------
> * Rec #0xd slt: 0x17 objn: 516(0x00000204) objd: 514 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: 0x00000000
> *-----------------------------
> uba: 0x0080006d.040d.0c ctl max scn: 0x0000.017e3424 prv tx scn: 0x0000.017e3816
> KDO undo record:
> KTB Redo
> op: 0x04 ver: 0x01
> op: L itl: xid: 0x0006.02e.00000b4b uba: 0x0080005d.04fa.0d
> flg: C--- lkc: 0 scn: 0x0000.017eefdc
> KDO Op code: URP row dependencies Disabled
> xtype: XA bdba: 0x00400e8d hdba: 0x00400e89
> itli: 2 ispac: 0 maxfr: 4863
> tabn: 1 slot: 135(0x87) flag: 0x6c lock: 0 ckix: 0
> ncol: 4 nnew: 4 size: 0
> col 0: [ 6] c5 0b 60 0f 0e 37
> col 1: [ 7] 78 68 09 0d 16 38 3a
> col 2: [ 1] 80
> col 3: [ 5] c4 19 5d 15 1d
>
> *-----------------------------
> * Rec #0xe slt: 0x1a objn: 516(0x00000204) objd: 514 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: 0x00000000
> *-----------------------------
> uba: 0x0080006d.040d.0d ctl max scn: 0x0000.017e3816 prv tx scn: 0x0000.017e3c09
> KDO undo record:
> KTB Redo
> op: 0x04 ver: 0x01
> op: L itl: xid: 0x0006.028.00000b4b uba: 0x0080005d.04fa.0e
> flg: C--- lkc: 0 scn: 0x0000.017ef3ce
> KDO Op code: URP row dependencies Disabled
> xtype: XA bdba: 0x00400e8d hdba: 0x00400e89
> itli: 2 ispac: 0 maxfr: 4863
> tabn: 1 slot: 145(0x91) flag: 0x6c lock: 0 ckix: 0
> ncol: 4 nnew: 4 size: 0
> col 0: [ 6] c5 0b 60 0f 2d 1c
> col 1: [ 7] 78 68 09 0d 17 30 0a
> col 2: [ 1] 80
> col 3: [ 5] c4 19 5d 1f 28
>
> *-----------------------------
> * Rec #0xf slt: 0x19 objn: 516(0x00000204) objd: 514 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: 0x00000000
> *-----------------------------
> uba: 0x0080006d.040d.0e ctl max scn: 0x0000.017e3c09 prv tx scn: 0x0000.017e3ffc
> KDO undo record:
> KTB Redo
> op: 0x04 ver: 0x01
> op: L itl: xid: 0x0006.02f.00000b4b uba: 0x0080005d.04fa.0f
> flg: C--- lkc: 0 scn: 0x0000.017ef7c1
> KDO Op code: URP row dependencies Disabled
> xtype: XA bdba: 0x00400e8d hdba: 0x00400e89
> itli: 2 ispac: 0 maxfr: 4863
> tabn: 1 slot: 155(0x9b) flag: 0x6c lock: 0 ckix: 0
> ncol: 4 nnew: 4 size: -1
> col 0: [ 5] c5 0b 60 0f 4c
> col 1: [ 7] 78 68 09 0d 18 27 16
> col 2: [ 1] 80
> col 3: [ 5] c4 19 5d 29 33
>
> *-----------------------------
> * Rec #0x10 slt: 0x1e objn: 516(0x00000204) objd: 514 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: 0x00000000
> *-----------------------------
> uba: 0x0080006d.040d.0f ctl max scn: 0x0000.017e3ffc prv tx scn: 0x0000.017e43f4
> KDO undo record:
> KTB Redo
> op: 0x04 ver: 0x01
> op: L itl: xid: 0x0006.02b.00000b4b uba: 0x0080005d.04fa.10
> flg: C--- lkc: 0 scn: 0x0000.017efbb4
> KDO Op code: URP row dependencies Disabled
> xtype: XA bdba: 0x00400e8d hdba: 0x00400e89
> itli: 2 ispac: 0 maxfr: 4863
> tabn: 1 slot: 165(0xa5) flag: 0x6c lock: 0 ckix: 0
> ncol: 4 nnew: 4 size: 1
> col 0: [ 6] c5 0b 60 10 06 4a
> col 1: [ 7] 78 68 09 0e 01 1e 23
> col 2: [ 1] 80
> col 3: [ 5] c4 19 5d 33 3e
>
> *-----------------------------
> * Rec #0x11 slt: 0x0e objn: 516(0x00000204) objd: 514 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: 0x00000000
> *-----------------------------
> uba: 0x0080006d.040d.10 ctl max scn: 0x0000.017e43f4 prv tx scn: 0x0000.017e4599
> KDO undo record:
> KTB Redo
> op: 0x04 ver: 0x01
> op: L itl: xid: 0x0006.003.00000b4c uba: 0x0080005d.04fa.11
> flg: C--- lkc: 0 scn: 0x0000.017effa7
> KDO Op code: URP row dependencies Disabled
> xtype: XA bdba: 0x00400e8d hdba: 0x00400e89
> itli: 2 ispac: 0 maxfr: 4863
> tabn: 1 slot: 175(0xaf) flag: 0x6c lock: 0 ckix: 0
> ncol: 4 nnew: 4 size: 0
> col 0: [ 6] c5 0b 60 10 25 2c
> col 1: [ 7] 78 68 09 0e 02 15 2f
> col 2: [ 1] 80
> col 3: [ 5] c4 19 5d 3d 48
>
> *-----------------------------
> * Rec #0x12 slt: 0x1f objn: 516(0x00000204) objd: 514 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: 0x00000000
> *-----------------------------
> uba: 0x0080006d.040d.11 ctl max scn: 0x0000.017e4599 prv tx scn: 0x0000.017e46d6
> KDO undo record:
> KTB Redo
> op: 0x04 ver: 0x01
> op: L itl: xid: 0x0006.021.00000b4b uba: 0x0080005d.04fa.12
> flg: C--- lkc: 0 scn: 0x0000.017f0399
> KDO Op code: URP row dependencies Disabled
> xtype: XA bdba: 0x00400e8d hdba: 0x00400e89
> itli: 2 ispac: 0 maxfr: 4863
> tabn: 1 slot: 185(0xb9) flag: 0x6c lock: 0 ckix: 0
> ncol: 4 nnew: 4 size: 0
> col 0: [ 6] c5 0b 60 10 44 11
> col 1: [ 7] 78 68 09 0e 03 0c 3b
> col 2: [ 1] 80
> col 3: [ 5] c4 19 5d 47 53
>
> *-----------------------------
> * Rec #0x13 slt: 0x18 objn: 516(0x00000204) objd: 514 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: 0x00000000
> *-----------------------------
> uba: 0x0080006d.040d.12 ctl max scn: 0x0000.017e46d6 prv tx scn: 0x0000.017e4ad0
> KDO undo record:
> KTB Redo
> op: 0x04 ver: 0x01
> op: L itl: xid: 0x0006.000.00000b4c uba: 0x0080005d.04fa.13
> flg: C--- lkc: 0 scn: 0x0000.017f078c
> KDO Op code: URP row dependencies Disabled
> xtype: XA bdba: 0x00400e8d hdba: 0x00400e89
> itli: 2 ispac: 0 maxfr: 4863
> tabn: 1 slot: 195(0xc3) flag: 0x6c lock: 0 ckix: 0
> ncol: 4 nnew: 4 size: 0
> col 0: [ 6] c5 0b 60 10 62 5a
> col 1: [ 7] 78 68 09 0e 04 04 0b
> col 2: [ 1] 80
> col 3: [ 5] c4 19 5d 51 5e
>
> *-----------------------------
> * Rec #0x14 slt: 0x1c objn: 516(0x00000204) objd: 514 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: 0x00000000
> *-----------------------------
> uba: 0x0080006d.040d.13 ctl max scn: 0x0000.017e4ad0 prv tx scn: 0x0000.017e4ec3
> KDO undo record:
> KTB Redo
> op: 0x04 ver: 0x01
> op: L itl: xid: 0x0006.026.00000b4b uba: 0x0080005d.04fa.14
> flg: C--- lkc: 0 scn: 0x0000.017f0b7f
> KDO Op code: URP row dependencies Disabled
> xtype: XA bdba: 0x00400e8d hdba: 0x00400e89
> itli: 2 ispac: 0 maxfr: 4863
> tabn: 1 slot: 205(0xcd) flag: 0x6c lock: 0 ckix: 0
> ncol: 4 nnew: 4 size: 0
> col 0: [ 6] c5 0b 60 11 1d 3f
> col 1: [ 7] 78 68 09 0e 04 37 17
> col 2: [ 1] 80
> col 3: [ 5] c4 19 5d 5c 06
>
> *-----------------------------
> * Rec #0x15 slt: 0x20 objn: 516(0x00000204) objd: 514 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: 0x00000000
> *-----------------------------
> uba: 0x0080006d.040d.14 ctl max scn: 0x0000.017e4ec3 prv tx scn: 0x0000.017e52b6
> KDO undo record:
> KTB Redo
> op: 0x04 ver: 0x01
> op: L itl: xid: 0x0006.002.00000b4c uba: 0x0080005d.04fa.15
> flg: C--- lkc: 0 scn: 0x0000.017f0f72
> KDO Op code: URP row dependencies Disabled
> xtype: XA bdba: 0x00400e8d hdba: 0x00400e89
> itli: 2 ispac: 0 maxfr: 4863
> tabn: 1 slot: 215(0xd7) flag: 0x6c lock: 0 ckix: 0
> ncol: 4 nnew: 4 size: 0
> col 0: [ 6] c5 0b 60 11 3c 21
> col 1: [ 7] 78 68 09 0e 05 2e 24
> col 2: [ 1] 80
> col 3: [ 5] c4 19 5e 02 10
>
> *-----------------------------
> * Rec #0x16 slt: 0x1b objn: 516(0x00000204) objd: 514 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: 0x00000000
> *-----------------------------
> uba: 0x0080006d.040d.15 ctl max scn: 0x0000.017e52b6 prv tx scn: 0x0000.017e56a9
> KDO undo record:
> KTB Redo
> op: 0x04 ver: 0x01
> op: L itl: xid: 0x0006.00a.00000b4b uba: 0x0080005d.04fa.16
> flg: C--- lkc: 0 scn: 0x0000.017f1364
> KDO Op code: URP row dependencies Disabled
> xtype: XA bdba: 0x00400e8d hdba: 0x00400e89
> itli: 2 ispac: 0 maxfr: 4863
> tabn: 1 slot: 225(0xe1) flag: 0x6c lock: 0 ckix: 0
> ncol: 4 nnew: 4 size: 0
> col 0: [ 6] c5 0b 60 11 5b 06
> col 1: [ 7] 78 68 09 0e 06 25 30
> col 2: [ 1] 80
> col 3: [ 5] c4 19 5e 0c 1b
>
> *-----------------------------
> * Rec #0x17 slt: 0x21 objn: 516(0x00000204) objd: 514 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: 0x00000000
> *-----------------------------
> uba: 0x0080006d.040d.16 ctl max scn: 0x0000.017e56a9 prv tx scn: 0x0000.017e5a9b
> KDO undo record:
> KTB Redo
> op: 0x04 ver: 0x01
> op: L itl: xid: 0x0006.006.00000b4c uba: 0x0080005d.04fa.17
> flg: C--- lkc: 0 scn: 0x0000.017f1757
> KDO Op code: URP row dependencies Disabled
> xtype: XA bdba: 0x00400e8d hdba: 0x00400e89
> itli: 2 ispac: 0 maxfr: 4863
> tabn: 1 slot: 235(0xeb) flag: 0x6c lock: 0 ckix: 0
> ncol: 4 nnew: 4 size: 0
> col 0: [ 6] c5 0b 60 12 15 4f
> col 1: [ 7] 78 68 09 0e 07 1c 3c
> col 2: [ 1] 80
> col 3: [ 5] c4 19 5e 16 26
>
> *-----------------------------
> * Rec #0x18 slt: 0x22 objn: 516(0x00000204) objd: 514 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: 0x00000000
> *-----------------------------
> uba: 0x0080006d.040d.17 ctl max scn: 0x0000.017e5a9b prv tx scn: 0x0000.017e5e8d
> KDO undo record:
> KTB Redo
> op: 0x04 ver: 0x01
> op: L itl: xid: 0x0006.012.00000b4b uba: 0x0080005d.04fa.18
> flg: C--- lkc: 0 scn: 0x0000.017f1b4a
> KDO Op code: URP row dependencies Disabled
> xtype: XA bdba: 0x00400e8d hdba: 0x00400e89
> itli: 2 ispac: 0 maxfr: 4863
> tabn: 1 slot: 245(0xf5) flag: 0x6c lock: 0 ckix: 0
> ncol: 4 nnew: 4 size: 0
> col 0: [ 6] c5 0b 60 12 34 31
> col 1: [ 7] 78 68 09 0e 08 14 0c
> col 2: [ 1] 80
> col 3: [ 5] c4 19 5e 20 30
>
> *-----------------------------
> * Rec #0x19 slt: 0x07 objn: 516(0x00000204) objd: 514 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: 0x00000000
> *-----------------------------
> uba: 0x0080006d.040d.18 ctl max scn: 0x0000.017e5e8d prv tx scn: 0x0000.017e6281
> KDO undo record:
> KTB Redo
> op: 0x04 ver: 0x01
> op: L itl: xid: 0x0006.005.00000b4c uba: 0x0080005d.04fa.19
> flg: C--- lkc: 0 scn: 0x0000.017f1f3d
> KDO Op code: URP row dependencies Disabled
> xtype: XA bdba: 0x00400e8d hdba: 0x00400e89
> itli: 2 ispac: 0 maxfr: 4863
> tabn: 1 slot: 255(0xff) flag: 0x6c lock: 0 ckix: 0
> ncol: 4 nnew: 4 size: 0
> col 0: [ 6] c5 0b 60 12 53 16
> col 1: [ 7] 78 68 09 0e 09 0b 18
> col 2: [ 1] 80
> col 3: [ 5] c4 19 5e 2a 3b
>
> *-----------------------------
> * Rec #0x1a slt: 0x0f objn: 516(0x00000204) objd: 514 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: 0x00000000
> *-----------------------------
> uba: 0x0080006d.040d.19 ctl max scn: 0x0000.017e6281 prv tx scn: 0x0000.017e6673
> KDO undo record:
> KTB Redo
> op: 0x04 ver: 0x01
> op: L itl: xid: 0x0006.008.00000b4c uba: 0x0080005d.04fa.1a
> flg: C--- lkc: 0 scn: 0x0000.017f232f
> KDO Op code: URP row dependencies Disabled
> xtype: XA bdba: 0x00400e8e hdba: 0x00400e89
> itli: 2 ispac: 0 maxfr: 4863
> tabn: 1 slot: 7(0x7) flag: 0x6c lock: 0 ckix: 0
> ncol: 4 nnew: 4 size: 0
> col 0: [ 6] c5 0b 60 13 0d 5f
> col 1: [ 7] 78 68 09 0e 0a 02 24
> col 2: [ 1] 80
> col 3: [ 5] c4 19 5e 34 46
>
> *-----------------------------
> * Rec #0x1b slt: 0x24 objn: 18(0x00000012) objd: 18 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: 0x00000000
> *-----------------------------
> uba: 0x0080006d.040d.1a ctl max scn: 0x0000.017e6673 prv tx scn: 0x0000.017e6a66
> KDO undo record:
> KTB Redo
> op: 0x04 ver: 0x01
> op: L itl: xid: 0x0007.01e.00000b14 uba: 0x008000dd.03f2.1b
> flg: C--- lkc: 0 scn: 0x0000.017cfed9
> KDO Op code: URP row dependencies Disabled
> xtype: XA bdba: 0x0040007a hdba: 0x00400079
> itli: 1 ispac: 0 maxfr: 4863
> tabn: 0 slot: 33(0x21) flag: 0x2c lock: 0 ckix: 0
> ncol: 17 nnew: 11 size: 0
> col 0: [ 2] c1 02
> col 1: [ 4] c3 02 3e 4e
> col 6: [ 1] 80
> col 7: [ 7] 78 67 07 10 04 29 0e
> col 8: [ 7] 78 68 09 0f 0e 39 1a
> col 9: [ 7] 78 67 07 10 04 29 0e
> col 10: [ 1] 80
> col 13: [ 1] 80
> col 14: NULL
> col 15: [ 1] 80
> col 16: [ 4] c3 07 38 24
>
> *-----------------------------
> * Rec #0x1c slt: 0x23 objn: 16177(0x00003f31) objd: 16177 tblspc: 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.017e6e59
> KDO undo record:
> KTB Redo
> op: 0x03 ver: 0x01
> op: Z
> KDO Op code: URP row dependencies Disabled
> xtype: XA bdba: 0x0040657a hdba: 0x00406579
> itli: 2 ispac: 0 maxfr: 4863
> tabn: 0 slot: 1(0x1) flag: 0x2c lock: 0 ckix: 80
> ncol: 1 nnew: 1 size: 0
> col 0: [ 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 25977
>
>
> SQL> alter system dump datafile 1 block min 25977 block max 25979;
>
> System altered.
>
> 查看trace内容:
>
> Start dump data blocks tsn: 0 file#: 1 minblk 25977 maxblk 25979
> buffer tsn: 0 rdba: 0x00406579 (1/25977)
> scn: 0x0000.017f2520 seq: 0x01 flg: 0x04 tail: 0x25201001
> frmt: 0x02 chkval: 0x1d41 type: 0x10=DATA SEGMENT HEADER - UNLIMITED
> Extent Control Header
> -----------------------------------------------------------------
> Extent Header:: spare1: 0 spare2: 0 #extents: 1 #blocks: 7
> last map 0x00000000 #maps: 0 offset: 4128
> Highwater:: 0x0040657b ext#: 0 blk#: 1 ext size: 7
> #blocks in seg. hdr's freelists: 1
> #blocks below: 1
> mapblk 0x00000000 offset: 0
> Unlocked
> Map Header:: next 0x00000000 #extents: 1 obj#: 16177 flag: 0x40000000
> Extent Map
> -----------------------------------------------------------------
> 0x0040657a length: 7
>
> nfl = 1, nfb = 1 typ = 1 nxf = 0 ccnt = 1
> SEG LST:: flg: USED lhd: 0x0040657a ltl: 0x0040657a
> buffer tsn: 0 rdba: 0x0040657a (1/25978)
> scn: 0x0000.017f73e0 seq: 0x01 flg: 0x04 tail: 0x73e00601
> frmt: 0x02 chkval: 0x6763 type: 0x06=trans data
> Block header dump: 0x0040657a
> Object id on Block? Y
> seg/obj: 0x3f31 csc: 0x00.17f73dc itc: 2 flg: O typ: 1 - DATA
> fsl: 0 fnx: 0x0 ver: 0x01
>
> Itl Xid Uba Flag Lck Scn/Fsc
> 0x01 0x0005.018.00000b53 0x0080004d.04f6.1d C--- 0 scn 0x0000.017f2521
> 0x02 0x0007.023.00000b2d 0x0080006d.040d.1c ---- 1 fsc 0x0000.00000000
>
> ITL事务槽--Interested Transaction List(ITL)
> ITL内容包括:
> xid---Transaction ID
> Uba---Undo Block Address
> Lck---Lock Status
>
> xid=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.Map
> uba=0x0080006d.040d.1c
>
>
> data_block_dump,data header at 0xadb505c
> ===============
> tsiz: 0x1fa0
> hsiz: 0x16
> pbl: 0x0adb505c
> bdba: 0x0040657a
> 76543210
> flag=--------
> ntab=1
> nrow=2
> frre=-1
> fsbo=0x16
> fseo=0x1f94
> avsp=0x1f78
> tosp=0x1f78
> 0xe:pti[0] nrow=2 offs=0
> 0x12:pri[0] offs=0x1f9a
> 0x14:pri[1] offs=0x1f94
> block_row_dump:
> tab 0, row 0, @0x1f9a
> tl: 6 fb: --H-FL-- lb: 0x0 cc: 1
> col 0: [ 2] c1 02
> tab 0, row 1, @0x1f94
> tl: 6 fb: --H-FL-- lb: 0x2 cc: 1
> col 0: [ 2] c2 0b
> end_of_block_dump
> buffer tsn: 0 rdba: 0x0000657b (0/25979)
> scn: 0x0000.00000000 seq: 0x01 flg: 0x05 tail: 0x00000001
> frmt: 0x02 chkval: 0x627b type: 0x00=unknown
> Hex dump of corrupt header 4 = CORRUPT
> Dump of memory from 0x0ADB5000 to 0x0ADB5014
> ADB5000 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找到
相应的回滚段以判断事务状态.