精华内容
下载资源
问答
  • LogMiner

    2019-06-09 13:27:06
    · 您是不是在数据库日志问题上而头痛呢?您是不是在苦于没有想到一个方便的解决方法而苦恼呢?本文用举例的形式来讲解使用Logmnr方法分析数据库日志。 一、安装LogMiner工具 (以下两个脚本以SYSDBA身份运行) ...

    · 您是不是在数据库日志问题上而头痛呢?您是不是在苦于没有想到一个方便的解决方法而苦恼呢?本文用举例的形式来讲解使用Logmnr方法分析数据库日志。

    一、安装LogMiner工具

    (以下两个脚本以SYSDBA身份运行)

    @$ORACLE_HOMErdbmsadmindbmslm.sql;

    @ $ORACLE_HOMErdbmsadmindbmslmd.sql;

    第一个脚本用来创建DBMS_LOGMNR包,该包用来分析日志文件。

    第二个脚本用来创建DBMS_LOGMNR_D包,该包用来创建数据字典文件。

    二、使用LogMiner工具

    下面将详细介绍如何使用LogMiner工具。

    1、创建数据字典文件(data-dictionary

    1)首先在init.ora初始化参数文件中,指定数据字典文件的位置,也就是添加一个参数UTL_FILE_DIR,该参数值为服务器中放置数据字典文件的目录。

    如:UTL_FILE_DIR = ($ORACLE_HOMElogs) ,重新启动数据库,使新加的参数生效。

    2)创建数据字典文件:

    SQL> connect /as sysdba

    SQL> execute dbms_logmnr_d.build(dictionary_filename =>

    'dict.ora',dictionary_location => 'G:oraclelogs');

    PL/SQL procedure successfully completed

    2、创建要分析的日志文件列表:

    1)创建分析列表,即所要分析的日志:

    SQL> execute dbms_logmnr.add_logfile(LogFileName =>

    'G:ORACLEORADATAORADBSPREDO04.LOG',Options => dbms_logmnr.new);

    PL/SQL procedure successfully completeds

    2)添加分析日志文件(一次添加1个为宜):

    SQL>

    execute dbms_logmnr.add_logfile(LogFileName =>

    'G:ORACLEORADATAORADBSPREDO05.LOG',

    Options => dbms_logmnr.ADDFILE);

    PL/SQL procedure successfully completed

    · 3、使用logMiner进行日志分析:

    1)无限制条件,即用数据字典文件对要分析的日志文件所有内容做分析:

    SQL> execute dbms_logmnr.start_logmnr

    (DictFileName => 'G:oraclelogsdict.ora');

    PL/SQL procedure successfully completed

    2)带限制条件:

    可以用scn号或时间做限制条件,也可组合使用--分析日志列表中时间从07.02.2810:0015:00的内容。

    SQL> execute dbms_logmnr.start_logmnr

    (startTime => to_date('20070228100000','yyyy-mm-dd hh24:mi:ss'),

    endTime => to_date('20070228150000','yyyy-mm-dd hh24:mi:ss'),

    DictFileName => 'G:oraclelogsdict.ora');

    PL/SQL procedure successfully completed

    dbms_logmnr.start_logmnr函数的原型为:

    PROCEDURE start_logmnr(

    startScn INNUMBER default 0 ,

    endScnINNUMBER default 0,

    startTimeINDATE default '',

    endTime INDATE default '',

    DictFileNameINVARCHAR2 default '',

    Options INBINARY_INTEGER default 0 );

    4、分析释放内存:

    SQL> execute dbms_logmnr.end_logmnr;

    PL/SQL procedure successfully completed

    5、其它:

    1)删除日志分析文件:

    exec dbms_logmnr.add_logfile

    ('G:ORACLEORADATAORADBSPREDO04.LOG',

    dbms_logmnr.removefile);

    · 三、查看LogMiner工具分析结果

    SQL> select * from dict t where t.table_name like '%LOGMNR%';

    --看所有与logmnr相关的视图

    TABLE_NAME COMMENTS

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

    GV$LOGMNR_CALLBACK Synonym for GV_$LOGMNR_CALLBACK

    GV$LOGMNR_CONTENTS Synonym for GV_$LOGMNR_CONTENTS

    GV$LOGMNR_DICTIONARY Synonym for GV_$LOGMNR_DICTIONARY

    GV$LOGMNR_LOGFILESynonym for GV_$LOGMNR_LOGFILE

    GV$LOGMNR_LOGSSynonym for GV_$LOGMNR_LOGS

    GV$LOGMNR_PARAMETERS Synonym for GV_$LOGMNR_PARAMETERS

    GV$LOGMNR_PROCESSSynonym for GV_$LOGMNR_PROCESS

    GV$LOGMNR_REGIONSynonym for GV_$LOGMNR_REGION

    GV$LOGMNR_SESSIONSynonym for GV_$LOGMNR_SESSION

    GV$LOGMNR_STATS Synonym for GV_$LOGMNR_STATS

    GV$LOGMNR_TRANSACTIONSynonym for GV_$LOGMNR_TRANSACTION

    V$LOGMNR_CALLBACKSynonym for V_$LOGMNR_CALLBACK

    V$LOGMNR_CONTENTSSynonym for V_$LOGMNR_CONTENTS

    V$LOGMNR_DICTIONARYSynonym for V_$LOGMNR_DICTIONARY

    V$LOGMNR_LOGFILESynonym for V_$LOGMNR_LOGFILE

    V$LOGMNR_LOGS Synonym for V_$LOGMNR_LOGS

    V$LOGMNR_PARAMETERSSynonym for V_$LOGMNR_PARAMETERS

    V$LOGMNR_PROCESSSynonym for V_$LOGMNR_PROCESS

    V$LOGMNR_REGION Synonym for V_$LOGMNR_REGION

    V$LOGMNR_SESSIONSynonym for V_$LOGMNR_SESSION

    TABLE_NAME COMMENTS

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

    V$LOGMNR_STATSSynonym for V_$LOGMNR_STATS

    V$LOGMNR_TRANSACTION Synonym for V_$LOGMNR_TRANSACTION

    GV$LOGMNR_LOGS 是分析日志列表视图:

    分析结果在GV$LOGMNR_CONTENTS 视图中,可按以下语句查询:

    select scn,timestamp,log_id,seg_owner,seg_type,

    table_space,data_blk#,data_obj#,data_objd#,

    session#,serial#,username,session_info,

    sql_redo,sql_undo from logmnr3 t

    where t.sql_redo like 'create%';

    如果不能正常查询GV$LOGMNR_CONTENTS视图,并报以下错误,ORA-01306: 在从 v$logmnr_contents 中选择之前必须调用 dbms_logmnr.start_logmnr() 可采用如下方法:

    create table logmnr3 as select * from GV$LOGMNR_CONTENTS;

    问题解答:

    创建数据字典的目 : LogMiner引用涉及到内部数据字典中的部分时为他们实际的名字,而不是系统内部的16进制。数据字典文件是一个文本文件,使用包DBMS_LOGMNR_D来创建。如果我们要分析的数据库中的表有变化,影响到库的数据字典也发生变化,这时就需要重新创建该字典文件。另外一种情况是在分析另外一个数据库文件的重作日志时,也必须要重新生成一遍被分析数据库的数据字典文件。 在使用LogMiner工具分析redo log文件之前,可以使用DBMS_LOGMNR_D 包将数据字典导出为一个文本文件。该字典文件是可选的,但是如果没有它,LogMiner解释出来的语句中关于数据字典中的部分(如表名、列名等)和数值都将是16进制的形式,我们是无法直接理解的。例如,下面的SQL语句:

    INSERT INTO dm_dj_swry (rydm, rymc) VALUES (00005, '张三');

    LogMiner解释出来的结果将是下面这个样子:

    insert into Object#308(col#1, col#2)

    values (hextoraw('c30rte567e436'),

    hextoraw('4a6f686e20446f65'));


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

    转载于:http://blog.itpub.net/92530/viewspace-128041/

    展开全文
  • Logminer

    2019-04-30 19:48:06
    使用Logminer来分析重作日志......1. 设立UTL_FILE_DIR参数用来存放数据字典文件;2. 如果系统没有package:dbms_logmnr and dbms_logmnr_d,那么以sys用户来执行dbm...
    使用Logminer来分析重作日志......

    1. 设立UTL_FILE_DIR参数用来存放数据字典文件;

    2. 如果系统没有package:dbms_logmnr and dbms_logmnr_d,

    那么以sys用户来执行dbmslmd.sql文件;

    3. 执行procedure DBMS_LOGMNR_D.BUILD来创建数据字典文件;

    exec dbms_logmnr_d.build('loganalyze.ora','/oracle/database/',
    dbms_logmnr_d.STORE_IN_FLAT_FILE);

    4. 创建日志分析列表

    exec dbms_logmnr.add_logfile(/oracle/database/redo01.log',dbms_logmnr.NEW);

    5. 使用Logminer进行日志分析

    exec dbms_logmnr.start_logmnr(startTime => to_date('2005-09-12 09:30','yyyy-mm-dd hh24:mi'),
    endTime =>to_date('2005-09-12 10:30','yyyy-mm-dd hh24:mi'));

    6. 提取分析结果

    v$logmnr_contents(内容因会话存在而存在);

    LogMiner Recommendations and Restrictions

    Recommendations
    Oracle Corporation recommends that you take the following into consideration when you are using LogMiner:

    All databases should employ an alternate tablespace for LogMiner tables.
    By default all LogMiner tables are created to use the SYSTEM tablespace.
    Use the DBMS_LOGMNR_D.SET_TABLESPACE routine to re-create all LogMiner tables in an alternate tablespace.
    For example, the following statement will re-create all LogMiner tables to use the logmnrts$ tablespace:
    SQL> EXECUTE DBMS_LOGMNR_D.SET_TABLESPACE('logmnrts$');

    See Also:
    Oracle9i Supplied PL/SQL Packages and Types Reference for
    a full description of the DBMS_LOGMNR_D.SET_TABLESPACE routine

    Restrictions
    The following restrictions apply when you are using LogMiner:

    The following are not supported:
    Simple and nested abstract datatypes (ADTs)
    Collections (nested tables and VARRAYs)
    Object Refs
    Index organized tables (IOTs)
    CREATE TABLE AS SELECT of a table with a clustered key
    LogMiner runs only on databases of release 8.1 or higher,
    but you can use it to analyze redo logs from release 8.0 databases.
    However, the information that LogMiner is able to retrieve from a redo log depends on
    the version of the log, not the version of the database in use. For example,
    redo logs for Oracle9i can be augmented to capture additional information when
    supplemental logging is enabled. This allows LogMiner functionality to be used to its fullest advantage.
    Redo logs created with older releases of Oracle will not have that additional data
    and may therefore have limitations on the operations and datatypes supported by LogMiner.

    For example, the following features require that supplemental logging be turned on.
    (Note that in Oracle9i release 9.0.1, supplemental logging was always on
    (it was not available at all in releases prior to 9.0.1). But in release 9.2,
    you must specifically turn on supplemental logging; otherwise it will not be enabled.)

    Support for index clusters, chained rows, and migrated rows (for chained rows, supplemental
    logging is required, regardless of the compatibility level to which the database is set).
    Support for direct-path inserts (also requires that ARCHIVELOG mode be enabled).
    Extracting the data dictionary into the redo logs.
    DDL tracking.
    Generating SQL_REDO and SQL_UNDO with primary key information for updates.
    LONG and LOB datatypes are supported only if supplemental logging is enabled.

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

    转载于:http://blog.itpub.net/45259/viewspace-134893/

    展开全文
  • logminer

    2015-03-06 17:02:16
    logminer实用从程序提供了一种重要的视图来了解数据库中已经发生的改动。 当使用logminer,可以看到已做出的改动(sql_redo)和可以用于还原这些改变的(sql_undo)因此,可查看数据库的历史记录而实际上不会应用...
    ---logminer
    
    logminer实用从程序提供了一种重要的视图来了解数据库中已经发生的改动。
    当使用logminer,可以看到已做出的改动(sql_redo)和可以用于还原这些改变的(sql_undo)因此,可查看数据库的历史记录而实际上不会应用任何重做日志,并可以获得用于还原有问题的事物处理的代码。
    使用logminer可以指出首次出现损坏的事务处理,以便确定将合适的时间点或scn用作数据库恢复的端点。
    为了运行logminer,必须拥有对dbms_logmnr程序包的execute权限或execute_catalog_role角色
    (1)提取数据字典
    logminer需数据字典来完全地翻译重做日志文件内容,并将内部对象标识符和数据类型装换为对象名和外部数据格式
    有3种选择获得logminer使用数据字典
        I:将数据字典信息提取到一个平面文件中
       II:将数据字典提取到重做日志文件中
      III:从当前的数据库中使用联机数据字典
    为了将数据字典提取到平面文件或重做日志文件中,可用dbms _logmnr_d.bulid程序。数据字典文件放置在一个目录中,为了定义目录的位置,使用utl_file_dir.
    utl_file_dir=d:\oracle\ora10\database
    execute dbms_logmnr_D.build('mydb_dictonary.ora','g:\oracle\ora\database',options=>dbms_logmnr_D.stored_in_flat_file);
    (2)分析一个或多个重做日志文件
    为了创建重做日志文件的清单,运行带有NEW选项的DBMS_LOGMNR.ADDFILE
    execute dbms_logmnr.add_logfile(logfilename=>'....redo01.ora', options=>dbms_logmnr.new);
    (3)指定数据字典文件的位置
    execute dbms_logmnr.add_logfile(dictfilename=>'/oracle/ora10/dictionary.ora')
    (4)开始分析重做日志文件
    execute dbms_logmnr.start_logmnr(dictfilename=>'';startscn=>125;endscn=>300;)
    (5)查看重做和取消代码
    select sql_Redo,sql_undo from v$logmnr_contents;
    展开全文

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 5,843
精华内容 2,337
关键字:

logminer