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 redo log格式文档图



Oracle redo log格式文档图
运行环境
源程序代码在64位 CentOS 5.6 上编译测试通过

Linux内核版本 2.6.18
Oracle版本11.2.0.1

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