码迷,mamicode.com
首页 > 数据库 > 详细

Oracle LogMiner工具在实际工作中的运用

时间:2016-07-30 18:19:04      阅读:194      评论:0      收藏:0      [点我收藏+]

标签:

LogMiner工具通过分析Oracle重作日志文件(归档日志文件)中的具体内容来重现ORACLE执行过的SQL,特别是,该工具可以分析出所有对于数据库操作的DML(insert、update、delete等)语句,另外还可分析得到一些必要的回滚SQL语句。该工具特别适用于调试、审计或者回退某个特定的事务。

  LogMiner分析工具实际上是由一组PL/SQL包和一些动态视图组成,它作为Oracle数据库的一部分来发布,是一个完全免费的工具。但该工具和其他Oracle内建工具相比使用起来显得有些复杂,主要原因是该工具没有提供任何的图形用户界面(GUI)。本文将介绍该工具在实际工作中的使用。

  一、LogMiner的用途

  日志文件中存放着所有进行数据库恢复的数据,记录了针对数据库结构的每一个变化,也就是对数据库操作的所有DML语句。

  LogMiner工具即可以用来分析在线,也可以用来分析离线日志文件,即可以分析本身自己数据库的重作日志文件,也可以用来分析其他数据库的重作日志文件。

  二、使用LogMiner工具

  由于误操作,维护人员对数据库SWT表进行了错误的UPDATE操作,受影响的记录约有近万条。由于备份太旧,无法从备份恢复。下面是使用LogMiner恢复数据的实例:

  1.保护现场,选择恢复办法

  13:30左右从维护人员得知,误操作是在11:00~12:00之间完成的,立即暂停archivelog的备份。检查归档目录中的归档文件时间包涵了以上时间段。

  初步确定用LOGMINER的方法恢复,检查数据库的UTL_FILE_DIR参数,发现参数未初始配置,并且无法动态修改,只能采用ONLINECATALOG的方法分析。

  2.选择归档日志文件

  检查redolog的时间,发现已经超过了误操作发生时间,可以使用归档日志进行分析,检查在/arch01的归档日志时间,选择1_63266.dbf,1_63267.dbf,1_63268.dbf作为分析对象:

  $sqlplus‘/assysdba’

  SQL>EXECUTEdbms_logmnr.add_logfile(-

  LogFileName=>‘‘/arch01/1_63266.dbf‘‘,Options=>dbms_logmnr.new);

  PL/SQLproceduresuccessfullycompleted.

  SQL>EXECUTEdbms_logmnr.add_logfile(-

  LogFileName=>‘‘/arch01/1_63267.dbf‘‘,Options=>dbms_logmnr.addfile);

  PL/SQLproceduresuccessfullycompleted.

  SQL>EXECUTEdbms_logmnr.add_logfile(-

  LogFileName=>‘‘/arch01/1_63268.dbf‘‘,Options=>dbms_logmnr.addfile);

  PL/SQLproceduresuccessfullycompleted.

  3.执行归档文件分析

  SQL>executeDBMS_LOGMNR.START_LOGMNR(-

  options=>dbms_logmnr.dict_from_online_catalog-

  STARTTIME=>to_date(‘‘06-06-200511:00:00‘‘,-

  ‘‘DD-MM-YYYYHH24:MI:SS‘‘),-

  ENDTIME=>to_date(‘‘06-06-200512:00:00‘‘,-

  ‘‘DD-MM-YYYYHH24:MI:SS‘‘));

  PL/SQLproceduresuccessfullycompleted.

  4.生成undo脚本

  SQL>setlinesize800

  SQL>setpagesize2000

  SQL>setheadoff

  SQL>spool/arch01/undosql.sql.0606

  SQL>selectsql_undofromv$logmnr_contentswhereseg_name
=‘‘SWT‘‘ANDUSERNAME=‘‘MODI‘‘;

  SQL>executeDBMS_LOGMNR.end_logmnr();

  SQL>spooloff

  5.分析undo脚本,执行undo脚本。

  6.验证undo脚本执行后的业务运行情况。

  三、总结

  通过以上恢复,避免了以前只能通过恢复整个表空间来恢复其中的一个表,大大缩短了业务受影响时间和影响范围。

Oracle LogMiner工具在实际工作中的运用

标签:

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

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