`

oracle工具:浅谈LogMiner的使用

阅读更多

Logminer是每个Dba都应熟悉的工具,当一天由于用户的误操作你需要做不完全的恢复时,由于你无法确定这个操作是哪个时间做的,所以这对你的恢复就带来的很大的难度,丢失的数据也不能完全恢复回来。而LogMiner就可以帮你确定这个误操作的准确时间。

我的测试环境是Aix4.3.3的操作系统,Oracle9.2.0.3的测试库。

一、LogMiner的几点说明
1
LogMiner可以帮你确定在某段时间所发的各种DMLDDL操作的具体时间和SCN号,它所依据的是归档日志文件及联机日志文件。
、它只能在Oracle8i及以后的版本中使用,不过它可以分析Oracle8的日志。
3
Oracle8i只能用于分析DML操作,到Oracle9i则可以分析DDL操作了。
4
LogMiner不支持索引组织表、LongLOB及集合类型。
5
MTS的环境也不能使用LogMiner.

 

二、操作步骤
1
、设定用于LogMiner分析的数据文件存放的位置
 
这是设定utl_file_dir参数的过程,我的示例:
 a
、在initctc.ora文件中加入如下一行
    utl_file_dir=/u01/arch
 b
、得启数据库
   oracle>sqlplus /nolog  
   sql>conn / as sysdba
   sql>shutdown immediate
   sql>statup

2、生成数据字典文件,是通过dbms_logmnr_d.build()来完成。
  SQL> BEGIN
   2     dbms_logmnr_d.build(
   3       dictionary_filename => 'logminer_dict.dat',
   4       dictionary_location => '/u01/arch'
   5     );
   6  END;
   7 /
 
  dictionary_location
指的是Logminer数据字典文件存放的位置,它必须匹配utl_file_dir的设定。
 
其中的dictionary_filename指的是放于存放位置的字典文件的名字,名字可以任意取。

3、建立一个日志分析表
  a
、建立日志分析表数据库必须在mountnomount状态,启动数据库到mount状态。
    sqlplus /nolog
    sql>conn / as sysdba
    sql>shutdown immediate
    sql>starup mount
 
  b
、建立日志分析表,使用dbms_logmnr.add_logfile()
    SQL> BEGIN
     2     dbms_logmnr.add_logfile(
     3       options =>
dbms_logmnr.new,(建一个新的日志分析表)
     4       logfilename => '/u01/arch/arc_ctc_0503.arc'
     5     );
     6  END;
     7 /      
   
其中的options有三种取值,dbms_logmnr.new用于建一个日志分析表;dbms_logmnr.addfile用于加入用于分析的的日志文件;dbms_logmnr.removefile用于移出用于分析的日志文件。
       

4、添加用于分析的日志文件。
    SQL> BEGIN
     2     dbms_logmnr.add_logfile(
     3       options =>
dbms_logmnr.addfile,(加入用于分析的的日志文件)
     4       logfilename => '/u01/arch/arc_ctc_0504.arc'
     5     );
     6  END;
     7 /
 
 
使用则可以把这个文件从日志分析表中移除,从而不进行分析。
    SQL> BEGIN
     2     dbms_logmnr.add_logfile(
     3      options =>
dbms_logmnr.removefile,(移出用于分析的日志文件)
     4      logfilename => '/u01/arch/arc_ctc_0503.arc'
     5     );
     6  END;
     7 /  
    

5、启动LogMiner进行分析。
    SQL> BEGIN
     2     dbms_logmnr.start_logmnr(
     3       dictfilename => '/u01/arch/logminer_dict.dat',
     4       starttime => to_date('20030501 12:15:00','yyyymmdd hh24:mi:ss'),
     5       endtime => to_date('20030501 15:40:30','yyyymmdd hh24:mi:ss')
     6     );
     7  END;
     8 /
   
   
即分析200351这天12:1515:40这段时间,并把分析结果放到数据字典中以用于查询。还有两个参数StartScn(起始scn)EndScn(终止Scn)号。

6、查看日志分析的结果,通过查询v$logmnr_contents可以查询到
  a
、查看DML操作,示例:
    SELECT operation,sql_redo,sql_undo FROM V$logmnr_contents  WHERE seg_name = 'QIUYB';
  
     OPERATION     SQL_REDO                    SQL_UNDO
     ----------    --------------------------  --------------------------
     INSERT        inser into qiuyb.qiuyb ...  delete from qiuyb.qiuyb...
 
   
其中operation指的是操作,sql_redo指的是实际的操作,sql_undo指的是用于取消的相反的操作。
 
  b
、查看DDL操作,示例:
    SELECT timstamp,
           sql_redo
      FROM v$logmnr_contents
     WHERE upper(sql_redo) like '%TRUNCATE%';

7、结束LogMiner的分析。
  SQL>BEGIN
   2     dbms_logmnr.end_logmnr;
   3   end;
   4 /

三、与LogMiner相关的数据字典。
1
v$loglist           它用于显示历史日志文件的一些信息
2
v$logmnr_dictionary logmnr可以有多个字典文件,该视图用于显示这方面信息。
3
v$logmnr_parameters 它用于显示logmnr的参数
4
v$logmnr_logs       它用于显示用于分析的日志列表信息

www.ixdba.net


2
分享到:
评论

相关推荐

    oracle日志分析工具LogMiner使用.

    Oracle 日志分析工具 LogMiner 使用 Oracle 日志分析工具 LogMiner 是 Oracle 数据库中的一种功能强大且灵活的日志分析工具,它可以帮助数据库管理员、开发人员和用户快速地对数据库进行日志分析和问题诊断。下面是...

    oracle日志分析工具LogMiner的使用

    Oracle的日志分析工具LogMiner是Oracle数据库内置的一个强大功能,用于分析数据库的redo logs,以获取关于数据库操作的历史信息。LogMiner可以帮助DBA进行性能优化、故障排查和审计等任务。以下将详细介绍LogMiner的...

    Oracle日志管理logminer使用

    ### Oracle日志管理logminer使用 #### 一、Oracle日志管理概述 Oracle数据库通过日志记录了所有对数据的更改操作,这对于确保数据的一致性和完整性至关重要。Oracle中的日志主要包括重做日志(Redo Logs)和归档...

    oracle日志分析工具LogMiner使用

    ### Oracle日志分析工具LogMiner使用详解 #### 一、概述 Oracle LogMiner是Oracle数据库提供的一个强大工具,用于分析重做日志文件,提取数据库中的更改记录(即SCN序列)。通过LogMiner,我们可以追踪并监控...

    Oracle 9i LogMiner工具使用说明

    ### Oracle 9i LogMiner工具使用说明 #### 一、LogMiner工具概述与用途 Oracle 9i LogMiner工具是一种强大的数据库审计和数据分析工具,主要用于追踪和分析数据库的变更活动。通过分析重做日志文件(Redo Log ...

    新版理解和使用oracle 8i分析工具logminer.doc

    2. 安装LogMiner: 安装LogMiner涉及到运行两个PL/SQL脚本,`dbmslm.sql`和`dbmslmd.sql`,这两个脚本都需要以SYS用户身份执行。前者创建DBMS_LOGMNR包,后者创建DBMS_LOGMNR_D包,后者用于创建数据字典文件。例如...

    Oracle_10g_LogMiner

    Oracle 10g LogMiner 是Oracle数据库的一个内置工具,用于分析数据库的重做日志文件,从而获取关于事务的历史信息、SQL语句及其影响的数据变化。LogMiner 提供了一个方便的方式来审计和理解数据库中发生的变化,而...

    浅谈Oracle日志分析工具LogMiner.pdf

    而Oracle提供的LogMiner工具,是数据库管理员在日常管理工作中不可或缺的一个重要工具。LogMiner工具允许数据库管理员分析重做日志文件,从而对数据库进行恢复、审计和优化。 LogMiner工具的作用非常广泛。首先,它...

    【数据库】Oracle异机logminer日志分析-.docx

    在本文中,我们使用了 Oracle LogMiner 作为日志分析工具,能够便捷地从在线或归档日志中获取内容。 本文介绍了使用 Oracle LogMiner 进行日志分析的方法,并强调了数据库版本、DB NAME 和生成的数据字典的 DBID ...

    Oracle日志分析工具LogMiner的研究.pdf

    "Oracle日志分析工具LogMiner的研究" Oracle日志分析工具LogMiner是Oracle公司提供的一个日志分析工具,旨在帮助数据库管理员快速地分析和解决数据库问题。LogMiner可以读取数据库日志文件,重建数据库操作记录,...

    Oracle 日志挖掘(LogMiner)使用详解

    Logminer依赖于2个包:DBMS_LOGMNR和DBMS_LOGMNR_D,Oracle 11g默认已安装 Logminer 基本使用步骤 <1>. Specify a LogMiner dictionary. 指定Logminer字典 <2>. Specify a list of redo log files for analysis. ...

    理解和使用Oracle 8i分析工具LogMiner

    总的来说,Oracle 8i的LogMiner工具是数据库管理和维护的强大工具,尽管其使用可能需要一定的学习曲线,但其功能的全面性和深度使得它成为数据库分析不可或缺的一部分。掌握LogMiner的使用,可以显著提高数据库问题...

    Oracle_10g_Logminer_研究及测试

    有三种方式提供数据字典给LogMiner: - 直接访问在线数据字典,简单但可能与旧日志不匹配,使用`DBMS_LOGMNR.DICT_FROM_ONLINE_CATALOG`选项。 - 将数据字典导出到文本文件,需要设置`UTL_FILE_DIR`参数,并用`...

    Oracle logMiner

    - **重做日志**:Oracle数据库用来记录所有改变数据库的数据操作,确保在系统故障后能够恢复数据。 - **LogMiner结构**:LogMiner使用V$LOGMNR_CONTENTS视图提供分析结果,它包含了从redo日志中解析出的SQL语句、...

Global site tag (gtag.js) - Google Analytics