使用logminer分析日志文件

实验环境 win7 64  oracle PL/SQL Release 11.2.0.1.0 - Production
http://blog.csdn.net/tianlesoftware/article/details/5604497

--这些操作需要在sysdba身份执行
1.执行分析之前需要添加补充日志
SELECT SUPPLEMENTAL_LOG_DATA_MIN FROM V$DATABASE;查看补充日志是否开启,NO为未开启
ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;
2.创建一个目录存放生成的分析文件
create DIRECTORY utlfile AS 'E:appAdministratororadatapracticeLOGMNR';
3.指定输出文件到步骤1中的目录   UTL_FILE_DIR是Oracle中的一个“静态参数”,可以设置一个或多个路径。用于在PL/SQL中进行文件I/O操作(可以用utl_file包)时指定路径。
alter system set utl_file_dir='E:appAdministratororadatapracticeLOGMNR' scope=spfile;
--需要重启oracle服务然后执行以下的操作
4.创建字典文件到3中配置好的LogMiner文件夹中:
EXECUTE dbms_logmnr_d.build(dictionary_filename => 'dictionary.ora', dictionary_location =>'E:appAdministratororadatapracticeLOGMNR');
5.加入需要分析的重做日志文件
EXECUTE dbms_logmnr.add_logfile(logfilename=>'E:APPADMINISTRATORORADATAORCLREDO03.LOG',options=>dbms_logmnr.NEW);
6.开始分析
EXECUTE dbms_logmnr.start_logmnr(dictfilename=>'E:appAdministratororadatapracticeLOGMNRdictionary.ora');
7.为了更好的从V$LOGMNR_CONTENTS中查看分析结果,创建一个临时表
create table logmnr3 as select * from V$LOGMNR_CONTENTS;
8.结束分析
EXECUTE DBMS_LOGMNR.END_LOGMNR();


总结:
1.如果出现insert into "SCOTT"."EMP"("COL 1","COL 2","COL 3","COL 4","COL 5","COL 6","COL 7","COL 8") values (HEXTORAW('c2503a'),HEXTORAW('74657374'),HEXTORAW('434c45524b'),HEXTORAW('c24e53'),HEXTORAW('78730410141801'),HEXTORAW('c206'),NULL,HEXTORAW('c115'));
可能是因为需要重新创建目录,重新创建字典


问题:
1.补充日志是否必须开启,查看不到dml语句是否是因为没有开启补充日志;
2.如果存在dbms_logmnr和dbms_logmnr_d,还用执行数据库带的那脚本么;$ORACLE_HOME/rdbms/admin/dbmslm.sql 、$ORACLE_HOME/rdbms/admin/dbmslmd.sql.
  因为在另一台机器上没有开启补充日志仍然可以查看dml语句,怀疑两个数据库的区别只是另一个机器执行了那两个脚本

原文地址:https://www.cnblogs.com/SUN-PH/p/4440631.html