(建立directory用来加一些log file 到directroy里面然后用logmnr对directory来分析而且directory里面记录的是log file 得位置等信息
则对directroy地分析也就是对log fie 地分析)
A.修改initfile 指定UTL_FILE_DIR=d:oracleadminsidCDUMP
2.restartup db
3.create directory file(execute dbms_logmnr_d.build)
sql>desc dbms_logmnr
提示error ora-24372无效的描述对象
处理
sql>start d:oracleora92rdbmsadmincatproc.sql(重新建立一下标准数据包)
创建完后
sql>desc dbms_logmnr看见有值
sql>desc dbms_logmnr_d也有值
在做下面步骤之前先做
sql>update scott.emp set emp=king where test=***
sql>delete scott.emp等等模拟对db所作的改变
sql>commit
这些改变都记录在当前日志组里
sql>select * from v$log;
可见current 日志组为我们要用到的
sql>execute dbms_logmnr_d.build('siddict.ora','d:oracleadminsidCDUMP');(即initfile里面指定
UTL_FILE_DIR=d:oracleadminsidCDUMP的路径)
一旦这个存储过程完成后会在d:oracleadminsidCDUMP建立目录文件
4.add/remove log file to directory (dbms_logmnr.add_logfile,dbms_logmnr.remove_logfile)
sql>desc dbms_logmnr
sql>execute dbms_logmnr.add_logfile('d:oracleoradatasidredo0*.log',dbms_logmnr.newfile);(就是第三步在update and delete 后
select * from v$log时出现的current 得logfile),
如果还有其他的log file 需要add 的话就直接重复上面动作只是修改redo0*.log就可以了)
如
sql>execute dbms_logmnr.add_logfile('d:oracleoradatasidredo05.log',dbms_logmnr.newfile);
5.start logmnr
dbms_logmnr.start_logmnr
sql>execute dbms_logmnr.start_logmnr(dictfilename=>'d:oracleadminsidcdumpsiddict.ora');(从desc dbms_logmnr的procedure
start_logmnr的参数名称可见要传入的值)
6.select v$logmnr_content(注意sqlredo/sqlundo两个栏位)