Oracle技術嘉年華的一個案例,redo的那些事,連載一
電梯
Oracle技術嘉年華的一個案例,redo的那些事,連載三
在剛剛結束的Oracle技術嘉年華大會上,eygle大師的演講中提到了有關於資料安全的一個案例,大致的意思是資料庫管理員修改了自己賬戶的金額。但是,奇怪的是,透過logminer挖掘日誌時,居然挖掘不到修改記錄,顯示如下狀況:
SQL_REDO的內容是Unsupported,但是,透過logfile dump,可以看到此次修改,如下圖:
![2.jpg 2.jpg](https://i.iter01.com/images/d9b76b99085a4c3df59c78778c152e2ef197200f7f2f125d5bd6e3d42719e057.jpg)
將金額從0修改為40000。
在大會上,主要討論的是資料安全方面的議題,但是,我確感到很奇怪,為什麼此處的redo記錄Oracle的logminer居然無法解析呢?
於是,管eygle大師要來了這部分的歸檔日誌,決定一探究竟。
拿到日誌以後,首先看了一下日誌頭資訊,在第二個512位元組的塊裡,有一些系統的資訊:
![3.jpg 3.jpg](https://i.iter01.com/images/5ed3dba161cc30c0ea42c87c95e0667a8770ff952b98ad2373d977de5cedd3f1.jpg)
可以看到,這個資料庫的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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- TechWorld2021技術嘉年華,解鎖“不一樣”的技術盛會
- 2019年仲夏,來一場“可鹽可甜”的技術嘉年華
- 不負每一份對技術的熱愛| 2020 TechWorld技術嘉年華
- 2019TechWorld技術嘉年華,“我們不一樣”
- 乾貨 | TechWorld2021技術嘉年華演講PPT下載
- 《那些年啊,那些事——一個程式設計師的奮鬥史》——26程式設計師
- 與技術來一場邂逅|2020TechWorld綠盟科技技術嘉年華如約盛啟
- Java開發技術大雜燴(一)之Redis、Jmeter、MySQL的那些事JavaRedisJMeterMySql
- 記我第一次做線下技術分享的那些事
- 技術戰疫:下一個10年的技術趨勢
- 一個20年技術老兵的 2020 年度技術總結
- 一個20年技術老兵的2020年度技術總結
- 搞懂分散式技術13:快取的那些事分散式快取
- Android技術總監應該乾的那些事Android
- 就要技術範!2019TechWorld技術嘉年華•黑客馬拉松完美落幕黑客
- 大咖來襲 | 2019TechWorld技術嘉年華技術大咖首秀
- 2021資料技術嘉年華 | OceanBase 技術盛宴ON LINE ,我們不見不散!
- 那些年的體驗技術部
- 那些年啊,那些事——一個程式設計師的奮鬥史 開始預售了程式設計師
- 當藝術邂逅技術|2020TechWorld技術嘉年華邀您解鎖新玩法
- 負載均衡的那些事?負載
- 聊一聊華為雲彈性公網IP的那些事兒
- 《光·遇》五週年嘉年華 | 一起去有光的地方
- Oracle redo日誌內容探索(一)Oracle Redo
- 2019 資料技術嘉年華,資料英雄聚京華 - 誠邀論道
- 那些令人細思恐極的AI技術,哪一個戳中你的命門?AI
- 一個小的技術細節
- 連載一:Oracle遷移文件大全Oracle
- 聊一聊Iterable與Iterator的那些事!
- 有關指標的那些事兒《一》指標
- 【JS基礎】原型物件的那些事(一)JS原型物件
- 職場那些事(一)
- oracle的redo和undoOracle
- 限時早鳥票 | 2019資料技術嘉年華超豪華盛宴搶先看!
- 一個9年的技術最近一直擔心找不到工作
- 2019TechWorld技術嘉年華·十大議題重磅釋出
- 阿里10年:一個普通技術人的成長之路阿里
- 阿里 10 年:一個普通技術人的成長之路阿里
- 短連結的一些技術知識