【徵文】全面學習oracle flashback特性(1.4)--閃回查詢之Transaction query
4、Transaction query事務查詢
Flashback的事務查詢是通過查詢flashback_transaction_query檢視來實現的。通過查詢該檢視能夠獲得一些事務執行時的資訊,甚至包括UNDO語句。
下面做個演示,首先刪除一條資料:
JSSWEB> select *from jss_tb1;
ID VL
---------- --------------------
5 E
6 F
7 G
8 H
9 I
11 K
12 L
13 M
14 N
15 O
116 P
117 Q
118 R
119 S
120 T
10 J
已選擇16行。
JSSWEB> select dbms_flashback.get_system_change_number from dual;
GET_SYSTEM_CHANGE_NUMBER
------------------------
413946
JSSWEB> delete jss_tb1 where id<3;
已刪除0行。
JSSWEB> rollback;
回退已完成。
JSSWEB> delete jss_tb1 where id=5;
已刪除 1 行。
JSSWEB> commit;
提交完成。
JSSWEB> select dbms_flashback.get_system_change_number from dual;
GET_SYSTEM_CHANGE_NUMBER
------------------------
413959
Flashback_transaction_query馬上閃亮登場,大家鼓掌:
JSSWEB> select xid,commit_scn,commit_timestamp,operation,undo_sql
2 from flashback_transaction_query q where q.xid in(
3 select versions_xid from jss_tb1 versions between scn 413946 and 413959);
XID COMMIT_SCN COMMIT_TIMESTAMP OPERATION UNDO_SQL
---------------- ---------- ------------------- ------------ ------------------------------------------------------------
05002F0082000000 413958 2008-06-04 21:32:02 DELETE insert into "JSS"."JSS_TB1"("ID","VL") values ('5','E');
05002F0082000000 413958 2008-06-04 21:32:02 BEGIN
注:由於事務ID是儲存在版本查詢中,因此我們需要通過版本查詢來關聯出flashback的事務資訊,這也是前面操作前要通過dbms_flashback包取scn的原因。
上述的查詢結果已經清晰的向我們展示了我們所做的操作以及操作的時間等(實際執行的語句該檢視並沒有記錄,只能通過undo_sql和operation推測),隨著我們將事務範圍的不斷擴大,我們可以持續向前翻閱曾經做過的操作。當然,實際使用的時候需要注意,由於該檢視儲存記錄量較大(究竟有多大呢,目前尚未找到相關文件有明確說明,初步預計,應該與smon_scn_time的儲存規則有關係),查詢的時候建議通過關鍵列過濾,比如logon_user啦,table_name或table_owner之類的,這麼比起來這項操作倒確實與logminer非常想像,這簡直就是個活的logminer啊,雖然只是一段時間內的。
===================================
檢視前面的連載:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/7607759/viewspace-368888/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle閃回技術--Flashback Version QueryOracle
- flashback query閃回資料
- Oracle 12.2新特性: PDB級閃回資料庫(Flashback PDB)Oracle資料庫
- Oracle 11G 閃回技術 閃回版本查詢和閃回事務查詢Oracle
- ORACLE Flashback Query偽列Oracle
- Oracle 11G 閃回技術 使用Oracle閃回事務查詢Oracle
- ORACLE 閃回檢視v$flashback_database_log/statOracleDatabase
- DM7閃回與閃回查詢
- 【Flashback】Flashback Drop閃回刪除功能實驗
- 【Flashback】Flashback Database閃回資料庫功能實驗Database資料庫
- 【FLASHBACK】Oracle閃回及回收站相關語句參考Oracle
- DM8 閃回查詢
- Flashback Query(轉)
- GeminiDB Cassandra介面新特性FLASHBACK釋出:任意時間點秒級閃回
- Flashback Drop閃回刪除功能實踐
- LightDB 22.4 新特性之相容Oracle樹形查詢Oracle
- Oracle閃回技術 為Oracle閃回配置資料庫Oracle資料庫
- 學習筆記~1.4 HTML5新特性筆記HTML
- oracle學習筆記(十一) 高階查詢Oracle筆記
- Oracle 備份恢復之 FlashbackOracle
- Laravel query when 的查詢Laravel
- Oracle資料庫閃回Oracle資料庫
- Oracle查詢回滾大事務所需時間Oracle
- 【FLASHBACK】Oracle flashback data archive 介紹OracleHive
- MySQL 學習之索引篇和查詢MySql索引
- (十二)資料庫查詢處理之Query Execution(1)資料庫
- 【RECO_ORACLE】Oracle閃回PDB的方法Oracle
- Elasticsearch Query DSL查詢入門Elasticsearch
- 【SQL】Oracle查詢轉換之 OR用法SQLOracle
- [20180724]Flashback query和子游標共享.txt
- 【SQL】Oracle查詢轉換之物化檢視查詢重寫SQLOracle
- Elasticsearch複合查詢—constant score queryElasticsearch
- Oracle 查詢Oracle
- 2019 年的 JavaScript 新特性學習指南 | 掘金年度徵文JavaScript
- Laravel Query Builder 複雜查詢案例:子查詢實現分割槽查詢 partition byLaravelUI
- Oracle 閃回資料庫測試Oracle資料庫
- 【PDB】pdb閃回,Oracle還原點Oracle
- 詳解oracle資料庫閃回Oracle資料庫
- 資料庫學習筆記之查詢表資料庫筆記