使用LogMiner分析Oracle的redo日志和归档(2)

创建数据字典的目的就是让LogMiner引用涉及到内部数据字典中的部分时为他们实际的名字,而不是系统内部的16进制。数据字典文件是一个文本文件,使用包DBMS_LOGMNR_D来创建。如果我们要分析的数据库中的表有变化,影响到库的数据字典也发生变化,这时就需要重新创建该字典文件。另外一种情况是在分析另外一个数据库文件的重作日志时,也必须要重新生成一遍被分析数据库的数据字典文件。

5、确认当前处理联机状态的redo日志

sys@ORCL>select group#,status from v$log;
 
    GROUP# STATUS
---------- ------------------------------------------------
    1 INACTIVE
    2 CURRENT
    3 INACTIVE
sys@ORCL>select group#,member from v$logfile;
 
    GROUP# MEMBER
---------- ----------------------------------------------------------------------------------------------------
    3 /u02/app/oracle/oradata/orcl/redo03.log
    2 /u02/app/oracle/oradata/orcl/redo02.log
    1 /u02/app/oracle/oradata/orcl/redo01.log

可以看出redo02处于current状态

6、加入需要分析的日志

--第一个日志文件使用dbms_logmnr.new
sys@ORCL>exec dbms_logmnr.add_logfile(LOGFILENAME=>'/u02/app/oracle/oradata/orcl/redo02.log',OPTIONS=>dbms_logmnr.new);
 
PL/SQL procedure successfully completed.
--如果需要加入其他的日志使用如下语句
exec dbms_logmnr.add_logfile(LOGFILENAME=>'/u02/app/oracle/oradata/orcl/redo03.log',OPTIONS=>dbms_logmnr.addfile);

7、使用LogMiner进行分析

sys@ORCL>exec dbms_logmnr.start_logmnr(DICTFILENAME=>'/home/oracle/logminer/dictionary.ora');
 
PL/SQL procedure successfully completed.
 
sys@ORCL>col seg_name for a15
sys@ORCL>col seg_owner for a15
sys@ORCL>col operation for a20
sys@ORCL>col sql_redo for a180
sys@ORCL>set linesize 200
sys@ORCL>select seg_owner,seg_name,operation,sql_redo from v$logmnr_contents where seg_owner='ZX' and seg_name='LOG_MINER';
 
SEG_OWNER  SEG_NAME    OPERATION        SQL_REDO
--------------- --------------- -------------------- --------------------------------------------------------------------------------
ZX      LOG_MINER  DDL          create table log_miner (id number,name varchar2(10));
ZX      LOG_MINER  INSERT          insert into "ZX"."LOG_MINER"("ID","NAME") values ('1','zx');
ZX      LOG_MINER  INSERT          insert into "ZX"."LOG_MINER"("ID","NAME") values ('1','lx');
ZX      LOG_MINER  INSERT          insert into "ZX"."LOG_MINER"("ID","NAME") values ('1','xx');

以上为分析在线redo日志的过程,分析归档日志的步骤同样,只是在添加日志文件的时候把在线redo日志换为归档日志即可。归档日志也可以传输到其他数据库服务器上进行数据分析,但分析时需要使用源库的字典文件。

LogMiner使用注意事项:

源库与Mining数据库必须运行在同样的硬件平台上,windows的不可以传到Linux上进行分析

Mining数据库的版本大于等于源库的数据库版本

Mining数据库的字符集需要与源库一致或是源库的超集

参考文档: 

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/290d3345b486ad56a9b3fa6e15dd9a18.html