欢迎光临散文网 会员登陆 & 注册

云贝教育 |【技术文章】Logminer日志矿工简介

2023-03-09 16:00 作者:云贝数据  | 我要投稿

作者:刘晓峰

原文链接:http://www.tdpub.cn/Home/Blog/detail/id/1347.html


1.Logminer能干什么

(1)查询数据库损坏,比如误删了数据库读写

(2)跟踪用户所做的更改

(3)通过日志分析哪些表在做频繁的DML,以便进行性能优化

我们通过logminer演示用户的修改(审计需要提前开启,但是logminer并不需要)

这里我们source数据库和mining数据库都是同一个(正常情况是source是生产,mining测试)


2.先决条件

logminer需要:

(1)一个source数据库,有待分析的日志文件

(2)一个mining数据库,提供挖掘环境

(3)一个logminer字典,用于将内部ID转换成对应的列名

(4)source数据库的日志文件


logminer要求表名和列名不能超过30个字符

2.1启用补充日志记录


如果返回N,则需要启用最小补充日志记录


3.开始挖掘

创建测试环境:


然后有人执行了更新操作(这个人当然是我)


3.1指定字典

字典有三种形式,具体参考decision_tree.gif (483×406) (oracle.com)


我们使用平面字典文件

在假装的"生成环境"执行下面命令

此时去对应目录下可以看到是已经生成了平面文件,接下来我们把此文件假装拷贝到我们的测试库下(不拷贝也行,直接跑)


3.2添加重做日志

3.2.1分析在线重做日志文件

查询得到当前的在线重做日志文件为/usr/local/oracle19c/oradata/ORCL/redo01.log


3.2.2 分析归档重做日志

我们先切换日志组,将在线重做日志刷到归档重做日志

继续查询

通过时间我们判断日志文件应该是


并"假装"拷贝到我们的测试数据库


3.3启动日志矿工


3.4查询数据

使用在线重做日志和归档重做日志查询,都只能只能查到一行DDL的操作,没有找到我们后续的UPDATE


但是其它表的DML却能正常捕捉


3.5结束日志矿工

参考资料:https://docs.oracle.com/en/database/oracle/oracle-database/19/sutil/oracle-logminer-utility.html


云贝教育 |【技术文章】Logminer日志矿工简介的评论 (共 条)

分享到微博请遵守国家法律