如何查询Oracle数据库的操作日志

 我来答
智者总要千虑
高粉答主

2017-12-11 · 说的都是干货,快来关注
知道顶级答主
回答量:7.9万
采纳率:88%
帮助的人:1.3亿
展开全部
方法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;
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式