Logminer
LogMiner用于分析重做日志和归档日志所记载的事务操作
Logminer是oracle提供的用于分析重做日志信息的工具,它包括DBMS_LOGMNR和DBMS_LOGMNR_D两个package,后边的D是字典的意思。它既能分析redo log file,也能分析archive log file。分析日志需要使用数据字典,一般先生成数据字典文件再分析日志,10g以后的版本还可以使用在线数据字典
一、安装包(oracle10g以上可以不用安装)
一般包在oracle_home\rdbms\admin下
使用sys登陆执行两个脚本
@ dbmslm.sql和@ dbmslmd.sql
二、设置(11g可跳过)
查看路径
SQL>show parameter utl
NAME TYPE VALUE
----------------------------------------------- ---------------
create_stored_outlines string
utl_file_dir string D:\oracle\app
另外10g中需要设置一个参数,否则logmnr不起作用
ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (PRIMARY KEY,UNIQUE INDEX) COLUMNS;
Select * from v$database来查看是否成功
三、分析
这里可以分析归档日志和在线日志
1、 切换日志
Alter system switch logfile
Select * from v$log where status=’CURRENT‘;查询日志组
Select member from v$logfile where group#=XXX;查看当前文件
2、 创建并添加第一个文件
SQL> exec sys.dbms_logmnr.add_logfile(LogFileName=>'/data/oracle/ORCL/redo01.log',options=>sys.dbms_logmnr.new);
3、分析
exec sys.dbms_logmnr.start_logmnr(options=>sys.dbms_logmnr.dict_from_online_catalog);
4、查看
select username,scn,timestamp,sql_redo from v$logmnr_contents where seg_name='SCOTT';
5、清空内存信息
Exec sys.dbms_logmnr.end_logmnr;
四、说明
1\如果不是sys账户,普通用户需要使用grant execute on dbms_logmnrto user;
2\系统需要在归档模式下
3、 如果不知道具体的包可以查看包内容
SELECT * FROM all_source t
WHERE t.OWNER = UPPER('SYS')
AND t.TYPE = 'PACKAGE BODY'
and t.name like '%LOGMNR%'
order by t.name
或者desc dbms_logmnr
desc dbms_logmnr.start_logmnr;查看参数