Oracle Logminer工具基础版

程序简介

Logminer是Oracle提供的实用日志分析工具,可以方便的获取Oracle重做日志(redo log)中的具体内容,Logminer使用一组PL/SQL包作为分析接口,分析出的数据内容通过v$logmnr_contents视图获得。

我们通过对Oracle日志格式的分析,自己开发了一个类似Logminer的工具,分析参数通过命令行直接传送给程序,分析的内容输出到一个csv格式的文件中,这个文件的格式类似v$logmnr_contents的字段结构,为了看起来方便,省略了一些意义不大的字段。分析完成后,可以用Excel打开查看里面的内容。程序的主要功能是通过重做日志(包括归档和在线)的修改记录重新构造了原始操作的SQL语句。为了方便程序的阅读,在开发时没有使用数据字典,所以分析出来的SQL格式与Logminer不使用字典时的输出格式类似。

所需知识
这个软件是在Linux下用C语言开发的,因此在阅读源代码前需要熟悉C语言和Linux的系统调用,主要是对文件的操作。
包含内容
这个软件除了源代码以外,还包含一份对Oracle redo log的详细分析文档,描述了日志中使用的数据结构。描述了Block0和Block1中各字段的含义,日志块的结构。 详细描述了一个重做记录的组成部分,包括重做记录头,重做向量,改变记录等。重点分析了ktudh,ktudb,ktubl,ktubu,ktucm等事务结构,还有KTB块事务结构, 以及KTB F,KTB C,KTBZ,KTB L,KTB R之间的区别,还描述了行数据操作KDO的IRP,DRP,URP,QMI,QMD等操作,包括数据结构和数据的排列方式。分析了DDL的操作, 以及DDL中各个元素的组合。还详细分析了补充日志(supplemental log)的结构和补充字段的格式。

Oracle日志解析是技术含量非常高的工作,Oracle GoldenGate和Quest SharePlex,DSG RealSync等数据复制软件都是通过解析Oracle的归档或在线日志,提取其中的事务数据来进行数据复制的,对日志格式的理解是这些软件运行的基础。我们提供的日志分析文档涵盖了大部分的事务数据格式,通过这个软件能够分析还原出大量的用户操作。在这个基础上再深入研究,开发一个与GoldenGate类似的复制软件也并非不可能的事情。在我们的产品页面中就有一个类似的软件,可以试用感受一下它的功能。

文档截图
《Oracle redo log格式文档》目录



Logminer基础版工具分析日志的输出结果
运行环境
源程序代码在64位 CentOS 5.6 上编译测试通过

Linux内核版本 2.6.18
Oracle版本11.2.0.1

在其他版本的Linux下编译时,如有编译问题,请自行修改代码。
下载测试

Logminer基础版工具下载