Oracle技術嘉年華的一個案例,redo的那些事,連載一
電梯
Oracle技術嘉年華的一個案例,redo的那些事,連載三
在剛剛結束的Oracle技術嘉年華大會上,eygle大師的演講中提到了有關於資料安全的一個案例,大致的意思是資料庫管理員修改了自己賬戶的金額。但是,奇怪的是,透過logminer挖掘日誌時,居然挖掘不到修改記錄,顯示如下狀況:
SQL_REDO的內容是Unsupported,但是,透過logfile dump,可以看到此次修改,如下圖:
將金額從0修改為40000。
在大會上,主要討論的是資料安全方面的議題,但是,我確感到很奇怪,為什麼此處的redo記錄Oracle的logminer居然無法解析呢?
於是,管eygle大師要來了這部分的歸檔日誌,決定一探究竟。
拿到日誌以後,首先看了一下日誌頭資訊,在第二個512位元組的塊裡,有一些系統的資訊:
可以看到,這個資料庫的compatible引數設定的是9.2.0,應該是一個9i的庫,這個系統應該是big endian的系統,猜測應是AIX。在AIX上先logminer一下,看看到底是什麼情況:
SQL> begin
dbms_logmnr.add_logfile('/1_12446.dbf');
end;
/
PL/SQL procedure successfully completed.
SQL> begin
dbms_logmnr.start_logmnr();
end;
/
PL/SQL procedure successfully completed.
SQL> select t.RBABLK,t.RBABYTE,t.DATA_OBJ#,t.ROW_ID,t.OPERATION,t.SQL_REDO,t.INFO from v$logmnr_contents t where t.RBABLK=166733;
166733 16 66237 AAAQXKAAAAAAAAAAAA UNSUPPORTED Unsupported Object or Data type Unsupported
依然是Unsupported,INFO中顯示Object or Data type Unsupported,並且,ROWID也很奇怪,這個ROWID根本不是一個有效的ROWID
Oracle的log miner工具是不支援一些情況的,例如:
1) Simple and nested abstract datatypes (ADTs)
2) Collections (nested tables and VARRAYs)
3) Object Refs
4) Index organized tables (IOTs)
5) CREATE TABLE AS SELECT of a table with a clustered key
第5條明顯不滿足,所以,首先懷疑這個表是否有特殊欄位。
於是,又騷擾了一下eygle大師,不久,便有了迴音,沒有特殊的欄位,都是標準的型別,看來不是這個原因,metalink了一下,有一個文章符合這種情況:
UNSUPPORTED Value In Sql_redo,Operation Columns Of V$Logmnr_contents [ID 282994.1]
Cause
Logminer cannot always populate all the fields of the v$logmnr_contents this is because the redo may/may not have all the information that we need for every column.
Fix
Enable supplemental logging on the database
Oracle認為這種情況不是個BUG,當開啟附加日誌時,將得到足夠的資訊, logminer也就能夠正確的得到SQL結果。[@more@]
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/19423/viewspace-1056057/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle技術嘉年華的一個案例,redo的那些事,連載二Oracle
- Oracle技術嘉年華的一個案例,redo的那些事,連載三Oracle
- Oracle技術嘉年華第一天歸來Oracle
- oracle中一個事務是如何使用redo的以及redo record和change vector的關係Oracle
- 一個Oracle技術作家的情書Oracle
- 一個事務的整個流程,datafile,undo,redo的內容
- 一個查埠連線交換機的一條線的技術
- Oracle技術嘉年華即將召開Oracle
- 記我第一次做線下技術分享的那些事
- Java開發技術大雜燴(一)之Redis、Jmeter、MySQL的那些事JavaRedisJMeterMySql
- TechWorld2021技術嘉年華,解鎖“不一樣”的技術盛會
- 一個不錯的綜合技術(java,oracle…………)JavaOracle
- Oracle技術嘉年華 現場抽獎活動Oracle
- 技術部落格那些事兒
- 技術戰略那些事兒
- 不負每一份對技術的熱愛| 2020 TechWorld技術嘉年華
- Oracle效能解決的一個案例Oracle
- 資料技術嘉年華歸來第一天
- 搞懂分散式技術13:快取的那些事分散式快取
- SegmentFault 思否技術週刊 -- JavaScript 的那些事JavaScript
- 20.WebAR那些事:一個40行的ARDemoWeb
- 負載均衡的那些事?負載
- HTTPS那些事(一)HTTPS原理(轉載)HTTP
- 《那些年啊,那些事——一個程式設計師的奮鬥史》——26程式設計師
- Android技術總監應該乾的那些事Android
- 技術人攻略訪談:那些Google教會我的事Go
- 2019年仲夏,來一場“可鹽可甜”的技術嘉年華
- Redo Log之一:理解Oracle redo logOracle Redo
- String是一個很普通的類 - Java那些事兒Java
- 開發一個 Web App 必須瞭解的那些事WebAPP
- Oracle技術嘉年華第二天歸來Oracle
- 《那些年啊,那些事——一個程式設計師的奮鬥史》——125程式設計師
- 一個小的技術細節
- 那些令人細思恐極的AI技術,哪一個戳中你的命門?AI
- 2019TechWorld技術嘉年華,“我們不一樣”
- 聊一聊Iterable與Iterator的那些事!
- 【JS基礎】原型物件的那些事(一)JS原型物件
- 51CTO技術沙龍Windows運維的那些事薦Windows運維