电脑技术学习

Oracle的回滚段存储内容分析

dn001

selectdbms_rowid.rowid_block_number(rowid),count(*) fromtrollsegment groupbydbms_rowid.rowid_block_number(rowid)selectdbms_rowid.rowid_block_number(rowid),dbms_rowid.rowid_relative_fno(rowid),fid fromtrollsegment wherefid = 10

1 7437 14 10

SQL> alter system dump datafile 14 block 7437;

System altered

*** 2009-02-07 10:28:48.629

Start dump data blocks tsn: 11 file#: 14 minblk 7437 maxblk 7437

buffer tsn: 11 rdba: 0x03801d0d (14/7437)

scn: 0x0001.8569780b seq: 0x01 flg: 0x02 tail: 0x780b0601

frmt: 0x02 chkval: 0x0000 type: 0x06=trans data

Block header dump: 0x03801d0d

Object id on Block? Y

seg/obj: 0x167cc csc: 0x01.856977e6 itc: 2 flg: E typ: 1 - DATA

brn: 0 bdba: 0x3801d09 ver: 0x01

inc: 0 exflg: 0

Itl Xid Uba Flag Lck Scn/Fsc

0x01 0x0012.018.0000034d 0x0e000c3e.0054.48 --U- 3 fsc 0x0000.8569780b

0x02 0x0000.000.00000000 0x00000000.0000.00 ---- 0 fsc 0x0000.00000000

data_block_dump,data header at 0x80000001001a3864

===============

tsiz: 0x1f98

hsiz: 0x18

pbl: 0x80000001001a3864

bdba: 0x03801d0d

76543210

flag=--------

ntab=1

nrow=3

frre=-1

fsbo=0x18

fseo=0x1f08

avsp=0x1ef0

tosp=0x1ef0

0xe:pti[0] nrow=3 offs=0

0x12:pri[0] offs=0x1f08

0x14:pri[1] offs=0x1f38

0x16:pri[2] offs=0x1f68

block_row_dump:

tab 0, row 0, @0x1f08

tl: 48 fb: --H-FL-- lb: 0x1 cc: 3

col 0: [ 2] c1 0b

col 1: [20] 6e 61 6d 65 31 30 31 30 31 30 31 30 31 30 31 30 31 30 31 30

col 2: [20] 6f 74 68 65 72 31 30 31 30 31 30 31 30 31 30 31 30 31 30 31

tab 0, row 1, @0x1f38

tl: 48 fb: --H-FL-- lb: 0x1 cc: 3

col 0: [ 2] c1 0c

col 1: [20] 6e 61 6d 65 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31

col 2: [20] 6f 74 68 65 72 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31

tab 0, row 2, @0x1f68

3, 对FID=10的记录做更新,但不提交

updatetrollsegment setfname = replace(fname,'name','eman')wherefid = 10orfid = 20

4, 查看当前事务所占回滚段和起始回滚块,并导出当前回滚块的内容与转储出去的表内容进行比较。

查看当前活动事务占用的回滚段信息