Oracle Logminer 简单使用

LogMiner 简介

Oracle 从 8i 以后,支持 LogMiner,可以分析在线,离线,本身数据库,其他数据库的日志文件

主要用途

  1. 跟踪数据库的变化:可以离线的跟踪数据库的变化,而不会影响在线系统的性能。
  2. 回退数据库的变化:回退特定的变化数据,减少 point-in-time recovery 的执行。
  3. 优化和扩容计划:可通过分析日志文件中的数据以分析数据增长模式。

分析方式

  • 无限制条件:分析所有加入到分析列表的日志文件
  • 限制条件:根据限制条件分析指定范围的日志文件

注意事项

  1. logminer 必须使用被分析数据库实例产生的字典文件,而不是安装 logminer 的数据库产生的字典文件,另外必须保证安装 logminer 数据库的字符集和被分析数据库的字符集相同
  2. 被分析数据库平台必须和当前 logminer 所在数据库平台一样
  3. logminer 日志分析工具仅能够分析 Oracle 8 以后的产品

如何使用 LogMiner 分析在线重做日志

第一步,准备工作(安装 LogMiner )

  1. 以 sysdba 登录数据库:sqlplus / as sysdba
  2. 检查是否带有 LogMiner 分析包,没有则运行以下两个 sql 文件:
  • $ORACLE_HOME/rdbms/admin/dbmslm.sql
  • $ORACLE_HOME/rdbms/admin/dbmslmd.sql
  1. 查看 oracle 日志文件
    1
    select * from v$logfile;

第二步,创建数据字典文件

  • 在初始化参数文件 init.ora 中,添加一个参数 UTL_FILE_DIR,该参数值为服务器中放置数据字典文件的目录
    1
    alter system set utl_file_dir='e:\Oracle\logs' scope=spfile;
  • 重启数据库使之生效
  • 创建数据字典文件
    1
    execute dbms_logmnr_d.build(dictionary_filename=> 'dict.ora',dictionary_location=> 'E:\Oracle\logs');

第三步,创建要分析的日志文件列表

  • 创建分析列表
    1
    execute dbms_logmnr.add_logfile(LogFileName=> 'E:\Oracle\oradata\orcl\REDO01.LOG',Options =>dbms_logmnr.new);
  • 添加要分析的日志文件
    1
    2
    execute dbms_logmnr.add_logfile(LogFileName=> 'E:\Oracle\oradata\orcl\REDO02.LOG',Options =>dbms_logmnr.ADDFILE);
    execute dbms_logmnr.add_logfile(LogFileName=> 'E:\Oracle\oradata\orcl\REDO03.LOG',Options =>dbms_logmnr.ADDFILE);

第四步,使用 LogMiner 进行日志分析

1
execute dbms_logmnr.start_logmnr(DictFileName=>'E:\Oracle\logs\dict.ora');

第五步,观察分析结果

1
select sql_redo from v$logmnr_contents where seg_owner='SYSTEM' and seg_name='T_STU'; 
查看评论