关于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$';

以下开始测试:

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找到
相应的回滚段以判断事务状态.

你可能感兴趣的:(sql,C++,c,ext,C#)