Oracle中用LogMiner分析重做及归档日志2

来源:百度文库 编辑:神马文学网 时间:2024/04/28 05:32:47
二、建立字典文件
字典文件用于存放表及对象ID号之间的对应关系。当使用字典文件时,它会在表名和对象ID号之间建立一一对应的关系。因此需要注意,如果用户建立了新表之后,并且将来可能会对该表进行日志分析,那么就需要重新建立字典文件,以将其对象名及对象ID号存放到字典文件中。
1.修改参数文件,添加参数:UTL_FILE_DIR=C:\Oracle\phj\logmnr
目录logmnr必须事先手工建立,该目录用于存放产生的字典文件,目录名称可以自定。
2.重新启动数据库
sqlplus internal/oracle@phj      shutdown immediate      startup pfile=%Oracle_Home%\database\initphj.ora
3.建立字典文件
BEGIN       dbms_logmnr_d.build(       dictionary_filename=>’dict.ora’,       dictionary_location=>’c:\oracle\phj\logmnr’);      END;      /
注意:参数dictionary_filename用以指定字典文件的文件名;参数 dictionary_location用于指定存放字典文件所在的目录,该目录必须与初始化参数UTL_FILE_DIR的值一致。如果指定的字典文件名dict.ora已经存在,则应在执行此操作前将其彻底删除(从垃圾箱中删除),否则执行该过程将失败。
三、建立日志分析列表
建立日志分析列表必须在MOUNT或NOMOUNT状态下完成。
1.停止并装载数据库
sqlplus internal/oracle@phj      shutdown immediate      startup mount pfile=%Oracle_Home%\database\initphj.ora
2.建立日志分析列表
在“生成归档日志”的操作中已经生成了三个连续的归档日志文件,为便于分析我们重新复制这三个归档日志文件并分别命名为:test1.arc、test2.arc、test3.arc。通过以下操作建立日志分析列表:
BEGIN      dbms_logmnr.add_logfile(      options=>dbms_logmnr.new,       logfilename=>’c:\oracle\phj\archive\test1.arc’);       END;      /
3.增加其它欲进行分析的日志文件
BEGIN      dbms_logmnr.add_logfile(      options=>dbms_logmnr.addfile,       logfilename=>’c:\oracle\phj\ archive \test2.arc’);       END;      /
用同样的方法将归档日志文件test3.arc增加到日志分析列表中。可以通过动态性能视图v$logmnr_logs查看日志分析列表中有哪些待分析的日志文件。
SQL> select filename from v$logmnr_logs;      FILENAME      ----------------------------------------      c:\oracle\phj\archive\test1.arc      c:\oracle\phj\archive\test2.arc      c:\oracle\phj\archive\test3.arc
四、启动LogMiner执行分析
1.分析重做日志和归档日志
BEGIN      dbms_logmnr.start_logmnr(      dictfilename=>’c:\oracle\phj\logmnr\dict.ora’,       starttime=>to_date(’2003-02-10:10:05:00’,’YYYY-MM-DD:HH24:MI:SS’),       endtime=>to_date(’2003-02-10:10:17:00’,’YYYY-MM-DD:HH24:MI:SS’)      );       END;      /
注意:此过程能否执行成功的关键是给出的starttime(起始时间)和endtime(终止时间)应在一个有效的范围内。特别是终止时间,应小于或等于归档日志的建立时间;如果大于归档日志的建立时间,则不能执行分析过程。分析多个归档日志时,这些归档日志最好是连续的。
2.查看日志分析结果
上面对日志进行分析的结果存放在动态性能视图v$logmnr_contents中,通过查询该动态性能视图可以取得所有DML以及其反操作。
SQL> select operation,sql_redo,sql_undo      2 from v$logmnr_contents      3 where seg_name='TMP';      OPERATION SQL_REDO SQL_UNDO      ----------- --------------------- --------------------------      INSERT insert into SYS.TMP…… delete from SYS.TMP ……      UPDATE update SYS.TMP set NO …… update SYS.TMP set ……      DELETE delete from SYS.TMP …… insert into SYS.TMP ……
根据需要可以从动态性能视图v$logmnr_contents中获取更多的有用信息,限于篇幅此不赘述。对重做日志进行分析的方法与对归档日志分析的方法一样,只是在建立日志分析列表时,需将重做日志文件添加到日志分析列表中。