Oracle数据库LogMiner工具的使用方法

    Oracle LogMiner 是Oracle公司从产品8i以后提供的一个实际非常有用的分析工具,使用该工具可以轻松获得Oracle 重作日志文件(归档日志文件)中的具体内容,特别是,该工具可以分析出所有对于数据库操作的DML(insert、update、delete等)语句,另外还可分析得到一些必要的回滚SQL语句。该工具特别适用于调试、审计或者回退某个特定的事务。
  LogMiner分析工具实际上是由一组PL/SQL包和一些动态视图(Oracle8i内置包的一部分)组成,它作为Oracle数据库的一部分来发布,是8i产品提供的一个完全免费的工具。但该工具和其他Oracle内建工具相比使用起来显得有些复杂,主要原因是该工具没有提供任何的图形用户界面(GUI)。本文将详细介绍如何安装以及使用该工具。

 

Logminer(DBMS_LOGMNR和DBMS_LOGMNR_D)package,可以用来分析Oracle的重做日志文件。Logminer是oracle从8i开始提供的工具。

   

   我们可以使用logminer分析其它instance(版本可不一致)的重做日志文件,但是必须遵循以下要求:

 

1、LogMiner日志分析工具仅能够分析Oracle 8以后的产品

2、LogMiner必须使用被分析数据库实例产生的字典文件,且安装LogMiner数据库的字符集必须和被分析数据库的字符集相同

3、被分析数据库平台必须和当前LogMiner所在数据库平台一样,且block size相同。

 

      一、安装logminer:

要安装LogMiner工具,必须首先要运行下面这样两个脚本,

%ORACLE_HOME%/rdbms/admin/dbmslm.sql

$ORACLE_HOME%/rdbms/admin/dbmslmd.sql.

这两个脚本必须均以SYS用户身份运行。

 

二、创建数据字典文件 

先在init.ora初始化参数文件中,添加参数UTL_FILE_DIR,该参数值为服务器中放置数据字典文件的目录。如:

UTL_FILE_DIR = (C:\Oracle\logs)

重新启动数据库,使新加的参数生效,然后创建数据字典文件:

SQL> EXECUTE dbms_logmnr_d.build(

dictionary_filename => ' logmn_ora927.dat',

dictionary_location => 'C:\Oracle\logs ');

 

创建数据字典是让LogMiner引用涉及到内部数据字典中的部分时使用对象的名称,而不是系统内部的16进制的ID。如果我们要分析的数据库中的表有变化,影响到库的数据字典也发生变化,就需要重新创建该字典。

 

三、添加要分析的日志文件

Logminer可以用来分析在线的重做日志文件和归档日志文件,但是我们一般建议使用归档的日志文件。

a.添加新的日志文件:

SQL> EXECUTE dbms_logmnr.add_logfile(

LogFileName=>' C:\database\oracle\oradata\ora817\archive \ ARC01491.001 ', Options=>dbms_logmnr.new);

b.添加另外的日志文件到列表

SQL> EXECUTE dbms_logmnr.add_logfile(

LogFileName=>' C:\database\oracle\oradata\ora817\archive \ ARC01491.002', Options=>dbms_logmnr.addfile);

c. 移去一个日志文件

SQL> EXECUTE dbms_logmnr.add_logfile(

LogFileName=>' C:\database\oracle\oradata\ora817\archive \ ARC01491.002', Options=>dbms_logmnr. REMOVEFILE);

 

四、 进行日志分析

 

SQL> EXECUTE dbms_logmnr.start_logmnr(

DictFileName=>'C:\Oracle\logs\ logmn_ora817.dat ');

可以使用相应的限制条件:

时间范围:对dbms_logmnr.start_logmnr使用StartTime和EndTime参数

SCN范围:对dbms_logmnr.start_logmnr使用StartScn和EndScn参数

 

 

五、查看结果

主要是查询v$logmnr_contents

通过字段sql_redo可以得到该日志文件中进行过的sql操作,通过sql_undo可以得到撤销的sql语句。

还可以用这样的sql对日志文件中的所有的操作分类统计:

select operation,count(*)from v$logmnr_contents group by operation;

视图v$logmnr_contents中的分析结果仅在我们运行过程'dbms_logmrn.start_logmnr'这个会话的生命期中存在。这是因为所有的LogMiner存储都在PGA内存中,所有其他的会话是看不到它的,同时随着会话的结束而清除分析结果。

最后,使用过程DBMS_LOGMNR.END_LOGMNR终止日志分析事务,PGA内存区域将被清除

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值