Oracle 日志挖掘(LogMiner)使用详解
Logminer依赖于2个包:DBMS_LOGMNR和DBMS_LOGMNR_D,Oracle11g默认已安装
Logminer基本使用步骤
<1>.SpecifyaLogMinerdictionary. 指定Logminer字典
<2>.Specifyalistofredologfilesforanalysis. 指定需要挖掘的redo或者archivelog日志文件
<3>.StartLogMiner. 开始日志挖掘
<4>.Requesttheredodataofinterest. 查询V$LOGMNR_CONTENTS获取挖掘的结果
<5>.EndtheLogMinersession. 结束日志挖掘
日志挖掘使用示例:
1.开启补全日志:
SQL>ALTERDATABASEADDSUPPLEMENTALLOGDATA;
2.找出需要挖掘的归档日志文件路径
SQL>SELECTNAMEFROMV$ARCHIVED_LOGWHEREFIRST_TIMEbetweento_date('2018-07-0608:20:00','yyyy-mm-ddhh24:mi:ss')andto_date('2018-07-0609:40:00','yyyy-mm-ddhh24:mi:ss')orderby1; NAME -------------------------------------------------------------------------------- /u01/app/archive/1_342433_904747849.dbf /u01/app/archive/1_342434_904747849.dbf /u01/app/archive/1_342435_904747849.dbf
3.指定Logminer字典(三选一)
Oracle11g指定Logminer字典有三种方法
1.UsingtheOnlineCatalog 使用在线目录
2.ExtractingaLogMinerDictionarytotheRedoLogFiles 抽取字典到redo日志文件中
3.ExtractingtheLogMinerDictionarytoaFlatFile 抽取字典到平面文件中(需要设置UTL_FILE_DIR参数,重启数据库,不推荐)
EXECUTEDBMS_LOGMNR.START_LOGMNR(OPTIONS=>DBMS_LOGMNR.DICT_FROM_ONLINE_CATALOG); OR EXECUTEDBMS_LOGMNR_D.BUILD(OPTIONS=>DBMS_LOGMNR_D.STORE_IN_REDO_LOGS); OR EXECUTEDBMS_LOGMNR_D.BUILD('dictionary.ora','/oracle/database/',DBMS_LOGMNR_D.STORE_IN_FLAT_FILE);
4.Logminer中添加归档日志文件
EXECUTEDBMS_LOGMNR.ADD_LOGFILE(LOGFILENAME=>'/u01/app/archive/1_342433_904747849.dbf',OPTIONS=>DBMS_LOGMNR.NEW);
继续添加日志:
EXECUTEDBMS_LOGMNR.ADD_LOGFILE(LOGFILENAME=>'/u01/app/archive/1_342434_904747849.dbf',OPTIONS=>DBMS_LOGMNR.ADDFILE); EXECUTEDBMS_LOGMNR.ADD_LOGFILE(LOGFILENAME=>'/u01/app/archive/1_342435_904747849.dbf',OPTIONS=>DBMS_LOGMNR.ADDFILE);
查看添加的日志列表:
selectfilenamefromV$LOGMNR_LOGS;
5.开始日志挖掘(三选一,与步骤3对应)
EXECUTEDBMS_LOGMNR.START_LOGMNR(OPTIONS=>DBMS_LOGMNR.DICT_FROM_ONLINE_CATALOG); OR EXECUTEDBMS_LOGMNR.START_LOGMNR(OPTIONS=>DBMS_LOGMNR.DICT_FROM_REDO_LOGS); OR EXECUTEDBMS_LOGMNR.START_LOGMNR(DICTFILENAME=>'/oracle/database/dictionary.ora');
6.获取挖掘结果
SELECTusernameASUSR,(XIDUSN||'.'||XIDSLT||'.'||XIDSQN)ASXID, SQL_REDO,SQL_UNDOFROMV$LOGMNR_CONTENTSWHEREusernameIN('HR','OE');
把挖取结果保存到指定表格中:createtablelogtabasselect*fromv$logmnr_contents;
7.结束日志挖掘
EXECUTEDBMS_LOGMNR.END_LOGMNR;
总结
以上所述是小编给大家介绍的Oracle日志挖掘(LogMiner)使用详解,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对毛票票网站的支持!
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。