logminer

LogMiner是Oracle数据库提供的一个工具,它用于分析重做日志和归档日志所记载的事务操作。

  一、确定数据库的逻辑损坏时间。假定某个用户执行drop table误删除了重要表sales,通过

  LogMiner可以准确定位该误操作的执行时间和SCN值,然后通过基于时间恢复或者基于SCN恢复可以完全恢复该表数据。

  二、确定事务级要执行的精细逻辑恢复操作。假定某些用户在某表上执行了一系列DML操作并提

  交了事务,并且其中某个用户的DML操作存在错误。通过LogMiner可以取得任何用户的DML操作及相应的UNDO操作,通过执行UNDO操作可以取消用户的错误操作。

  三、执行后续审计。通过LogMiner可以跟踪Oracle数据库的所有DML、DDL和DCL操作,从而取得

  执行这些操作的时间顺序、执行这些操作的用户等信息。

  1、LogMiner基本对象

  源数据库(source database):该数据库是指包含了要分析重做日志和归档日志的产品数据库。

  分析数据库(mining database):该数据库是指执行LogMiner操作所要使用的数据库。        LogMiner字典:LogMiner字典用于将内部对象ID号和数据类型转换为对象名和外部数据格式。使用LogMiner分析重做日志和归档日志时,应该生成LogMiner字典,否则将无法读懂分析结果。

  2、LogMiner配置要求

  (1)源数据库和分析数据库 (源数据库和分析数据库可以是同一个数据库)

  源数据库和分析数据库必须运行在相同硬件平台上;

  分析数据库可以是独立数据库或源数据库;

  分析数据库的版本不能低于源数据库的版本;

  分析数据库与源数据库必须具有相同的字符集。

关键字: 分层查询 函数 触发器语法 Oracle物化视图 跟踪sql语句

本文详细介绍使用Logminer工具分析DML和DDL操作(一)

  (2)LogMiner字典:LogMiner字典必须在源数据库中生成。

  (3)重做日志文件

  当分析多个重做日志和归档日志时,它们必须是同一个源数据库的重做日志和归档日志;

  当分析多个重做日志和归档日志时,它们必须具有相同的resetlogs scn;

  当分析的重做日志和归档日志必须在Oracle8.0版本以上。

  3、补充日志(suppplemental logging)

  重做日志用于实现例程恢复和介质恢复,这些操作所需要的数据被自动记录在重做日志中。但是,重做应用可能还需要记载其他列信息到重做日志中,记录其他列的日志过程被称为补充日志。

  默认情况下,Oracle数据库没有提供任何补充日志,从而导致默认情况下LogMiner无法支持以下特征:

  索引簇、链行和迁移行;

  直接路径插入;

  摘取LogMiner字典到重做日志;

  跟踪DDL;

  生成键列的SQL_REDO和SQL_UNDO信息;

  LONG和LOB数据类型。

  因此,为了充分利用LogMiner提供的特征,必须激活补充日志。在数据库级激活补充日志的示例如下:

  SQL> conn /as sysdba

  已连接。

  SQL> alter database add supplemental log data;

  数据库已更改。

  注意:这激活不用重启数据库,数据库联机即可。

  4、LogMiner支持的数据类型和表存储属性

char、nchar、varchar2、varchar、nvarchar2;
number;
date、timestamp、timestampwithtimezone、timestampwithlocaltimezone;
intervalyeartomonth、intervaldaytosecond;
raw;
clob、nclob、blob;
long、longraw;
binary_float、binary_double;

  函数索引;

关键字: 分层查询 函数 触发器语法 Oracle物化视图 跟踪sql语句

本文详细介绍使用Logminer工具分析DML和DDL操作(一)

  没有lob列的索引组织表(IOT)。

  5、LogMiner不支持的数据类型和表存储属性

  bfile;

  抽象数据类型;

  集合类型(嵌套表和varray);

  参照对象;

  xmltype;

  具有LOB列的索引组织表;

  使用compress特征的表。

  提供LogMiner字典有3种选项:

  1、使用源数据库数据字典(Online Catalog)

  使用源数据库分析重做日志或归档日志时,如果要分析表的结构没有发生任何变化,Oracle建议使用该选项分析重做日志和归档日志。为了使LogMiner使用当前数据库的数据字典,启动LogMiner时应执行如下操作:

SQL>executedbms_logmnr.start_logmnr
(options=>dbms_logmnr.dict_from_online_catalog);

  需要注意,dbms_logmnr.dict_from_online_catalog要求数据库必须处于open状态,并且该选项只能用于跟踪DML操作,而不能用于跟踪DDL操作。(本人一般用这种查DML操作)

  2、摘取LogMiner字典到重做日志

  使用分析数据库分析重做日志或归档日志,或者被分析表的结构发生改变时,Oracle建议使用该选项分析重做日志和归档日志。为了摘取LogMiner字典到重做日志,要求源数据库必须处于

  archivelog模式,并且该数据库处于open状态。示例如下:

  SQL> execute dbms_logmnr_d.build(options=>dbms_logmnr_d.store_in_redo_logs);

  (本人比较少用这种方式)

  3、摘取LogMiner字典到字典文件

  字典文件用于存放对象ID号和对象名信息,该选项是为了与早期版本兼容而保留的。需要注意,

  使用字典文件分析重做日志时,如果要分析新建的对象。必须重新建立字典文件。如下所示:

  SQL> execute dbms_logmnr_d.build

  ('dict.ora','d:demo',dbms_logmnr_d.store_in_flat_file);

  (本人一般用这种方式来查DDL的操作记录,如数据库没有配置utl_file_dir参数,需要配置后

  需要重启数据库)

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/24217871/viewspace-674644/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/24217871/viewspace-674644/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值