问题背景:客户反馈3表的数据被清空了,是一个开发库,由于已经不止一次备清空,影响到开发进度,所以希望查出是一些信息给他们核查。
1. 确认信息
首先确认下信息,登录上去查了下这3张表,LAST_DDL_TIME为客户反馈的数据没了的附近,CREATED的时间比较久远,那么很明显表是被人TRUNCATE过。
继续确认,数据库有开归档,有脚本定时清理,保留1小时
由于清空的时间比较精确,而且找到我的时候过去不久,归档还在,很快想到logmnr挖日志,而且只需要挖一个归档就可以找到。
2. 确认归档
通过v$archived_log视图,确认覆盖上面LAST_DDL_TIME的归档日志
并将归档复制到/home/oracle下,防止被删。
3. 用logmnr工具挖日志
SQL> exec sys.dbms_logmnr.add_logfile(LogFileName=>'/home/oracle/o1_mf_1_1320590_k5l7nv05_.arc',options=>sys.dbms_logmnr.new);
PL/SQL procedure successfully completed.
SQL> execute sys.dbms_logmnr.start_logmnr(Options => sys.dbms_logmnr.DICT_FROM_ONLINE_CATALOG);
PL/SQL procedure successfully completed.
SQL> select count(*) from v$logmnr_contents;
COUNT(*)
----------
34644
开发库操作少,挖的过程很快。
将数据保存下来,方便分析
create table system.t_logmnr as select * from v$logmnr_contents;
4. 查到需要的信息
这时候查就很容易了,提取关键字段信息截图给客户即可
select t.timestamp,
t.seg_owner,
t.seg_name,
t.os_username,
t.session_info,
t.sql_redo,
t.*
from system.t_logmnr t
where t.seg_name in ('BAS_HOT_TOPIC_CATE', 'GLB_ACCT_ENTRY', 'GLB_CTRL');
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。