oracle資料庫操作記錄
⑴ 如何查詢Oracle資料庫的操作日誌
方法1:使用LogMiner工具
優點:可以完全挖掘日誌內容,找出所有執行過的sql語句
缺點:
1.
如果沒有啟用歸檔日誌,則只能對聯機日誌進行挖掘
2.
需要掌握LogMiner的用法
訪法2:查看HIST視圖
優點:簡單,只要使用普通的select語句查詢
缺點:Oracle保留約1周的歷史,所以要查太早的就不可能了
--
找出哪個資料庫用戶用什麼程序在最近三天執行過delete或truncate
table的操作
舉例如下:
SELECT
c.username,
a.program,
b.sql_text,
b.command_type,
a.sample_time
FROM
dba_hist_active_sess_history
a
JOIN
dba_hist_sqltext
b
ON
a.sql_id
=
b.sql_id
JOIN
dba_users
c
ON
a.user_id
=
c.user_id
WHERE
a.sample_time
BETWEEN
SYSDATE
-
3
AND
SYSDATE
AND
b.command_type
IN
(7,
85)
ORDER
BY
a.sample_time
DESC;
⑵ 如何查詢oracle資料庫的操作記錄
首先,向你介紹一個動態視圖:v$sql
該視圖展示最近一段時間所有執行過的sql語句:
select * from v$sql
即可。
如果報錯找不到v$sql,一般是許可權問題,換sysdba就肯定能查到。
但要注意的是「隱式sql」,很多sql語句是調用執行的,(比如,存儲過程中對dbms包的調用,再如執行create 語句所觸發的對系統表空間、數據字典的修改等等。),這些語句同樣會展現在v$sql中。
還有其它與sql歷史記錄相關的v$視圖,詳情可以參考Oracle官方文檔《Oracle® Reference》,直接給你個10.2的文檔鏈接,夠方便了吧:
http://www.oracle.com/pls/db102/homepage?remark=tahiti