19_深入解析Oracle undo原理(3)_ktuxe詳解
1 問題描述
Oracle 資料庫活動事務異常中斷後,資料庫會進入事務恢復狀態,通過查詢x$ktuxe表可以檢查事務恢復資訊和事務恢復進度。
2 解釋x$ktuxe 表
ktuxe(Kernel Transaction Undo tranXaction Entry) 表示資料庫中的事務表,是undo 段頭塊中的一部分,由儲存事務資訊的一組事務槽組成。
3 詳解x$ktuxe 欄位含義
x$ktuxe 包含以下欄位,
SYS@source>desc x$ktuxe; Name Null? Type ----------------------------------------- -------- ---------------------------- ADDR RAW(8) INDX NUMBER INST_ID NUMBER KTUXEUSN NUMBER KTUXESLT NUMBER KTUXESQN NUMBER KTUXERDBF NUMBER KTUXERDBB NUMBER KTUXESCNB NUMBER KTUXESCNW NUMBER KTUXESTA VARCHAR2(16) KTUXECFL VARCHAR2(24) KTUXEUEL NUMBER KTUXEDDBF NUMBER KTUXEDDBB NUMBER KTUXEPUSN NUMBER KTUXEPSLT NUMBER KTUXEPSQN NUMBER KTUXESIZ NUMBER 接下來我們通過實驗的方式觀察以上表核心欄位的含義: 【測試指令碼】 create table system.test_undo27 as select * from dba_objects; begin for i in 1..50 loop insert into system.test_undo27 select * from dba_objects; commit; end loop; end; / delete from system.test_undo27; 【v$transaction】 select addr,xidusn, xidslot, xidsqn, ubafil, ubablk, ubasqn, ubarec, used_ublk, used_urec from v$transaction;
【x$ktuxe 資訊】
select * from x$ktuxe where ktuxesta='ACTIVE';
【KTUXEUEL 欄位驗證】
4 dump undo header
oradebug setmypid
alter system dump undo header '_SYSSMU2$';
oradebug close_trace
oradebug tracefile_name
index: Slot number
STA (State)
0 Idle
1 Collecting
2 Prepared
3 Committed
4 Heuristic Abort (forced rollback)
5 Heuristic Commit (forced commit)
6 Heuristic Damage (forced mixed)
7 Try again later
9 Inactive, no local Tx
10 Active, begin local Tx
11 Pdml Prepared
12 Pdml Committed
13 For in-doubt use onl
DBA : Rollback DBA, undo bk to start the rollback
5 事務恢復
SYS@source>select spid from v$process where addr=(select paddr from v$session where sid=(select sid from v$mystat where rownum < 2)); SPID ------------------------------------ 48510 kill -9 48510 ----查詢DEAD狀態事務 select ADDR,KTUXEUSN,KTUXESLT,KTUXESQN,KTUXESIZ from x$ktuxe where KTUXECFL ='DEAD'; ADDR KTUXEUSN KTUXESLT KTUXESQN KTUXESIZ ---------------- ---------- ---------- ---------- ---------- 00007F74EC119E30 2 4 315 59699 ---計算DEAD事務恢復完成需要時間(秒) declare t_start number; t_end number; begin select ktuxesiz into t_start from x$ktuxe where KTUXEUSN = 2 and KTUXESLT = 4; dbms_lock.sleep(60); select ktuxesiz into t_end from x$ktuxe where KTUXEUSN = 2 and KTUXESLT = 4; dbms_output.put_line('Time Need Sec:' || round(t_end / (t_start - t_end), 2)); end; /
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31442014/viewspace-2680394/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 20_深入解析Oracle undo原理(4)_ktuxc詳解OracleUX
- 17_深入解析Oracle undo原理(1)_transactionOracle
- Oracle undo管理詳解Oracle
- 18_深入解析Oracle undo原理(2)_undo表空間使用率100%問題處理Oracle
- Oracle UNDO引數詳解Oracle
- Oracle深入Undo探究Oracle
- 深入解析 oracle drop table內部原理Oracle
- MJExtension原理深入解析
- ThreadLocal原理深入解析thread
- 深入詳細瞭解synchronized底層原理synchronized
- 【筆記】oracle 並行原理深入解析及案例精粹筆記Oracle並行
- 深入詳解Redis 主從複製的原理!Redis
- 深入 Redis 主從複製的原理詳解Redis
- Java集合詳解(二):ArrayList原理解析Java
- Java集合詳解(五):Hashtable原理解析Java
- Java集合詳解(三):HashMap原理解析JavaHashMap
- 深入瞭解View實現原理以及自定義View詳解View
- 從ReentrantLock詳解AQS原理原始碼解析ReentrantLockAQS原始碼
- Java集合詳解(三):LinkedList原理解析Java
- 深入解析vue響應式原理Vue
- XtraBackup工具詳解 Part 3 XtraBackup工作原理
- 深入原始碼解析 tapable 實現原理原始碼
- InnoDB undo log原理
- undo的工作原理
- 深入瞭解Synchronized原理synchronized
- oracle實驗記錄 (dump undo3)Oracle
- Flutter完整開發實戰詳解(九、 深入繪製原理)Flutter
- Flutter完整開發實戰詳解(七、 深入佈局原理)Flutter
- Flutter完整開發實戰詳解(六、 深入Widget原理)Flutter
- 深入詳解Mybatis的架構原理與6大核心流程MyBatis架構
- 深入詳解Java反射機制與底層實現原理?Java反射
- 《Oracle Golden Gate 概念和原理》-新手入門->深入解析-圖文-可下載OracleGo
- 《深入解析Oracle》第六章,Buffer Cache與Shared Pool原理Oracle
- oracle體系結構梳理---redo和undo解析1Oracle
- Oracle AWR與ASH效能報告深入解析-核心引數詳解-手操-圖文-可下載Oracle
- 深入解析Vue中的computed工作原理Vue
- Vue 原始碼解析:深入響應式原理Vue原始碼
- 深入解析 Android 中 View 的工作原理AndroidView