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();