方法1:使用LogMiner工具
优点:可以完全挖掘日志内容,找出所有执行过的SQL语句
缺点:
1 如果没有启用归档日志,则只能对联机日志进行挖掘
2 需要掌握LogMiner的用法
访法2:查看HIST视图
优点:简单,只要使用普通的select语句查询
缺点:Oracle保留约1周的历史,所以要查太早的就不可能了
-- 找出哪个数据库用户用什么程序在最近三天执行过delete或truncate table的 *** 作
举例如下:
SELECT cusername,
aprogram,
bsql_text,
bcommand_type,
asample_time
FROM dba_hist_active_sess_history a
JOIN dba_hist_sqltext b
ON asql_id = bsql_id
JOIN dba_users c
ON auser_id = cuser_id
WHERE asample_time BETWEEN SYSDATE - 3 AND SYSDATE
AND bcommand_type IN (7, 85)
ORDER BY asample_time DESC;
记录系统日志,比如日志切换的记录,修改系统参数等系统事件。
位置在参数background_mp_dest指定的路径下,一般为:%ORACLE_BASE%admin%ORACLE_SID%mp
你是要看数据文件和日志文件的存放位置呢,还是里边的内容?查看位置的话,直接使用:SQL> select from v$logfile;SQL> select file_id,file_name from dba_data_files;如果要查看内容的话,得把数据打出来,到trace文件中查看。
这些是要联接到数据库的,但是 *** 作记录需要在程序上做处理,可以这样处理
1、建立一个 *** 作记录表,字段大概可以为:id、 *** 作类型、 *** 作人、 *** 作时间等
2、封装一个类,在每次有 *** 作的将这些 *** 作的记录写到数据库中,然后需要的时候读取出来
以上就是关于怎样查询访问数据库的日志全部的内容,包括:怎样查询访问数据库的日志、如何查看oracle数据库的系统日志、如何查看数据库日志等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)