暂无图片
暂无图片
8
暂无图片
暂无图片
暂无图片

logmnr挖日志分析一例

原创 yuqi.zhou 2022-04-18
1480

问题背景:客户反馈3表的数据被清空了,是一个开发库,由于已经不止一次备清空,影响到开发进度,所以希望查出是一些信息给他们核查。
图片.png

1. 确认信息

首先确认下信息,登录上去查了下这3张表,LAST_DDL_TIME为客户反馈的数据没了的附近,CREATED的时间比较久远,那么很明显表是被人TRUNCATE过。
图片.png

继续确认,数据库有开归档,有脚本定时清理,保留1小时
由于清空的时间比较精确,而且找到我的时候过去不久,归档还在,很快想到logmnr挖日志,而且只需要挖一个归档就可以找到。

2. 确认归档

通过v$archived_log视图,确认覆盖上面LAST_DDL_TIME的归档日志
图片.png
并将归档复制到/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');

图片.png

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
1人已赞赏
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

文章被以下合辑收录

评论