① 如何查询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; 查看当前用户的角色