码迷,mamicode.com
首页 > 其他好文 > 详细

如何使用Logminer来分析具体的DML操作日志

时间:2016-07-30 18:17:25      阅读:137      评论:0      收藏:0      [点我收藏+]

标签:

如何使用Logminer来分析具体的DML操作日志
Oracle数据库维护中,常常需要分析原来数据库都做了哪些删除、更新、增加数据的操作,所以一般需要用到Logminer这工具来分析归档日志。
环境:AIX5.3+Oracle10.2.0.1   使用IBM的Tivoli Storage Manager把数据库数据、归档日志备份到带库中

1、确定具体时间的DML操作,把相应的归档日志从带库恢复到数据库中
2、用Logminer来分析相应的归档日志

一.在sqlplus用sys超级用户登陆数据库中,然后把当前的时间改成‘yyyy-mm-dd hh24:mi:ss‘格式,这样可以看清楚归档日志的起始时间:
SQL>alter session set nls_date_format=‘yyyy-mm-dd hh24:mi:ss‘;

二、v$log_history视图的sequence#为归档日志序列号,first_time为该归档日志的开始时间。
SQL>select sequence#,first_time from v$log_history;
记下某天的归档日志序列,比如为3988--4000

三、用rman target/  进入数据库,把相应的归档日志从带库取到数据库中来,/oracle/oms/oradata/temp目录为放归档日志的目录。

RUN
{
  SET ARCHIVELOG DESTINATION TO ‘/oracle/oms/oradata/temp‘;
  RESTORE ARCHIVELOG SEQUENCE 3988;        
}

 

注:导出多个归档日志:

RUN
{
  SET ARCHIVELOG DESTINATION TO ‘/oracle/oms/oradata/temp‘;
  RESTORE ARCHIVELOG SEQUENCE  between 2895 and 2897;       
}

注:3988为归档日志的序列号,有多个日志,需要运行多个上面的语句。


四、建立日志分析列表,把第一个归档日志放到分析列表
SQL>execute dbms_logmnr.add_logfile(logfilename=>‘/oracle/oms/oradata/temp/1_3988_644336885.dbf‘,options=>dbms_logmnr.new);

五、把第二个归档日志放到分析列表(第二个归档日志以后都是下面的格式)
SQL>execute dbms_logmnr.add_logfile(logfilename=>‘/oracle/oms/oradata/temp/1_3989_644336885.dbf‘,options=>dbms_logmnr.addfile);


六、启动LogMiner
SQL> execute dbms_logmnr.start_logmnr(options=>dbms_logmnr.dict_from_online_catalog);

七、把分析出来的数据放在logminer_test表中,这样方便查询。因为表v$logmnr_contents的数据量很大,选择一个空闲的表空间
SQL>
create table logminer_test tablespace MLOG_NORM_SPACE
as
select   *   from  v$logmnr_contents;

八、把分析日志表logminer_test的查询权限赋予给lhomsread只读的数据库用户,这样使用第三方工具很方便查询(plsql等):
SQL>grant  select  on  logminer_test to  lhomsread;

九、结束logminer
SQL> execute dbms_logmnr.end_logmnr;

如何使用Logminer来分析具体的DML操作日志

标签:

原文地址:http://www.cnblogs.com/andy6/p/5721165.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!