logminer配置与使用

logmnr挖掘有一个基本条件就是必须打开附加日志
SQL> select SUPPLEMENTAL_LOG_DATA_MIN from v$database;
SUPPLEME
--------
YES
如果未开启,需要手动开启
alter database add supplemental log data;
1)要安装LogMiner工具,必须首先要运行下面这样两个脚本,
@?/rdbms/admin/dbmslsm.sql
@?/rdbms/admin/dbmslsmd.sql.
这两个脚本必须均以SYS用户身份运行。其中第一个脚本用来创建DBMS_LOGMNR包,该包用来分析日志文件。第二个脚本用来创建DBMS_LOGMNR_D包,该包用来创建数据字典文件。
2)修改UTL_FILE_DIR目录,这个目录让我们存放数据字典的,明白的说就是把日志通过LogMiner装换成数据字典存放的目录
SQL> alter system set UTL_FILE_DIR='$ORACLE_BASE/log_utl_file' scope=spfile;---错误
SQL> alter system set UTL_FILE_DIR='/u01/app/oracle/log_utl_file' scope=spfile;---最好是用绝对路径
要事先声明$ORACLE_BASE/log_utl_files,这个目录要先创建好,最好是属于oracle用户或者oracle用户有读写的权限。不然会报错:
ERROR at line 1:
ORA-01336: specified dictionary file cannot be opened
ORA-29280: invalid directory path
ORA-06512: at "SYS.DBMS_LOGMNR_INTERNAL", line 5972
ORA-06512: at "SYS.DBMS_LOGMNR_INTERNAL", line 6062
ORA-06512: at "SYS.DBMS_LOGMNR_D", line 12
ORA-06512: at line 1 
3)创建字典文件
execute dbms_logmnr_d.build(dictionary_filename => 'logmr.ora',dictionary_location => '/oracle/app/oracle/log_utl_file'); 
EXECUTE dbms_logmnr_d.build('dictionary.ora','/oracle/app/oracle/log_utl_files',options => dbms_logmnr_d.store_in_flat_file);
也可以将字典指定到在线日志中
EXECUTE dbms_logmnr_d.build(options => dbms_logmnr_d.store_in_redo_logs);
4)增加要分析的日志
execute dbms_logmnr.ADD_LOGFILE(LOGFILENAME=>'/oracle/app/oracle/oradata/orcl/redo03.log',OPTIONS=>dbms_logmnr.new);
execute dbms_logmnr.add_logfile(LogFileName=>'/oracle/app/oracle/oradata/orcl/redo02.log',Options=>dbms_logmnr.addfile);
。。。。。
可以添加多个
5)开始分析
execute dbms_logmnr.start_logmnr(DictFileName=>'/oracle/app/oracle/log_utl_files/logmr.ora');
6)查询分析结果 
到dictionary下去查询DML语句
或者在在线日志的视图中查找
SELECT sql_redo FROM v$logmnr_contents WHERE username='TEST' AND table_name='TTT';
7)分析后,删除日志文件
execute dbms_logmnr.add_logfile(LogFileName=>'/oracle/app/oracle/product/10.2.0/db_1/dbs/arch1_11_851298898.dbf',Options=>dbms_logmnr.REMOVEFILE); 
8)退出logminer
exec dbms_logmnr.END_LOGMNR; 

9)注意logmnr会话的有效期是在当前用户的当前会话下,中间不可以conn其他用户或者在其他的session查询

本文参照了Dave的http://blog.csdn.net/tianlesoftware/article/details/5604497

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值