设为首页 收藏本站
查看: 697|回复: 0

[经验分享] oracle工具:浅谈LogMiner的使用

[复制链接]

尚未签到

发表于 2016-8-3 08:46:08 | 显示全部楼层 |阅读模式
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

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-252219-1-1.html 上篇帖子: Oracle数据库中序列用法讲解 下篇帖子: oracle学习笔记(第三章:常用函数)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表