Logmnr 用法介绍及其注意事项(ORAITeye - 千亿集团

Logmnr 用法介绍及其注意事项(ORAITeye

2019-01-12 13:01:11 | 作者: 绿蕊 | 标签: 剖析,文件,日志 | 浏览: 1010

Logmnr 用法介绍及其留意事项

转载请注明出处:http://blog.csdn.net/xiaofan23z

Environment:linux +oracle10g two nodes rac

一、           装置LogMiner东西,以下两个脚本以SYSDBA身份运转

 

SQL  @$ORACLE_HOME/rdbms/admin/dbmslm.sql;

Package created.

Grant succeeded.

##创立DBMS_LOGMNR包,该包用来剖析日志文件。

SQL  @$ORACLE_HOME/rdbms/admin/dbmslmd.sql;

Package created.

##创立DBMS_LOGMNR_D包,该包用来创立数据字典文件。

二、           运用LogMiner东西  

 下面将具体介绍怎么运用LogMiner东西。 

 1、创立数据字典文件(data-dictionary)  
  1).首先在init.ora初始化参数文件中,指定数据字典文件的方位,也就是增加一个参数 UTL_FILE_DIR,该参数值为服务器中放置数据字典文件的目录。如:  UTL_FILE_DIR = ($ORACLE_HOME\logs) ,重新启动数据库,使新加的参数收效:

SQL  shutdown immediate;

Database closed.

Database dismounted.

ORACLE instance shutdown.

SQL  startup mount

ORACLE instancestarted.

 

Total System GlobalArea  922746880 bytes

Fixed Size                  1222624 bytes

Variable Size             209717280 bytes

DatabaseBuffers          704643072 bytes

Redo Buffers                7163904 bytes

Database mounted.

SQL  alter system setutl_file_dir=/u01/app/oracle/product/10.2.0/db_1/log scope=spfile;

System altered.

SQL  shutdown immediate

ORA-01109: databasenot open

Database dismounted.

ORACLE instance shutdown.

SQL                   

SQL  startup mount

ORACLE instancestarted.

 

Total System GlobalArea  922746880 bytes

Fixed Size                  1222624 bytes

Variable Size             209717280 bytes

DatabaseBuffers          704643072 bytes

Redo Buffers                7163904 bytes

Database mounted.

SQL

SQL  show parameter utl

 

NAME                                 TYPE        VALUE

----------------------------------------------- ------------------------------

create_stored_outlines               string

utl_file_dir                         string      /u01/app/oracle/product/10.2.0

                                                /db_1/log

SQL

SQL  alter database open;

Database altered.

SQL

 

        Ps: LogMiner uses a dictionary file, which is a special file that 
               indicates the database that created it as well as the time the file was 
               created. The dictionary file is not required, but is recommended. Without a 
               dictionary file, the equivalent SQL statements will use Oracle internal object 
               IDs for the object name and present column values as hex data.

也能够不运用数据字典,可是oracle引荐运用。

From :How to Setup LogMiner [ID 111886.1]

转载请注明出处:http://blog.csdn.net/xiaofan23z

 

2). 然后创立数据字典文件

SQL  execute dbms_logmnr_d.build(dictionary_filename = dict.ora,dictionary_location = /u01/app/oracle/product/10.2.0/db_1/log);

PL/SQL procedure successfully completed.

2. 创立要剖析的日志文件列表  

  1).创立剖析列表,即所要剖析的日志

 SQL  executedbms_logmnr.add_logfile(LogFileName = +DATA/ldbrac/onlinelog/group_3.266.732154759,Options = dbms_logmnr.new); ##依据时刻点或许在v$log,v$archived_log中查询出要剖析的log

 

PL/SQL procedure successfully completed.

 

###为了验证作用 删去一个表然后切换log

droptable askey_id;

SQL  alter system switch logfile;

System altered.

将切换的log 加入到剖析列表

SQL  execute dbms_logmnr.add_logfile(LogFileName = +DATA/ldbrac/onlinelog/group_2.262.732154617,Options = dbms_logmnr.ADDFILE);

 

PL/SQL procedure successfully completed.

 

Alert log中会有如下信息显现

Sat Apr 21 11:35:192012

LOGMINER: Beginmining logfile: +DATA/ldbrac/onlinelog/group_2.262.732154617

Sat Apr 21 11:35:192012

LOGMINER: Begin mining logfile:+DATA/ldbrac/onlinelog/group_3.266.732154759

 

3、运用logMiner进行日志剖析 

   1).无约束条件,即用数据字典文件对要剖析的日志文件一切内容做剖析 
     SQL  executedbms_logmnr.start_logmnr(DictFileName =      /u01/app/oracle/product/10.2.0/db_1/log/dict.ora);

PL/SQL procedure successfully completed.


      
         2).带约束条件,能够用scn号或时刻做约束条件,也可组合运用 
             --剖析日志列表中时刻从20120420从10:00到13:00的内容 
SQL execute dbms_logmnr.start_logmnr(startTime = to_date(20120421100000,yyyy-mm-dd hh24:mi:ss),endTime = to_date(20120421130000,yyyy-mm-dd hh24:mi:ss),DictFileName = /u01/app/oracle/product/10.2.0/db_1/log/dict01.ora);


    PL/SQL procedure successfully completed 

  dbms_logmnr.start_logmnr函数的原型为: 
  PROCEDURE start_logmnr( 
     startScn           IN  NUMBER default 0 ,
     endScn IN  NUMBER default 0, 
     startTime      IN  DATE default , 
     endTime        IN  DATE default , 
     DictFileName    IN  VARCHAR2 default , 
     OptionsIN  BINARY_INTEGER default 0 ); 

4.剖析数据  

V$LOGMNR_LOGS 是剖析日志列表视图

剖析成果在GV$LOGMNR_CONTENTS 视图中

依据条件查询剖析成果

SQL   select* from V$LOGMNR_CONTENTSwhere sql_redolikedrop%;

 

      SCN       CSCN TIMESTAMPCOMMIT_TI    THREAD#     LOG_ID    XIDUSN

---------- ---------- --------- ------------------- ---------- ----------

   XIDSLT     XIDSQN    PXIDUSN   PXIDSLT    PXIDSQN     RBASQN    RBABLK

---------- ---------- ---------- -------------------- ---------- ----------

  RBABYTE     UBAFIL     UBABLK    UBAREC     UBASQN  ABS_FILE# REL_FILE#

 

 

 

运用logminer查询表v$logmnr_contents必须在同一个会话中进行,由于剖析的那些
信息存储在这个session 的PGA中,在其他session里边是查不到的。

如果在其他session中视图查询这个视图得到如下过错

SQL select * from V$LOGMNR_CONTENTS;

select* from V$LOGMNR_CONTENTS

ERRORat line 1:

ORA-01306: dbms_logmnr.start_logmnr() must be invoked before selectingfrom

v$logmnr_contents
视图v$logmnr_contents中的剖析成果仅在咱们运转进程dbms_logmrn.start_logmnr这个
会话的生命期中存在。这是由于一切的LogMiner存储都在PGA内存中,一切其他的进程是看
不到它的,一起跟着进程的完毕,剖析成果也随之消失。 最终,运用进程DBMS_LOGMNR.END_LOGMNR
停止日志剖析业务,此刻PGA内存区域被铲除,剖析成果也随之不再存在。

 

能够创立暂时表处理这个问题

SQL create table logmnr_tab1 as select  *from V$LOGMNR_CONTENTS;

Tablecreated.

SQL

 

然后在暂时表中剖析

 

 

 

selectscn,timestamp,log_id,seg_owner,seg_name,table_name,seg_type_name,operation,sql_redo 

fromsys.logmnr_tab1where sql_redolikedrop%;

依据条件查询特定的DDL/DML操作

 

 

5.剖析后开释内存

 SQL  execute dbms_logmnr.end_logmnr; 

   PL/SQL procedure successfully completed 

6.其它 
   1).删去日志剖析文件 
   exec dbms_logmnr.add_logfile(+DATA/ldbrac/onlinelog/group_2.262.732154617,dbms_logmnr.removefile);

留意:

 

    BEGIN

        DBMS_LOGMNR.REMOVE_LOGFILE(LOGFILENAME= /oracle/logs/log2.f);

    END;

    /

更多信息请检查

版权声明
本文来源于网络,版权归原作者所有,其内容与观点不代表千亿集团立场。转载文章仅为传播更有价值的信息,如采编人员采编有误或者版权原因,请与我们联系,我们核实后立即修改或删除。

猜您喜欢的文章