SQL> create table a as select rownum a from t where rownum <
表已創建
SQL> alter table a initrans
表已更改
SQL> update a set a =
已更新
SQL> alter system dump datafile
系統已更改
Start dump data blocks tsn:
buffer tsn:
scn:
frmt:
Block header dump:
Object id on Block? Y
seg/obj:
fsl:
Itl Xid Uba Flag Lck Scn/Fsc
data_block_dump
我們看到該塊上第一個 trans
scn:
下面是數據中的一些內容
block_row_dump:
tab
tl:
col
tab
tl:
col
tab
tl:
col
tab
tl:
col
tab
tl:
col
tab
tl:
col
tab
tl:
col
tab
tl:
col
tab
tl:
col
tab
tl:
然後我們繼續在另外一個sqlplus中進行
SQL> update a set a =
已更新
SQL> alter system dump datafile
系統已更改
SQL>
我們可以看到已經多了一個事務信息
Start dump data blocks tsn:
buffer tsn:
scn:
frmt:
Block header dump:
Object id on Block? Y
seg/obj:
fsl:
Itl Xid Uba Flag Lck Scn/Fsc
data_block_dump
然後數據也發生了變化
block_row_dump:
tab
tl:
col
tab
tl:
col
tab
tl:
col
tab
tl:
col
tab
tl:
col
tab
tl:
col
tab
tl:
col
tab
tl:
col
tab
tl:
col
tab
tl:
col
tab
tl:
數據中的每行中都有標記 事務信息(編號)
這個時候我們查詢x$bh
SQL> select dataobj# from obj$ where name =
DATAOBJ#
SQL> select count(*) from x$bh where obj =
COUNT(*)
我們看到這個時候 data buffer 中有
然後再在新的sqlplus中更新
SQL> update a set a =
已更新
SQL>
這個時候我們發現
SQL> select count(*) from x$bh where obj =
COUNT(*)
SQL>
這說明一個問題
當更新的時候新增加了一個塊
也就是說
From:http://tw.wingwit.com/Article/program/Oracle/201311/18474.html