可以使用分析数据库进行分析,但是有以下要求:
1、源数据库和分析数据库必须运行在相同的硬件平台上;
2、分析数据库可以是独立数据库或者源数据库;
3、分析数据库的版本不能低于源数据库的版本;
4、分析数据库与源数据库必须具有相同的字符集。
logminer字典:必须在源数据库生成。
重做日志文件:
当分析多个重做日志或者归档日志时,必须是同一个源数据库的重做日志或者归档日志;
当分析多个重做日志或者归档日志时,必须具有相同的resetlogs scn;
被分析的重做日志或者归档日志必须在oracle 8.0版本以上。
SQL> exec dbms_logmnr.add_logfile( logfilename=>'/home/oracle/backup/1_965.dbf', options=>dbms_logmnr.addfile);
PL/SQL procedure successfully completed.
提供logminer有三种方式:
1、使用源数据库数据字典
SQL> exec dbms_logmnr.start_logmnr(options=>dbms_logmnr.dict_from_online_catalog);
PL/SQL procedure successfully completed.
这种方式对于使用源数据库分析重做日志或归档日志的情况,要求表结构没有发生变化,数据库处于open状态,且只能用于跟踪DML操作,不能跟踪DDL操作。
2、摘取logminer字典到重做日志
这种方式对于使用分析数据库分析重做日志或归档日志,或者表结构发生变化的情况,要求源数据库处于open状态,且是归档模式。
SQL> exec dbms_logmnr.start_logmnr(options=>dbms_logmnr_d.store_in_redo_logs);
这种方式因为现在暂时没有合适的环境,所以没有进行试验。
3、摘取logminer字典到字典文件
以前一直使用的是这种方式,现在才知道该方式属于为了和以前版本兼容而保留的,如果要分析新建立的对象,需要重新生成字典文件。步骤也比较复杂。
a.首先要修改参数:UTL_FILE_DIR,该参数不能动态修改,所以需要重启数据库。昨天就是因为不能重新启动生产数据库郁闷半天。
b.建立字典文件
exec dbms_logmnr_d.build('dic.ora',>'/home/oracle',dbms_logmnr_d.store_in_flat_file);
书上提到必须指定store_in_flat_file选项,但是我之前做过的都没有标明,也是可以的,也许跟数据库的版本有关吧。
操作步骤:
exec dbms_logmnr.add_logfile( logfilename=>'/home/oracle/arch1_282_541249647.dbf', options=>dbms_logmnr.addfile);
exec dbms_logmnr.start_logmnr(options=>dbms_logmnr.dict_from_online_catalog);
EXECUTE DBMS_LOGMNR.END_LOGMNR;
使用logminer分析ddl操作,必须使用重做日志或字典文件存放logminer字典信息。
显示logminer分析结果:
查询 v$logmnr_contents
显示在用的字典文件:
查询 v$logmnr_dictionary
显示日志列表:
查询 v$logmnr_logs
显示参数设置:
查询 v$logmnr_parameters
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/51862/viewspace-180619/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/51862/viewspace-180619/