一、【准备篇】
1、SQL>alter database add supplemental log data; --添加日志支持(可以得到用户session_info,便于查找操作用户);
2、SQL>@$Oracle_HOME/rdbms/admin/dbmslm.sql;--安装日志分析工具包
3、SQL> @ $ORACLE_HOME/rdbms/admin/dbmslmd.sql; --安装日志分析工具包字典
4、SQL> alter system set UTL_FILE_DIR = '/home/oracle/logminer' scope = spfile;--分析的结果文件存放的路径
5、SQL> shutdown immediate;
6、SQL> startup;
7、mkdir logminer --建立"/home/oracle/logminer"路径,确保有该文件夹路径;
二、【分析篇】
1、用sysdba用户连接;
2、SQL> EXECUTE dbms_logmnr_d.build(dictionary_filename=>'sqltrace.ora',dictionary_location=>'/home/oracle/logminer');--加载分析用的字典;
3、SQL>exec dbms_logmnr.add_logfile(options => dbms_logmnr.new, logfilename => '/home/oracle/flash_recovery_area/GSSA/archivelog/2009_11_16/o1_mf_1_1972_5j28mpht_.arc');--加载归档或redo日志绝对路径文件;
如果再添加第二个日志文件的话,应该这样
SQL> exec dbms_logmnr.add_logfile(logfilename=>'/opt/oracle/oradata/shim/redo03.log', options=>dbms_logmnr.addfile);
4、SQL> execute dbms_logmnr.start_logmnr(DICTFILENAME =>'/home/oracle/logminer/sqltrace.ora');--开始分析;
5、SQL> SELECT SQL_REDO FROM V$LOGMNR_CONTENTS WHERE TABLE_NAME = 'T_LOGMNR';--根据分析结果查询。
create table temp_kxu as select * from V$LOGMNR_CONTENTS;--创建表后在分析;
6、execute dbms_logmnr.end_logmnr();
注:oracle9i和oracle11g 不必设置SUPPLEMENTAL LOG DATA PRIMARY KEY和UNIQUE INDEX,logmnr也能获取DML
alter system switch logfile;--写归档日志;