2012-05-24 126 views
2

有人(或其他)實際上錯誤地更新了表中的值。我試圖找出更新發生的時間。不幸的是,沒有爲該表創建審計觸發器。Oracle數據庫審計跟蹤

是否有其他方法或日誌可以檢查和驗證什麼時候運行SQL語句?

我曾嘗試查看v $ sql表,但我不認爲該表捕獲所有正在數據庫上執行的SQL語句。例如。我專門做了一個UPDATE語句,但它沒有在v $ sql表中捕獲。

我可以看看redo.log嗎?但是,我不知道如何解釋這個日誌。

回答

2

你唯一真正的選擇是logminer,這是不適合心臟的。

的文檔是在這裏:http://docs.oracle.com/cd/B19306_01/server.102/b14215/logminer.htm

v$sql行可能會經過一段時間老化。當您在v$sql中查看時,您是否考慮了區分大小寫?

select * from v$sql where upper(sql_fulltext) like '%UPDATE%'; 
+0

事實上,它並不適合那些膽小的人。 :(任何其他讀取redo.log的工具?另外,當我查看v $ sql時,我已經考慮了大小寫敏感性,我知道這些行會變老,但是我更新的記錄只是最近的並立即生效。 – cooldude

+0

沒有其他方式我害怕。 – Phil