gdufo

 

logminer的安装配置使用

logminer的安装配置使用
安装
环境:linux AS5,oracle 11gR2

2.添加补充日志

如果数据库需要使用logminer,就应该添加,只有添加这个日志之后的才能捕获DML
ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (PRIMARY KEY, UNIQUE INDEX) COLUMNS;

3.开启归档(对logminer来说不是必须)
alter system set log_Archive_dest_1='/opt/oracle/flash_recovery_area' scope=both;
shutdown immediate
startup mount
alter database archivelog;
alter database open;


创建DBMS_LOGMNR包
SQL>@?/rdbms/admin/dbmslm.sql

创建相关数据字典
SQL>@?/rdbms/admin/dbmslmd.sql

修改初始化参数UTL_FILE_DIR,指定分析数据的存放处
SQL>alter system set UTL_FILE_DIR='/opt/oracle/oradata/logminer' scope=spfile;

重启数据库
SQL>shutdown immediate
SQL>startup


SQL> show parameter utl;

NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
create_stored_outlines string
utl_file_dir string /opt/oracle/oradata/logminer

生成字典信息文件:

SQL> execute dbms_logmnr_d.build(dictionary_filename=>'/opt/oracle/oradata/logminer/sqltrace.ora',dictionary_location=>'/opt/oracle/oradata/logminer');

PL/SQL 过程已成功完成。
查当前日志组
SQL>select Group#, Status from v$log;

    GROUP# STATUS
---------- ----------------
         1 INACTIVE
         2 CURRENT
         3 INACTIVE

SQL>select Group#, MEMBER from v$logfile;

    GROUP# MEMBER
---------- ----------------------------------------
         3 /opt/oracle/oradata/orcl/redo03.log
         2 /opt/oracle/oradata/orcl/redo02.log
         1 /opt/oracle/oradata/orcl/redo01.log
        
添加需要分析的日志文件(在线日志)
SQL> execute dbms_logmnr.add_logfile(options=>dbms_logmnr.new,logfilename=>'/opt/oracle/oradata/orcl/redo02.log');

#归档日志
execute dbms_logmnr.add_logfile(options=>dbms_logmnr.new,logfilename=>'/opt/oracle/oradata/logminer/1_6356_704818301.dbf');
PL/SQL 过程已成功完成。
SQL> execute dbms_logmnr.add_logfile(options=>dbms_logmnr.addfile,logfilename=>'opt/oracle/oradata/orcl/redo03.log');

PL/SQL 过程已成功完成。
options选项有三个参数可选:
NEW - 表示创建一个新的日志文件列表
ADDFILE - 表示向这个列表中添加日志文件
REMOVEFILE - 和addfile相反。


开始分析
SQL> execute dbms_logmnr.start_logmnr(dictfilename=>'/opt/oracle/oradata/logminer/sqltrace.ora');

#设置 STARTTIME / ENDTIME
SQL>execute dbms_logmnr.start_logmnr(dictfilename=>'/u01/app/oracle/logminer/sqltrace.ora',starttime => to_date('2012/11/01-08:00:00','yyyy/mm/dd-hh24:mi:ss'),endtime => to_date('2012/11/02-12:30:00','yyyy/mm/dd-hh24:mi:ss'));


#也可以设置不用数据字典,只是看不到解释过来,没有意义了。
begin
  dbms_logmnr.start_logmnr(starttime => to_date('2012/09/29-08:55:00','yyyy/mm/dd-hh24:mi:ss'),
  endtime => to_date('2012/09/29-15:30:00','yyyy/mm/dd-hh24:mi:ss')
);
PL/SQL 过程已成功完成。
dbms_logmnr.start_logmnr()过程还有其它几个用于定义分析日志时间/SCN窗口的参数,它们分别是:
STARTSCN / ENDSCN - 定义分析的起始/结束SCN号,
STARTTIME / ENDTIME - 定义分析的起始/结束时间。

查询分析的日志文件包含的scn范围和日期范围。
SQL> select low_time,high_time,low_scn,next_scn from v$logmnr_logs;

LOW_TIME HIGH_TIME LOW_SCN NEXT_SCN
-------------- -------------- ---------- ----------
08-8月 -07 08-8月 -07 626540 637998
08-8月 -07 01-1月 -88 637998 2.8147E+14

SQL> create table ELLINGTON.log_content NOLOGGING Tablespace Users as select timestamp,sql_redo,sql_undo,USERNAME,OS_USERNAME,MACHINE_NAME from v$logmnr_contents;
将内容复制到一张表中查询并指定存储表空间,desc v$logmnr_contents

结束分析

SQL> execute dbms_logmnr.end_logmnr;

结束后视图v$logmnr_contents中的分析结果也不再存在,关闭sqlplus自动结束。
注意:1. LogMiner必须使用被分析数据库实例产生的字典文件,而不是安装LogMiner的数据库产生的字典文件,另外必须保证安装LogMiner数据库的字符集和被分析数据库的字符集相同。
    2. 被分析数据库平台必须和当前LogMiner所在数据库平台一样,也就是说如果我们要分析的文件是由运行在UNIX平台上的Oracle 8i产生的,那么也必须在一个运行在UNIX平台上的Oracle实例上运行LogMiner,而不能在其他如Microsoft NT上运行LogMiner。当然两者的硬件条件不一定要求完全一样。
      3. 生产库的归档日志拿到测试机上来分析,虽然可以分析,但是由于db_id不同,不能使用数据字典,也就看不到翻译过的语句(16进制的东西)

posted on 2012-10-25 20:12 gdufo 阅读(637) 评论(0)  编辑  收藏 所属分类: Database (oracle, sqlser,MYSQL)


只有注册用户登录后才能发表评论。


网站导航:
 

导航

统计

常用链接

留言簿(6)

随笔分类

随笔档案

文章分类

文章档案

收藏夹

Hibernate

友情链接

搜索

最新评论

阅读排行榜

评论排行榜