LogMiner 是ORACLE 数据库所提供的一个工具,它用于分析重做日志和归档日志所记载的事务操作。LogMiner 提供了以下一些关键特征:确定数据库的逻辑损坏时间。 确定事务级要执行的精细逻辑恢复操作。本文通过实际操作实例来讲解 logminer的实战技巧。 ### LogMiner的使用 #### 一、LogMiner简介 **LogMiner**是Oracle数据库提供的一种强大工具,主要用于分析重做日志文件(在线重做日志和归档重做日志),以获取数据库中发生的事务详情。这对于进行数据库逻辑恢复、审计以及历史数据分析等方面非常有用。 ##### 1.1 LogMiner基本对象 - **源数据库(Source Database)**: 这个数据库包含了待分析的重做日志和归档日志。它是实际业务数据所在的地方。 - **分析数据库(Mining Database)**: 用来执行LogMiner操作的数据库。它可以是独立的数据库,也可以与源数据库相同。 - **LogMiner字典**: 用于将内部对象ID号转换为对象名称和外部数据格式。这是LogMiner正常工作的重要组成部分。 ##### 1.2 LogMiner配置需求 - **源数据库和分析数据库**: - 必须运行在相同的硬件平台上。 - 分析数据库可以独立存在,也可以与源数据库共存。 - 分析数据库的版本不能低于源数据库的版本。 - 字符集必须相同。 - **LogMiner字典**: - 必须在源数据库中生成。 - **重做日志文件**: - 要分析的重做日志或归档日志必须来自同一个源数据库。 - 必须具有相同的`RESETLOGS SCN`。 - 需要是Oracle 8.0或更高版本的重做日志。 ##### 1.3 补充日志(Supplemental Logging) 重做日志通常记录了事务的基本信息,但为了更全面地了解数据库中的活动,有时需要额外记录某些特定的信息,这就是所谓的补充日志。默认情况下,Oracle数据库不会自动开启补充日志,因此需要手动启用: ```sql ALTER DATABASE ADD SUPPLEMENTAL LOG DATA; ``` 一旦启用了补充日志,LogMiner就能够支持更多的功能,如跟踪DDL语句、生成键列的SQL_REDO和SQL_UNDO信息等。 #### 二、LogMiner支持的数据类型和表存储属性 LogMiner支持多种数据类型和表存储属性,包括但不限于: - 基本数据类型:`CHAR`, `NCHAR`, `VARCHAR2`, `VARCHAR`, `NVARCHAR2`, `NUMBER`, `DATE`, `TIMESTAMP`, `TIMESTAMP WITH TIME ZONE`, `TIMESTAMP WITH LOCAL TIME ZONE`, `INTERVAL YEAR TO MONTH`, `INTERVAL DAY TO SECOND`, `RAW`, `CLOB`, `NCLOB`, `BLOB`, `LONG`, `LONG RAW`, `BINARY_FLOAT`, `BINARY_DOUBLE`。 - 特殊类型:`函数索引`、`没有LOB列的索引组织表(IOT)`。 #### 三、LogMiner字典 LogMiner字典对于正确解析重做日志中的数据至关重要,它可以将内部的对象ID号转换成外部可识别的对象名称和数据格式。有三种主要方式可以创建和使用LogMiner字典: ##### 3.1 使用源数据库数据字典 这种方式要求数据库必须处于`OPEN`状态,并且仅能用于跟踪DML操作。可以通过执行以下PL/SQL代码来启动LogMiner并指定使用在线数据字典: ```sql EXECUTE DBMS_LOGMNR.START_LOGMNR(OPTIONS => DBMS_LOGMNR.DICT_FROM_ONLINE_CATALOG); ``` ##### 3.2 摘取LogMiner字典到重做日志 当使用分析数据库来分析重做日志时,或是在被分析表的结构发生变化的情况下,Oracle推荐使用这种方式。这需要源数据库处于`ARCHIVELOG`模式并且处于`OPEN`状态。可以通过执行以下PL/SQL代码来实现: ```sql EXECUTE DBMS_LOGMNR_D.BUILD(OPTION => DBMS_LOGMNR_D.STORE_IN_REDO_LOGS); ``` ##### 3.3 摘取LogMiner字典到字典文件 这种方式主要用于与早期版本的兼容性。需要先配置字典文件所在的目录,并建立字典文件。例如,可以使用以下命令: ```sql ALTER SYSTEM SET UTL_FILE_DIR = 'd:/demo' SCOPE = SPFILE; ``` 总结而言,LogMiner是一个非常有用的工具,能够帮助我们深入理解数据库中的事务变化,无论是对于审计还是故障排查都有着不可替代的作用。正确设置和使用LogMiner及其相关的配置选项是非常重要的。
- weili_91352012-08-16多谢分享,急用,很有帮助 只是格式略差
- leavebo2013-05-17一时没看懂怎么用的,要是有个说明文档就更好了
- 粉丝: 0
- 资源: 2
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助