您现在的位置是:首页 >

建立数据库的详细步骤 Oracle数据库LogMiner工具的使用方法

火烧 2022-02-21 01:09:06 1069
Oracle数据库LogMi er工具的使用方法   Logmi er(DBMS_LOGMNR和DBMS_LOGMNR_D) ackage 可以用来分析Oracle的重做日志文件 Logmi er是o

Oracle数据库LogMiner工具的使用方法  

  Logminer(DBMS_LOGMNR和DBMS_LOGMNR_D)package 可以用来分析Oracle的重做日志文件 Logminer是oracle从 i开始提供的工具

  我们可以使用logminer分析其它instance(版本可不一致)的重做日志文件 但是必须遵循以下要求

   LogMiner日志分析工具仅能够分析Oracle 以后的产品

   LogMiner必须使用被分析数据库实例产生的字典文件 且安装LogMiner数据库的字符集必须和被分析数据库的字符集相同

   被分析数据库平台必须和当前LogMiner所在数据库平台一样 且block size相同

  使用logminer

   安装logminer

  要安装LogMiner工具 必须首先要运行下面这样两个脚本          $ORACLE_HOME/rdbms/admin/dbmslm sql        $ORACLE_HOME/rdbms/admin/dbmslmd sql

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

   创建数据字典文件

  首先在init ora初始化参数文件中 添加参数UTL_FILE_DIR 该参数值为服务器中放置数据字典文件的目录 如          UTL_FILE_DIR = (D:Oraclelogs)

  重新启动数据库 使新加的参数生效 然后创建数据字典文件          SQL> EXECUTE dbms_logmnr_d build(        dictionary_filename => logmn_ora dat         dictionary_location => D:Oraclelogs );

  创建数据字典是让LogMiner引用涉及到内部数据字典中的部分时使用对象的名称 而不是系统内部的 进制的ID 如果我们要分析的数据库中的表有变化 影响到库的数据字典也发生变化 就需要重新创建该字典

   添加要分析的日志文件

建立数据库的详细步骤 Oracle数据库LogMiner工具的使用方法

  Logminer可以用来分析在线的重做日志文件和归档日志文件 但是我们一般建议使用归档的日志文件

  a 添加新的日志文件          SQL> EXECUTE dbms_logmnr add_logfile(        LogFileName=> D:databaseoracleoradataora archive ARC Options=>dbms_logmnr new);

  b 添加另外的日志文件到列表          SQL> EXECUTE dbms_logmnr add_logfile(        LogFileName=> D:databaseoracleoradataora archive ARC Options=>dbms_logmnr addfile);

  c 移去一个日志文件          SQL> EXECUTE dbms_logmnr add_logfile(        LogFileName=> D:databaseoracleoradataora archive ARC Options=>dbms_logmnr REMOVEFILE);

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

   进行日志分析          SQL> EXECUTE dbms_logmnr start_logmnr(        DictFileName=> D:Oraclelogs logmn_ora dat );

  可以使用相应的限制条件

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

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

   观察结果

  主要是查询v$logmnr_contents          SQL> desc v$logmnr_contents;

  名称 空? 类型

           SCN NUMBER        TIMESTAMP DATE        THREAD# NUMBER        LOG_ID NUMBER        XIDUSN NUMBER        XIDSLT NUMBER        XIDSQN NUMBER        RBASQN NUMBER        RBABLK NUMBER        RBABYTE NUMBER        UBAFIL NUMBER        UBABLK NUMBER        UBAREC NUMBER        UBASQN NUMBER        ABS_FILE# NUMBER        REL_FILE# NUMBER        DATA_BLK# NUMBER        DATA_OBJ# NUMBER        DATA_OBJD# NUMBER        SEG_OWNER VARCHAR ( )        SEG_NAME VARCHAR ( )        SEG_TYPE NUMBER        SEG_TYPE_NAME VARCHAR ( )        TABLE_SPACE VARCHAR ( )        ROW_ID VARCHAR ( )        SESSION# NUMBER        SERIAL# NUMBER        USERNAME VARCHAR ( )        SESSION_INFO VARCHAR ( )        ROLLBACK NUMBER        OPERATION VARCHAR ( )        SQL_REDO VARCHAR ( )        SQL_UNDO VARCHAR ( )        RS_ID VARCHAR ( )        SSN NUMBER        CSF NUMBER        INFO VARCHAR ( )        STATUS NUMBER        PH _NAME VARCHAR ( )        PH _REDO VARCHAR ( )        PH _UNDO VARCHAR ( )        PH _NAME VARCHAR ( )        PH _REDO VARCHAR ( )        PH _UNDO VARCHAR ( )        PH _NAME VARCHAR ( )        PH _REDO VARCHAR ( )        PH _UNDO VARCHAR ( )        PH _NAME VARCHAR ( )        PH _REDO VARCHAR ( )        PH _UNDO VARCHAR ( )        PH _NAME VARCHAR ( )        PH _REDO VARCHAR ( )        PH _UNDO VARCHAR ( )

  通过字段sql_redo可以得到该日志文件中进行过的sql操作 通过sql_undo可以得到撤销的sql语句

  还可以用这样的sql对日志文件中的所有的操作分类统计          select operation count(*)from v$logmnr_contents group by operation;

  视图v$logmnr_contents中的分析结果仅在我们运行过程 dbms_logmrn start_logmnr 这个会话的生命期中存在 这是因为所有的LogMiner存储都在PGA内存中 所有其他的会话是看不到它的 同时随着会话的结束而清除分析结果

lishixinzhi/Article/program/Oracle/201311/18334  
永远跟党走
  • 如果你觉得本站很棒,可以通过扫码支付打赏哦!

    • 微信收款码
    • 支付宝收款码