问题背景:客户反馈3表的数据被清空了,是一个开发库,由于已经不止一次备清空,影响到开发进度,所以希望查出是一些信息给他们核查。
首先确认下信息,登录上去查了下这3张表,last_ddl_time为客户反馈的数据没了的附近,created的时间比较久远,那么很明显表是被人truncate过。
继续确认,数据库有开归档,有脚本定时清理,保留1小时
由于清空的时间比较精确,而且找到我的时候过去不久,归档还在,很快想到logmnr挖日志,而且只需要挖一个归档就可以找到。
通过v$archived_log视图,确认覆盖上面last_ddl_time的归档日志
并将归档复制到/home/oracle下,防止被删。
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;
这时候查就很容易了,提取关键字段信息截图给客户即可
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');
【米乐app官网下载的版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。