undo segment header中記錄的dba是該事務使用的單向連結串列中的頭(end block)!
連結串列,那麼undo header上記錄的dba到底是這條單向連結串列的
頭還是尾,經驗證是頭,我猜測也應該是頭,因為當rollback
事務時才能以最快的速度找到rollback的起點,當然這樣做的
目的可能不僅僅是為了rollback操作。[@more@]
SQL> create table tt1 tablespace users as select *from dba_objects;
表已建立。
SQL> insert into tt1 select * from tt1;
已建立11280行。
SQL> select xidusn,ubafil,ubablk,start_ubafil,start_ubablk from v$transaction;
XIDUSN UBAFIL UBABLK START_UBAFIL START_UBABLK
---------- ---------- ---------- ------------ ------------
14 7 61 7 180
SQL> alter system dump undo header "_SYSSMU14$";
系統已更改。
--dump資訊如下:
--======================
index state cflags wrap# uel scn dba parent-xid nub stmt_num cmt
------------------------------------------------------------------------------------------------
.............
0x12 10 0x80 0x0992 0x0001 0x0000.018e34c1 0x01c0003d 0x0000.000.00000000 0x00000006 0x00000000 0
..............
--=======================
SQL> select dbms_utility.data_block_address_file(to_number('01c0003d','xxxxxxxx'
)) from dual;
DBMS_UTILITY.DATA_BLOCK_ADDRESS_FILE(TO_NUMBER('01C0003D','XXXXXXXX'))
----------------------------------------------------------------------
7
SQL> select dbms_utility.data_block_address_block(to_number('01c0003d','xxxxxxxx
')) from dual;
DBMS_UTILITY.DATA_BLOCK_ADDRESS_BLOCK(TO_NUMBER('01C0003D','XXXXXXXX'))
-----------------------------------------------------------------------
61
--很顯然,undo segment header中記錄的dba是該
事務使用的undo chain中的end block:61,start block是:180,而end block這是這條chain的頭。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/19602/viewspace-1019053/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- dump轉儲undo segment header block回滾段頭塊小方法HeaderBloC
- javascript中的連結串列結構—雙向連結串列JavaScript
- 線性表中的單向連結串列的簡單操作
- oracle undo segment header 事務表transaction table系列一OracleHeader
- ORA-600 [4000] trying to get dba of undo segment header block from usn-47456.1HeaderBloC
- 簡單介紹python中的單向連結串列實現Python
- MYSQL INNODB 中通用雙向連結串列的實現MySql
- Java解釋單連結串列中的頭插法以及尾插法Java
- 單向迴圈連結串列的介面程式
- 單向迴圈連結串列的實現
- 棧_單向連結串列
- [演算法]向有序的環形單連結串列中插入新節點演算法
- 資料結構--陣列、單向連結串列、雙向連結串列資料結構陣列
- 淺析MySQL事務中的redo與undoMySql
- 設計單向迴圈連結串列的介面
- 單向加頭連結串列的[構建、插入、刪除、查詢、輸出]
- 單向迴圈連結串列
- 佇列_單向連結串列佇列
- oracle 11g不同會話產生的事務會使用相同的undo segment嗎--undo系列之一Oracle會話
- 結點插入到單連結串列中
- 資料結構之連結串列與陣列(3):單向連結串列上的簡單操作資料結構陣列
- 帶頭結點的單連結串列實現(C++)C++
- 結構與演算法(03):單向連結串列和雙向連結串列演算法
- 連結串列-雙向連結串列
- 資料結構與演算法——連結串列 Linked List(單連結串列、雙向連結串列、單向環形連結串列-Josephu 問題)資料結構演算法
- 《Undo, Redo, DataFile看Oracle中的事務過程》學習筆記Oracle筆記
- C語言單向連結串列的增刪操作C語言
- 定義一個函式,輸入一個連結串列的頭節點,反轉該連結串列並輸出反轉後連結串列的頭節點函式
- 連結串列面試題(一)---刪除一個無頭單連結串列的非尾結點面試題
- 876. 連結串列的中間結點
- 資料結構實驗之連結串列七:單連結串列中重複元素的刪除資料結構
- go 實現單向連結串列Go
- C語言之單向連結串列C語言
- 單向連結串列介面設計
- 資料結構-2.單向連結串列的實現資料結構
- 資料結構之連結串列與陣列(2):單向連結串列上的簡單操作問題資料結構陣列
- 用一個儘可能高效的演算法,查詢單向連結串列(有頭結點)中倒數第k個位置上的結點演算法
- 演算法題中的連結串列演算法