0

挖掘Oracle日志的“大杀器”

赵靖宇 2017-08-13
162

编辑手记:

LogMiner是用于Oracle日志挖掘的利器,使用该工具可以轻松获得Oracle 重做日志文件(归档日志文件)中的具体内容,LogMiner分析工具实际上是由一组PL/SQL包和一些动态视图组成,它作为Oracle数据库的一部分来发布,是oracle公司提供的一个完全免费的工具。本文主要演示LogMiner的使用,直观展示LogMiner的作用。

环境Oracle 11.2.0.4 RAC

  • 1.查询当前日志组

  • 2.业务用户插入操作

  • 3.归档日志切换

  • 4.业务用户插入操作

  • 5.归档日志切换

  • 6.业务用户更新操作

  • 7.归档日志切换

  • 8.确认需要分析的日志

  • 9.备份归档日志

  • 10.使用LogMiner分析

查询当前日志组

使用sys用户查询Oracle数据库的当前日志组:

这里当前日志(current)是:

thread 1 sequence 30

thread 2 sequence 25


业务用户插入操作

模拟业务用户jingyu插入T2表数据:

归档日志切换

为了区分每个日志的不同操作,这里对数据库进行手工归档切换,模拟现实中实际的归档切换。

业务用户插入操作

模拟业务用户jingyu删除T2表部分数据:

归档日志切换

为了区分每个日志的不同操作,这里对数据库进行手工归档切换,模拟现实中实际的归档切换。

业务用户更新操作

模拟业务用户jingyu更新T2表部分数据:

归档日志切换

为了区分每个日志的不同操作,这里对数据库进行手工归档切换,模拟现实中实际的归档切换。

确认需要分析的日志

确认之后需要使用LogMiner分析的日志:

备份归档日志

将相关的归档都copy备份出来:

备份出来的归档日志文件如下:

使用LogMiner分析

使用LogMiner分析归档日志:

查询v$logmnr_contents


实验发现:
以username为条件无法查询到相关记录,最终确认username都是unknown而不是真正执行语句的业务用户jingyu。 而挖掘出的日志sql_redo这个字段是完整的SQL,可以采用like的方式查询。

比如我分析更新操作的日志,就可以得到下面这样的结果:

至此,LogMiner基本的操作实验已完成。

与LogMiner有关的一些操作命令参考:

最后确认如果开启了附加日志,username就可以捕获到正确的值:

可以看到,开启了附加日志,就可以正常显示username的信息了。


加入"云和恩墨大讲堂",参与讨论学习

搜索 盖国强(Eygle) :eyygle,或者扫描下面二维码,备注:云和恩墨大讲堂,即可入群。每周与千人共享免费技术分享,与讲师在线讨论。


关注微信,获得后续精彩分享







最后修改时间:2020-05-07 23:27:12
「喜欢文章,快来给作者赞赏墨值吧」
文章转载自赵靖宇,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论

数据库资讯
最新 热门 更多
本月热门
近期活动
全部
暂无活动,敬请期待...
相关课程
全部