LogMiner是oracle的日志分析工具,可以分析出所有对数据的操作,可以用来在线分析日志,可以分析离线的日志文件。

因为LogMiner分析需要用到数据字典,有三种方式来参照数据字典

LogMiner分为三种使用方式:

1.使用Online Catalog当前数据库的数据字典分析本数据的日志

添加日志:

在V$ARCHIVED_LOG视图中找到想到分析的日志名称

添加新日志:

EXECUTE DBMS_LOGMNR.ADD_LOGFILE(LOGFILENAME => '/usr/oracle/data/db1arch_1_16_482701534.dbf',OPTIONS => DBMS_LOGMNR.NEW);

继续添加日志:

EXECUTE DBMS_LOGMNR.ADD_LOGFILE( LOGFILENAME => '/usr/oracle/data/db1arch_1_16_482701535.dbf',OPTIONS => DBMS_LOGMNR.ADDFILE);

删除已经添加的日志:

EXECUTE DBMS_LOGMNR.REMOVE_LOGFILE(LOGFILENAME => '/usr/oracle/data/db1arch_1_16_482701535.dbf');

查看V$LOGMNR_LOGS视图可以知道已经添加的日志。

开始LogMiner用在线数据字典:

EXECUTE DBMS_LOGMNR.START_LOGMNR( OPTIONS => DBMS_LOGMNR.DICT_FROM_ONLINE_CATALOG);

查询V$LOGMNR_CONTENTS视图来分析日志

结束LogMiner

EXECUTE DBMS_LOGMNR.END_LOGMNR();

2.将数据字典保存的归档日志中。

导出数据字典到归档日志中:

EXECUTE DBMS_LOGMNR_D.BUILD(OPTIONS=> DBMS_LOGMNR_D.STORE_IN_REDO_LOGS);

开始LogMiner用归档日志的数据字典:

EXECUTE DBMS_LOGMNR.START_LOGMNR( OPTIONS => DBMS_LOGMNR.DICT_FROM_REDO_LOGS);

添加日志:

EXECUTE DBMS_LOGMNR.ADD_LOGFILE(LOGFILENAME => '/usr/oracle/data/db1arch_1_16_482701534.dbf',OPTIONS => DBMS_LOGMNR.NEW);

查询V$LOGMNR_CONTENTS视图来分析日志

结束LogMiner

EXECUTE DBMS_LOGMNR.END_LOGMNR();

3.将数据字典保存的平面文件中:

修改初始化参数,指定平面文件的位置:

alter system set UTL_FILE_DIR='D:\oracle\logminer' scope=spfile;

重启数据库,使参数生效,导出数据字典到平面文件中

execute dbms_logmnr_d.build(dictionary_filename =>'dictionary.ora',dictionary_location =>'D:\oracle\logminer');

添加日志文件

EXECUTE DBMS_LOGMNR.ADD_LOGFILE(LOGFILENAME => '/usr/oracle/data/db1arch_1_16_482701534.dbf',OPTIONS => DBMS_LOGMNR.NEW);

开始LogMiner用平面文件的数据字典:

execute dbms_logmnr.start_logmnr(dictfilename=>'d:\oracle\logminer\dictionary.ora');

查询V$LOGMNR_CONTENTS视图来分析日志

结束LogMiner

EXECUTE DBMS_LOGMNR.END_LOGMNR();