Oracle LogMiner

Oracle LogMiner

LogMiner 工具既可以用来分析在线,也可以用来分析离线日志文件,即可以分析本身自己数据库的重作日志文件,也可以用来分析其他数据库的重作日志文件

1.安装

创建DBMS_LOGMNR包和DBMS_LOGMNR_D包,分别用于分析日志文件和创建数据字典文件

SQL>@?/rdbms/admin/dbmslm.sql
SQL>@?/rdbms/admin/dbmslmd.sql

2.创建数据字典目录

SQL>create directory utlfile AS '/home/oracle/logminer'
SQL>alter system set utl_file_dir='/home/oracle/logminer' scope=spfile
--需要重启oracle
SQL>shutdown immediate
SQL>startup
SQL>show parameter utl_file_dir
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
utl_file_dir                         string      /home/oracle/logminer

3.创建数据字典

SQL>EXECUTE dbms_logmnr_d.build(dictionary_filename => 'dictionary.ora', dictionary_location =>'/home/oracle/logminer');

4.开启补全日志

--查看是否开启补全日志
SQL>select SUPPLEMENTAL_LOG_DATA_MIN from v$database;
--添加补全日志
SQL>alter database add supplemental log data;

5.日志切换

SQL>alter system switch logfile;

6.添加归档日志

--首次添加
SQL>exec dbms_logmnr.add_logfile('/home/oracle/arch/1_55115_905449974.dbf', dbms_logmnr.new);

--再次添加
SQL>exec dbms_logmnr.add_logfile('/home/oracle/arch/1_55116_905449974.dbf', dbms_logmnr.ADDFILE); 

--移除日志
SQL>dbms_logmnr.add_logfile('1_55116_905449974.dbf', dbms_logmnr.removefile);

7.开始分析

--分析全部日志
SQL>EXECUTE dbms_logmnr.start_logmnr(dictfilename=>'/home/oracle/LOGMNR/dictionary.ora');

--设置日志时间范围
SQL>EXECUTE dbms_logmnr.start_logmnr(dictfilename=>'/home/oracle/LOGMNR/dictionary.ora',starttime => to_date('2006-02-13 00:00:00','YYYY-MM-DD HH24:MI:SS'),endtime => to_date(''2004-9-18 23:59:59','YYYY-MM-DD HH24:MI:SS '));

--设置日志scn范围
SQL> EXECUTE dbms_logmnr.start_logmnr(dictfilename=>'/home/oracle/LOGMNR/dictionary.ora', startscn => 20, endscn => 50);

如果是远程分析归档日志,需要源库上创建数据字典后复制到当前库字典目录下,分析时指定为源库数据字典

8.查看LogMiner

--使用的数据字典
SQL>select filename from v$logmnr_dictionary;
--分析的日志文件
SQL>select filename from v$logmnr_logs;

9.查看分析内容

--创建表格,将数据存入该表
SQL>create table logminer as select * from v$logmnr_contents;
--查看内容
SQL>select operation,sql_redo,sql_undo from logminer;

10.停止分析

SQL>exec dbms_logmnr.end_logmnr;
posted @ 2017-07-11 08:11  Xuty  阅读(568)  评论(1编辑  收藏  举报