20_深入解析Oracle undo原理(4)_ktuxc詳解
1 問題描述
KTUXC(UNDO TRANSACTION CONTROL) 表示回滾段事務控制,是undo 段頭塊中的一部分,使用CHD (Commit Head)和CTL (Commit Tail)快速定位該回滾段中可用的slot number。結構如下圖所示,
2 KTUXC 結構解析
SYS@source>select * from orastar.undo_test;
C1 C2
------------------------------ ------------------------------
4 222
2 12
3 123
SYS@source>update orastar.undo_test set c2='666' where c1=4;
1 row updated.
select xidusn,
xidslot,
xidsqn,
ubafil,
ubablk,
ubasqn,
ubarec,
used_ublk,
used_urec
from v$transaction;
oradebug setmypid
alter system dump undo header '_SYSSMU14$';
oradebug close_trace
oradebug tracefile_name
【欄位解釋】
SEQ: Sequence number of the last block of the undo segment.
CHD (Commit Head): Head of the chain of the list of committed transactions sorted by increasing SCN (this points to an entry in the transaction table)
CTL (Commit Tail): Tail of the chain of the list of committed transactions, sorted by SCN (this points to an
entry in the transaction table).
INC: High water mark for incarnation number (increases by steps of 1024).
NFB: Number of nonempty slots in the free block pool.
MGC: Magic number for test of coherence (for AUM segments this value is 0x8201).
XTS: Tx table entry location from bottom of KCBH.
FLG: Value 1. Tx table has been converted from an earlier version.
OPT: Value for the OPTIMAL parameter.
UBA (Control UBA): The UBA of the undo record allowing rollback of the Tx table.
SCN (Control SCN): The committed SCN of the transaction that “rolled out” of the Tx table
3 驗證chd 欄位
驗證chd 欄位是否為下一個待使用的usn slot,
create undo tablespace undo6 datafile '/oradata/htdb/undo6.dbf' size 256K autoextend off;
alter system set undo_tablespace=undo6;
update orastar.undo_test set c2='666' where c1=4;
oradebug setmypid
alter system dump undo header '_SYSSMU101$';
oradebug close_trace
oradebug tracefile_name
4 Tx table 的排序
Tx table 中slot 的排序,從 CHD (Commit Head) 開始,通過KTUXEUEL指向下一個slot,直到ktuxeslt等於CTL (Commit Tail)時KTUXEUEL為-1。所有usn中INACTIVE slot以KTUXESCNB和KTUXESLT升序排列。
5 總結
ktuxc 使用單向連結串列結構控制ktuxe 中待使用的 INACTIVE slot ,從CHD (Commit Head)開始CTL (Commit Tail)結束,以KTUXESCNB和KTUXESLT升序排列。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31442014/viewspace-2680395/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 19_深入解析Oracle undo原理(3)_ktuxe詳解OracleUX
- 17_深入解析Oracle undo原理(1)_transactionOracle
- 18_深入解析Oracle undo原理(2)_undo表空間使用率100%問題處理Oracle
- 深入解析 oracle drop table內部原理Oracle
- ThreadLocal原理深入解析thread
- Oracle Redo and UndoOracle Redo
- 深入詳細瞭解synchronized底層原理synchronized
- 深入 Redis 主從複製的原理詳解Redis
- 深入詳解Redis 主從複製的原理!Redis
- 從ReentrantLock詳解AQS原理原始碼解析ReentrantLockAQS原始碼
- Java集合詳解(三):LinkedList原理解析Java
- Java集合詳解(五):Hashtable原理解析Java
- Java集合詳解(二):ArrayList原理解析Java
- Java集合詳解(三):HashMap原理解析JavaHashMap
- InnoDB undo log原理
- ORACLE 資料塊格式深入解析Oracle
- Hyperledger Fabric原理詳解與實戰4
- oracle undo分配規則Oracle
- Oracle OCP(48):UNDO TABLESPACEOracle
- oracle的redo和undoOracle
- 深入解析 ResNet:實現與原理
- 深入解析vue響應式原理Vue
- 深入理解MYSQL undo redoMySql
- Flutter完整開發實戰詳解(六、 深入Widget原理)Flutter
- 深入解析Vue中的computed工作原理Vue
- 深入原始碼解析 tapable 實現原理原始碼
- Oracle常見UNDO等待事件Oracle事件
- 關於oracle中的undoOracle
- 【REDO】Oracle redo undo 學習Oracle Redo
- 深入瞭解Synchronized原理synchronized
- Flutter完整開發實戰詳解(九、 深入繪製原理)Flutter
- Flutter完整開發實戰詳解(七、 深入佈局原理)Flutter
- 深入詳解Java反射機制與底層實現原理?Java反射
- 深入詳解Mybatis的架構原理與6大核心流程MyBatis架構
- 《Exploring in UE4》移動元件詳解[原理分析]元件
- 13_深入解析Oracle資料庫bootstrapOracle資料庫boot
- 14_深入解析Oracle table cluster結構Oracle
- 深入解析和定製Oracle優化工具Oracle優化