科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道logminer使用步骤二(分析DML操作)

logminer使用步骤二(分析DML操作)

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

  本步主要用于分析DML操作      分析DML      1.创建要分析的文件列表。

作者:中国IT实验室 来源:中国IT实验室 2007年10月1日

关键字: SQL 数据库 SQL Server

  • 评论
  • 分享微博
  • 分享邮件

  本步主要用于分析DML操作
  
  分析DML
  
  1.创建要分析的文件列表,并将log文件添加到分析列表中
  
  SQL> execute dbms_logmnr.add_logfile (logfilename=>'/oracle/oradata/szdb/archive/1_291.dbf',options=>dbms_logmnr.new);
  
  PL/SQL procedure successfully completed.
  
  SQL> execute dbms_logmnr.add_logfile (logfilename=>'/oracle/oradata/szdb/archive/1_292.dbf',options=>dbms_logmnr.addfile);
  
  PL/SQL procedure successfully completed.
  
  SQL> execute dbms_logmnr.add_logfile (logfilename=>'/oracle/oradata/szdb/archive/1_293.dbf',options=>dbms_logmnr.addfile);
  
  PL/SQL procedure successfully completed.
  
  SQL> execute dbms_logmnr.add_logfile (logfilename=>'/oracle/oradata/szdb/archive/1_294.dbf',options=>dbms_logmnr.addfile);
  
  PL/SQL procedure successfully completed.
  
  #这里的options选项有三个参数可以用:
  NEW - 表示创建一个新的日志文件列表
  ADDFILE - 表示向这个列表中添加日志文件,如下面的例子
  REMOVEFILE - 和addfile相反。
  
  2.执行重做日志分析,分析DML操作
  
  SQL> execute dbms_logmnr.start_logmnr(dictfilename=>'/opt/oraclelog/szdb1.ora');
  
  PL/SQL procedure successfully completed.
  
  SQL> execute dbms_logmnr.start_logmnr(options=>dbms_logmnr.dict_from_online_catalog);
  
  PL/SQL procedure successfully completed.
  
  3.根据指定的用户名、表名、操作进行分析
  
  SQL> select scn,sql_redo from v$logmnr_contents where seg_owner='GAMETEST' and seg_name='ENDUSER' and upper(operation)='UPDATE';
  
      SCN
  ----------
  SQL_REDO
  --------------------------------------------------------------------------------
   139430695
  update "GAMETEST"."ENDUSER" set "USERID" = '123456' where "USERID" = '98077418'
  and ROWID = 'AAAH4fAANAAA4gUAAA';
  
  SQL> select to_char(timestamp,'YYYY-MM-DD HH24:MI:SS') time,sql_redo from v$logmnr_contents where seg_owner='GAMETEST' and seg_name='ENDUSER' and upper(operation)='UPDATE';
  
  TIME
  -------------------
  SQL_REDO
  --------------------------------------------------------------------------------
  2005-07-27 15:27:32
  update "GAMETEST"."ENDUSER" set "USERID" = '123456' where "USERID" = '98077418'
  and ROWID = 'AAAH4fAANAAA4gUAAA';
  
  注意:seg_name='ENDUSER';中的ENDUSER是被update的表名,并且一定要大写,同时update该表的操作一定要已经被数据库归档,如果没有被归档,可以在日志分析前用SQL> Alter System Archive Log Current;手动归档。
  
  4.结束LogMiner会话
  
  SQL> execute dbms_logmnr.end_logmnr;
  
  PL/SQL procedure successfully completed.

查看本文来源

    • 评论
    • 分享微博
    • 分享邮件