oracle数据库是可以离线分析其他库的归档日志的,比如想分析生产库的归档日志,可以将其拿到测试库上来分析,以免影响生产库的性能。
dictory模式:将数据库的数据字典抽取到操作系统的一个文件里,这种方式必须设置UTL_FILE_DIR参数,这个参数是静态参数,修改后必须重启数据库才会生效。使用LOGMNR的DICTORY模式的好处就是可以分析其他数据库的日志信息,但是在将其他数据库的日志拷到本地数据库服务器的同时,还需要拷贝那个数据库创建的字典文件。
1. 远程生产库上创建字典文件(本步骤以下在具有logminer权限账号下执行)
执行命令:
exec dbms_logmnr_d.build(dictionary_filename=>'dict328.ora',dictionary_location=>'/u01/app/oracle/utl_dir_test',options=>dbms_logmnr_d.store_in_flat_file);
dictionary_location的位置为UTL_FILE_DIR参数的指定的路径。
如果出现下面的报错,说明没有设置UTL_FILE_DIR参数。
utl_file_dir 设置为/u01/app/oracle/utl_dir_test
alter system set utl_file_dir='/u01/app/oracle/utl_dir_test' scope=spfile;
2. 将归档日志和字典文件拷贝到测试数据库服务器
3.在测试数据库服务器添加远程数据库的归档日志
添加归档日志
exec dbms_logmnr.add_logfile(logfilename=>'/home/oracle/1_789_1120924149.dbf',options=>dbms_logmnr.new); exec dbms_logmnr.add_logfile(logfilename=>'/home/oracle/1_790_1120924149.dbf',options=>dbms_logmnr.addfile); exec dbms_logmnr.add_logfile(logfilename=>'/home/oracle/1_791_1120924149.dbf',options=>dbms_logmnr.addfile); exec dbms_logmnr.add_logfile(logfilename=>'/home/oracle/1_792_1120924149.dbf',options=>dbms_logmnr.addfile); exec dbms_logmnr.add_logfile(logfilename=>'/home/oracle/1_793_1120924149.dbf',options=>dbms_logmnr.addfile); exec dbms_logmnr.add_logfile(logfilename=>'/home/oracle/1_794_1120924149.dbf',options=>dbms_logmnr.addfile);
解析归档日志
exec dbms_logmnr.start_logmnr(dictfilename=>'/home/oracle/dict328.ora'); select scn,OPERATION,sql_redo from v$logmnr_contents where table_name = 'T327';
结束分析
exec dbms_logmnr.end_logmnr;
标签:dbms,exec,数据库,离线,logmnr,归档,oracle,日志 From: https://www.cnblogs.com/JennyYu/p/17266375.html