① 如何查詢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 session的歷史記錄
1. 查看性能最差的前100sql
SELECT * FROM ( SELECT PARSING_USER_ID EXECUTIONS,SORTS,COMMAND_TYPE,DISK_READS,sql_text
FROM v$sqlarea
ORDER BY disk_reads DESC)
WHERE ROWNUM<100
2.oracle 10g 查看某的歷史執行sql情況(sql采樣間隔1s)
oracle 10g 通過v$active_session_history查看某session(這里指定為190)的歷史執行sql情況(sql采樣間隔1s)
select s.SAMPLE_TIME,
sq.SQL_TEXT,
sq.DISK_READS,
sq.BUFFER_GETS,
sq.CPU_TIME,
sq.ROWS_PROCESSED,
--sq.SQL_FULLTEXT,
sq.SQL_ID
from v$sql sq, v$active_session_history s
where s.SQL_ID = sq.SQL_ID
and s.SESSION_ID = 190
order by s.SAMPLE_TIME desc;
③ oracle歷史命令如何查看
sqlplus默認不提供命令歷史功能,但是可以通過一個rlwrap軟體實現類似功能.
④ 請教怎麼查詢ORACLE的歷史操作記錄
這個取決於抄你用的客戶端是哪個,我平時用的是 DBArtisan 8.5.2,這個客戶端裡面有個 Logfile菜單,勾選SQL log之後,客戶端就可以記錄所有SQL操作,只需打開log就可以根據日期翻看所有SQL記錄。 log裡面有個設置文件大小的,我一般設置50M,大致可以存1個多月的腳本數據。
⑤ 如何查看oracle數據表的操作歷史
可通過查詢系統視圖v$sql來查詢歷史操作。
查詢語句:
select*fromv$sql;
查詢結果:
其中紅框內的部分,就是操作記錄。
⑥ 如何查詢ORACLE的歷史操作記錄
可通過查詢系統視圖v$sql來查詢歷史操作。
查詢語句:
select * from v$sql;
v$active_session_history;
⑦ 如何查看oracle的操作記錄
朋友,我這沒有11g的資料庫,10.0.2版本,我是這樣做的,希望11g能夠兼容。
1、SQL> alter database add supplemental log data; 啟用增強日誌信息記錄
2、SQL> execute dbms_logmnr_d.build(options=>dbms_logmnr_d.store_in_redo_logs); 配置LogMiner運行環境,建立LogMiner字典並存入重做日誌文件
3、SQL> exit 重新登錄以使環境配置生效
4、C:\Users\Administrator>sqlplus /nolog
SQL*Plus: Release 10.2.0.1.0 - Proction on Tue Apr 17 16:38:34 2012
Copyright (c) 1982, 2005, Oracle. All rights reserved.
SQL> conn sys/redhat as sysdba
5、SQL> select * from v$log; 確定當前及歸檔日誌狀態
SQL> select * from v$logfile; 查看日誌文件存放路徑
6、SQL> execute dbms_logmnr.add_logfile(logfilename=>'*.log',options=>dbms_logmnr.addfile); 添加第一個日誌文件進行分析
7、SQL> execute dbms_logmnr.add_logfile(logfilename=>'*.arc',options=>dbms_logmnr.addfile); 分析歸檔日誌文件
⑧ 如何查詢oracle操作記錄的sql
select * from v$sqlarea t where t.PARSING_SCHEMA_NAME in ('用戶名') order by t.LAST_ACTIVE_TIME desc
用戶名需要大寫
select * from v$sqlarea t order by t.LAST_ACTIVE_TIME desc
注意 :執行此語句等等一些相關的語句 必須具有DBA 的許可權 雖然這條語句很普通 但是需要的時候很管用 能夠及時查出一個人執行sql語句情況
-------oracle 查看已經執行過的sql 這些是存在共享池中的 --------->
select * from v$sqlarea t order by t.LAST_ACTIVE_TIME desc
-----------查看oracle會話----------------------------》
select * from v$session t order by t.LAST_ACTIVE_TIME desc
-------------查看oracle的許可權角色------------------------------>
select * from dba_role_privs; 授予用戶和其他角色的角色
select * from dba_sys_privs; 授予用戶和其他角色的系統許可權
select * from dba_tab_privs; 資料庫中對象的所有授權
select * from user_role_privs; 查看當前用戶的角色