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

2014-11-24 16:16:00 · 作者: · 浏览: 9
r system flush buffer_cache;
System altered.
SQL> alter system dump datafile 5 block 259;
System altered.
SQL> alter system dump undo header '_SYSSMU19$';
System altered.

(3)分析dump 出来的trace 文件
********************************************************************************
Undo Segment: _SYSSMU19$ (19)
********************************************************************************
Extent Control Header
-----------------------------------------------------------------
Extent Header:: spare1: 0 spare2: 0 #extents: 2 #blocks: 15
last map 0x00000000 #maps: 0 offset: 4080
Highwater:: 0x01400103 ext#: 0 blk#: 2 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
-----------------------------------------------------------------
0x01400101 length: 7
0x01400108 length: 8

Retention Table
-----------------------------------------------------------
Extent Number:0 Commit Time: 0
Extent Number:1 Commit Time: 0

TRN CTL:: seq: 0x0001 chd: 0x0001 ctl: 0x0021 inc: 0x00000000 nfb: 0x0000
mgc: 0xb000 xts: 0x0068 flg: 0x0001 opt: 2147483646 (0x7ffffffe)
uba: 0x01400102.0001.01 scn: 0x0000.000e61e6
Version: 0x01

FREE BLOCK POOL::
uba: 0x00000000.0000.00 ext: 0x0 spc: 0x0
uba: 0x00000000.0000.00 ext: 0x0 spc: 0x0
uba: 0x00000000.0000.00 ext: 0x0 spc: 0x0
uba: 0x00000000.0000.00 ext: 0x0 spc: 0x0
uba: 0x00000000.0000.00 ext: 0x0 spc: 0x0
TRN TBL::

index state cflags wrap# uel scn dba parent-xid nub stmt_num cmt
------------------------------------------------------------------------------------------------
0x00 10 0x80 0x0004 0x0000 0x0000.00000000 0x01400103 0x0000.000.00000000 0x00000002 0x00000000 0
0x01 9 0x00 0x0003 0x0002 0x0000.000e61e6 0x00000000 0x0000.000.00000000 0x00000000 0x00000000 0
0x02 9 0x00 0x0003 0x0003 0x0000.000e61e6 0x00000000 0x0000.000.00000000 0x00000000 0x00000000 0
0x03 9 0x00 0x0003 0x0004 0x0000.000e61e6 0x00000000 0x0000.000.00000000 0x00000000 0x00000000 0
.........省略trace 文件中后面的输出.............
可以看到dba的地址已经发生改变,指向最新使用的undo block地址,即datafile 5,block 259

(4)分析undo block trace
1.下面是undo block datafile 5 block 259的dump trace文件
UNDO BLK:
xid: 0x0013.000.00000004 seq: 0x1 cnt: 0x14 irb: 0x14 icl: 0x0 flg: 0x0000

Rec Offset Rec Offset Rec Offset Rec Offset Rec Offset
---------------------------------------------------------------------------
0x01 0x1f88 0x02 0x1f28 0x03 0x1ec8 0x04 0x1e68 0x05 0x1e08
0x06 0x1da8 0x07 0x1d48 0x08 0x1ce8 0x09 0x1c88 0x0a 0x1c28
0x0b 0x1bc8 0x0c 0x1b68 0x0d 0x1b08 0x0e 0x1aa8 0x0f 0x1a48
0x10 0x19e8 0x11 0x1988 0x12 0x1928 0x13 0x18c8 0x14 0x1868

*-----------------------------
* Rec #0x1 slt: 0x00 objn: 73424(0x00011ed0) objd: 73424 tblspc: 4(0x00000004)
* Layer: 11 (Row) opc: 1 rci 0x00
Undo type: Regular undo Last buffer split: No
Temp Object: No
Tablespace Undo: N