如何查询Oracle数据库的操作日志
答案:2 悬赏:20 手机版
解决时间 2021-02-03 22:46
- 提问者网友:辞取
- 2021-02-03 04:49
如何查询Oracle数据库的操作日志
最佳答案
- 五星知识达人网友:末日狂欢
- 2021-02-03 06:08
查看归档模式
conn /as sysdba
archive log list
如果数据库为归档模式的话,可以通过logmnr来进行挖掘日志文件查看这些信息的。如果是非归档模式。对不起无法查看了
开启后台进程跟踪,
设置参数(initsid.ora)
.backgroudn_dump_dest=目录名 -- 指定根踪文件存放的路径
.user_dmup_test=目录名 --指定用户信息跟踪文件的存放路径
.用户的跟踪文件(.trc), 用TKPROF 来格式化用户跟踪文件
SQL 语句跟踪即可。
.imed_statistics=true; --设置启用 sql_trace =true;
.user_dump_dest=目录 --指定跟踪文件的存放路径
.max_dump_file_size=5M --指定跟踪文件最大尺寸
.SQL_TRACE=TRUE;
.动态改变 :alter session set sql_trace=true;
或者打开生成的跟踪文件:
默认在..\oralce\admin\user\udump\*.trc,由于oralce 生成的*.trc 直接打开格式不规格,看得很累,可以用tkprof gk 来格式化 :c:\tkprof ora00001.trc a.txt
conn /as sysdba
archive log list
如果数据库为归档模式的话,可以通过logmnr来进行挖掘日志文件查看这些信息的。如果是非归档模式。对不起无法查看了
开启后台进程跟踪,
设置参数(initsid.ora)
.backgroudn_dump_dest=目录名 -- 指定根踪文件存放的路径
.user_dmup_test=目录名 --指定用户信息跟踪文件的存放路径
.用户的跟踪文件(.trc), 用TKPROF 来格式化用户跟踪文件
SQL 语句跟踪即可。
.imed_statistics=true; --设置启用 sql_trace =true;
.user_dump_dest=目录 --指定跟踪文件的存放路径
.max_dump_file_size=5M --指定跟踪文件最大尺寸
.SQL_TRACE=TRUE;
.动态改变 :alter session set sql_trace=true;
或者打开生成的跟踪文件:
默认在..\oralce\admin\user\udump\*.trc,由于oralce 生成的*.trc 直接打开格式不规格,看得很累,可以用tkprof gk 来格式化 :c:\tkprof ora00001.trc a.txt
全部回答
- 1楼网友:長槍戰八方
- 2021-02-03 07:30
方法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;
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯