永发信息网

如何查询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
全部回答
  • 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;
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯