ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 安装logminer

安装logminer

原创 Linux操作系统 作者:lijingna128 时间:2010-08-14 15:09:15 0 删除 编辑

 要安装LogMiner工具,必须首先要运行下面这样两个脚本,

创建分析日志文件的DBMS_LOGMNR 包和创建数据库字典文件的DBMS_
LOGMNR_D 包

      @C:\app\Administrator\product\11.1.0\db_1\RDBMS\ADMIN\dbmslm.sql

      @C:\app\Administrator\product\11.1.0\db_1\RDBMS\ADMIN\dbmslmd.sql.

      这两个脚本必须均以SYS用户身份运行。

1.        创建数据字典文件
首先添加参数UTL_FILE_DIR,该参数值为服务器中放置数据.

字典文件的目录: utl_file_dir=C:\app\Administrator\logs

用户:”SYS”

修改参数:

SQL>ALTER SYSTEM SET utl_file_dir=’C:\app\Administrator\logs’

        scope=spfile;

查看参数:

 SQL>SHOW PARAMETER UTL_FILE;

NAME                                 TYPE
------------------------------------ ----------------------
VALUE
------------------------------
utl_file_dir                         string  
C:\app\Administrator\logs       

 重新启动数据库,使新加的参数生效,然后创建数据字典文件:

SQL> execute dbms_logmnr_d.build('LJN.ora','C:\app\Administrator\logs');

 

2.     添加要分析的日志文件

        Logminer可以用来分析在线的重做日志文件和归档日志文件.

       我当前已经是归档模式.

       SQL>archive log list

                数据库日志模式            存档模式
           
自动存档             启用
               
存档终点            USE_DB_RECOVERY_FILE_DEST
           
最早的联机日志序列
     150
           
下一个存档日志序列
   152
           
当前日志序列           152 

        SQL>select member from v$logfile;

          MEMBER
          --------------------------------------------------                     

          C:\APP\ADMINISTRATOR\ORADATA\CNEX\REDO03.LOG
          C:\APP\ADMINISTRATOR\ORADATA\CNEX\REDO02.LOG
          C:\APP\ADMINISTRATOR\ORADATA\CNEX\REDO01.LOG

        (1)添加新的日志文件

                 execute dbms_logmnr.add_logfile ('C:\app\Administrator\oradata\CNEX\REDO01.LOG',dbms_logmnr.new);
       execute dbms_logmnr.add_logfile ('C:\app\Administrator\oradata\CNEX\REDO02.LOG',dbms_logmnr.ADDFILE);
       execute dbms_logmnr.add_logfile ('C:\app\Administrator\oradata\CNEX\REDO03.LOG',dbms_logmnr.ADDFILE);

注意:我这里把所有的日志文件全部加载进去了.这种做法是否有问题.还有没有其他加载日志的方法.

附加: select name,first_time,next_time from v$archived_log where first_time>=to_date('2007-01-19 08:00:00','yyyy-mm-dd hh24:mi:ss');

NAME                                     FIRST_TIME          NEXT_TIME
---------------------------------------- ------------------- -------------------
/oracle/oradata/DW/arc/arc_1_709_5969003 2007-01-19 09:28:41 2007-01-19 13:30:56
06.log

/oracle/oradata/DW/arc/arc_1_710_5969003 2007-01-19 13:30:56 2007-01-19 13:32:40
06.log

这个是我从网上查的,加载日志是这里面的

select group#,sequence#,archived,status,first_time from v$log;

      GROUP#  SEQUENCE# ARC STATUS           FIRST_TIME
---------- ---------- --- ---------------- -------------------
         1        710 YES INACTIVE         2007-01-19 13:30:56
         2        711 NO  CURRENT          2007-01-19 13:32:40
         3        709 YES INACTIVE         2007-01-19 09:28:41

sys@DW> col member for a60
sys@DW> select member from v$logfile where group#=2;

MEMBER
------------------------------------------------------------
/oracle/oradata/DW/redo02a.log
/data1/oradata/DW/redo02b.log

创建了要分析的日志文件,就可以对其进行分析。

3.     进行日志分析

(1)无限制条件

SQL>execute dbms_logmnr.start_logmnr (DictFileName=>'C:\app\Administrator\logs\LJN.ora' );

(2)有限制条件

时间范围:对dbms_logmnr.start_logmnr使用StartTime和EndTime参数

        SCN范围:对dbms_logmnr.start_logmnr使用StartScn和EndScn参数

4.     logMiner进行日志分析

   (1)无限制条件

SQL>execute dbms_logmnr.start_logmnr (DictFileName=>'C:\app\Administrator\logs\LJN.ora' );

查询结果:CREATE TABLE STU(ID INT ,NAME VARCHA2(10))

发现11g里面,竟然会捕捉不到DML的sql了,只有DDL的sql,晕死竟然会捕捉不到DML的sql了

在分析的时候,发现10g里面,竟然会捕捉不到DML的sql了,只有DDL的sql,晕死。谁偷走了我的余额??还是毫无头绪。。。

于是继续google,原来需要预先执行以下2句,来强制记录日志并且增强捕捉。

--alter database add supplemental log data(primary key,unique index)columns;
--alter database force logging;

 

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/17066567/viewspace-670974/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: 面试网址
请登录后发表评论 登录
全部评论

注册时间:2010-04-10

  • 博文量
    57
  • 访问量
    76064