compat bit: 4 (post-11) padding: 1
op: Z
KDO Op code: URP row dependencies Disabled
xtype: XA flags: 0x00000000 bdba: 0x010000c3 hdba: 0x010000aa
itli: 2 ispac: 0 maxfr: 4858
tabn: 0 slot: 70(0x46) flag: 0x2c lock: 0 ckix: 80
ncol: 4 nnew: 1 size: 5
col 3: [ 9] 50 52 4f 43 45 44 55 52 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: 0x01400102.0001.01
KDO Op code: URP row dependencies Disabled
xtype: XA flags: 0x00000000 bdba: 0x010000c3 hdba: 0x010000aa
itli: 2 ispac: 0 maxfr: 4858
tabn: 0 slot: 71(0x47) flag: 0x2c lock: 0 ckix: 80
ncol: 4 nnew: 1 size: 5
col 3: [ 9] 50 52 4f 43 45 44 55 52 45
*-----------------------------
* Rec #0x3 slt: 0x00 objn: 73424(0x00011ed0) objd: 73424 tblspc: 4(0x00000004)
* Layer: 11 (Row) opc: 1 rci 0x02
Undo type: Regular undo Last buffer split: No
Temp Object: No
Tablespace Undo: No
rdba: 0x00000000
*-----------------------------
KDO undo record:
KTB Redo
op: 0x03 ver: 0x01
op: Z
KDO Op code: URP row dependencies Disabled
xtype: XA flags: 0x00000000 bdba: 0x010000ec hdba: 0x010000aa --bdba:4,236;即我们update语句修改的数据块,与查询出来的信息一致
itli: 2 ispac: 0 maxfr: 4858
tabn: 0 slot: 41(0x29) flag: 0x2c lock: 0 ckix: 0
ncol: 4 nnew: 1 size: 5
col 3: [ 9] 50 52 4f 43 45 44 55 52 45 ---转换为字符为‘PROCEDURE’,与我们更新前数据一致
*-----------------------------
* 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 --新发起的update语句,uba参数值与第一条不同(Rec #0x2 undo record记录),事务中的每个DML语句保存自己的uba,用于语句回滚
KDO Op code: URP row dependencies Disabled
xtype: XA flags: 0x00000000 bdba: 0x010000ec hdba: 0x010000aa --bdba:4,236;即我们update语句修改的数据块,与查询出来的信息一致
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 ---转换为字符为‘PROCEDURE’,与我们更新前数据一致
End dump data blocks tsn: 6 file#: 5 minblk 258 maxblk 258
六、再次在SESSION A中进行更新,当事务使用的undo block超过一个1个时,分析整个事务的undo record是怎么串联起来。
(1)在session A 中继续更新undotest,并查看事务信息
SQL> update undotest set object_type='VIEW' where object_type='TABLE' and rownum<99;
98 rows updated.
SQL> select xidusn,xidslot,xidsqn,ubablk,ubafil,ubarec,to_char(start_scnw,'xxxxxxxx') start_scnw,
2 to_char(start_scnb,'xxxxxxxx') start_scnb, start_scnb+start_scnw*power(2,32) start_scn
3 from v$transaction;
XIDUSN XIDSLOT XIDSQN UBABLK UBAFIL UBAREC START_SCNW START_SCNB START_SCN
---------- ---------- ---------- ---------- ---------- ---------- -------------------- -------------------- ----------
19 0 4 259 5 20 0 0 0
UBABLK之前为258,现在查询出来为259,因此可以肯定目前事务使用已经超过一个UNDO block。
(2)DUMP 段头,undo 块,data block,这里就不再列举出来
SQL> alte