oracle回滚机制深入研究(十)

2014-11-24 16:16:00 · 作者: · 浏览: 2
o
rdba: 0x01400102
*-----------------------------
KDO undo record:
KTB Redo
op: 0x02 ver: 0x01
compat bit: 4 (post-11) padding: 1
op: C uba: 0x01400102.0001.52 --当一个事务使用多个undo block时,事务使用的undo块顺序,是根据这个参数串联起来,即undo chain
KDO Op code: URP row dependencies Disabled
xtype: XA flags: 0x00000000 bdba: 0x010000ab hdba: 0x010000aa
itli: 2 ispac: 0 maxfr: 4858
tabn: 0 slot: 201(0xc9) flag: 0x2c lock: 0 ckix: 80
ncol: 4 nnew: 1 size: 1
col 3: [ 5] 54 41 42 4c 45
*-----------------------------
* Rec #0x2 slt: 0x00 objn: 73424(0x00011ed0) objd: 73424 tblspc: 4(0x00000004)
* Layer: 11 (Row) opc: 1 rci 0x01
Undo type: Regular undo Last buffer split: No
Temp Object: No
Tablespace Undo: No
rdba: 0x00000000
*-----------------------------
KDO undo record:
KTB Redo
op: 0x02 ver: 0x01
compat bit: 4 (post-11) padding: 1
op: C uba: 0x01400103.0001.01
KDO Op code: URP row dependencies Disabled
xtype: XA flags: 0x00000000 bdba: 0x010000ab hdba: 0x010000aa
itli: 2 ispac: 0 maxfr: 4858
tabn: 0 slot: 205(0xcd) flag: 0x2c lock: 0 ckix: 80
ncol: 4 nnew: 1 size: 1
col 3: [ 5] 54 41 42 4c 45
*-----------------------------
.................省略一部分................
*-----------------------------
* Rec #0x13 slt: 0x00 objn: 73424(0x00011ed0) objd: 73424 tblspc: 4(0x00000004)
* Layer: 11 (Row) opc: 1 rci 0x12
Undo type: Regular undo Last buffer split: No
Temp Object: No
Tablespace Undo: No
rdba: 0x00000000
*-----------------------------
KDO undo record:
KTB Redo
op: 0x02 ver: 0x01
compat bit: 4 (post-11) padding: 1
op: C uba: 0x01400103.0001.12
KDO Op code: URP row dependencies Disabled
xtype: XA flags: 0x00000000 bdba: 0x010000ab hdba: 0x010000aa
itli: 2 ispac: 0 maxfr: 4858
tabn: 0 slot: 239(0xef) flag: 0x2c lock: 0 ckix: 80
ncol: 4 nnew: 1 size: 1
col 3: [ 5] 54 41 42 4c 45

*-----------------------------
* Rec #0x14 slt: 0x00 objn: 73424(0x00011ed0) objd: 73424 tblspc: 4(0x00000004) --这个对应irb参数:0x14,也对应ITL中的UBA第三个参数:undo record的开始地址。
* Layer: 11 (Row) opc: 1 rci 0x13
Undo type: Regular undo Last buffer split: No
Temp Object: No
Tablespace Undo: No
rdba: 0x00000000
*-----------------------------
KDO undo record:
KTB Redo
op: 0x02 ver: 0x01
compat bit: 4 (post-11) padding: 1
op: C uba: 0x01400103.0001.13
KDO Op code: URP row dependencies Disabled
xtype: XA flags: 0x00000000 bdba: 0x010000ab hdba: 0x010000aa
itli: 2 ispac: 0 maxfr: 4858
tabn: 0 slot: 241(0xf1) flag: 0x2c lock: 0 ckix: 80
ncol: 4 nnew: 1 size: 1
col 3: [ 5] 54 41 42 4c 45 ---转化为字符,可以发现与我们更新的旧值相同。符合我们的语气
End dump data blocks tsn: 6 file#: 5 minblk 259 maxblk 259

2.下面是undo block datafile 5 block 258(事务使用的第一个undo block)的dump trace文件
我们可以看到如下内容(省略无用信息),注意undo record中的uba参数
*-----------------------------
* Rec #0x4 slt: 0x00 objn: 73424(0x00011ed0) objd: 73424 tblspc: 4(0x00000004)
* Layer: 11 (Row) opc: 1 rci 0x03
Undo type: Regular undo Last buffer split: No
Temp Object: No
Tablespace Undo: No
rdba: 0x00000000
*-----------------------------
KDO undo record:
KTB Redo
op: 0x02 ver: 0x01
compat bit: 4 (post-11) padding: 1
op: C uba: 0x01400102.0001.03
KDO Op code: URP row dependencies Disabled
xtype: XA flags: 0x00000000 bdba: 0x010000ec hdba: 0x010000aa
itli: 2 ispac: 0 maxfr: 4858
tabn: 0 slot: 42(0x2a) flag: 0x2c lock: 0 ckix: 0
ncol: 4 nnew: 1 size: 5
col 3: [ 9] 50 52 4f 43 45 44 55 52 45

*-----------------------------
* Rec #0x5 slt: 0x00 objn: 73424(0x00011ed0) objd: 73424 tbls