oracle logMiner操作步骤

LogMiner安装

SQL> @D:\oracle\RDBMS\ADMIN\dbmslm.sql

程序包已创建。

授权成功。

SQL> @D:\oracle\RDBMS\ADMIN\dbmslmd.sql

程序包已创建。

这两个脚本必须均以SYS用户身份运行。其中第一个脚本用来创建DBMS_LOGMNR包,该包用来分析日志文件。第二个脚本用来创建DBMS_LOGMNR_D包,该包用来创建数据字典文件。

操作开始:

一、查看数据库是否在归档模式下

SQL> archive log list

数据库日志模式            存档模式

自动存档             启用

存档终点            USE_DB_RECOVERY_FILE_DEST

最早的联机日志序列     111

下一个存档日志序列   113

当前日志序列           113

激活补充日志:

SQL>  alter database add supplemental log data;

数据库已更改。

二、参数配置

在日志分析过程会使用到数据字典,一般是先设置UTL_FILE_DIR参数删除数据字典文件,日后进行日志分析,当然在oracle10G中可使用在线数据字典,不需要设置UTL_FILE_DIR参数。
字典文件用于存放表及对象ID号之间的对应关系。当使用字典文件时,它会在表名和对象ID号之间建立一一对应的关系。因此需要注意,如果用户建立了新表之后,并且将来可能会对该表进行日志分析,那么就需要重新建立字典文件,以将其对象名及对象ID号存放到字典文件中。
修改参数文件:
添加参数:UTL_FILE_DIR=C:\ logmnr 目录logmnr必须事先手工建立,该目录用于存放产生的字典文件,目录名称可以自定
SQL> alter system set UTL_FILE_DIR='c:\logmnr' scope=spfile;
系统已更改。
重启数据库
重启之后参数设置才能生效。

SQL> shutdown immediate

数据库已经关闭。

已经卸载数据库。

ORACLE 例程已经关闭。
SQL> startup

ORACLE 例程已经启动。

Total System Global Area  293601280 bytes

Fixed Size                  1290208 bytes

Variable Size             239075360 bytes

Database Buffers           46137344 bytes

Redo Buffers                7098368 bytes

数据库装载完毕。

数据库已经打开。

三、建立字典文件(第三步可以略过,使用在线数据字典)

ORACLE 10G中可以使用在线数据字典。
SQL> begin
2 dbms_logmnr_d.build(
3 dictionary_filename=>'dict.ora',
4 dictionary_location=>'c:\logmnr');
5 end;
6 /
PL/SQL 过程已成功完成。
注意:参数dictionary_filename用以指定字典文件的文件名;参数 dictionary_location用于指定存放字典文件所在的目录,该目录必须与初始化参数UTL_FILE_DIR的值一致。如果指定的字典文件名dict.ora已经存在,则应在执行此操作前将其彻底删除(从垃圾箱中删除),否则执行该过程将失败。

四、生成归档日志

下面以分析TEST表的DDLDML操作为例,介绍使用LogMiner分析重做日志和归档日志的全过程。我们首先执行以下语句在表TEST上执行DDL以及DML操作,并生成归档日志:
SQL> alter system switch logfile;
系统已更改。
SQL> create table test(id int);
表已创建。
SQL> alter system switch logfile;
系统已更改。
SQL> insert into test values(1);
已创建 行。
SQL> commit;
提交完成。
SQL> alter system switch logfile;
系统已更改。
SQL> update test set id=100;
已更新 行。
SQL> commit;
提交完成。
SQL> alter system switch logfile;
系统已更改。
SQL> delete from test;
已删除 行。
SQL> alter system switch logfile;
系统已更改。

五、建立日志分析列表

查看重做日志文件
在对表TEST操作过程中,产生了4个重做日志文件。可通过时间查找重做日志文件。

SQL>select name,first_time,next_time from v$archived_log where first_time>to_date('2013-04-25 16:20:50', 'yyyy-mm-dd hh24:mi:ss');

NAME

----------------------------------------------------------------------------------------------------

----------------------------------------------------------------------------------------------------

----------------------------------------------------------------------------------------------------

FIRST_TIME     NEXT_TIME

-------------- --------------

D:\ORACLE\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2013_04_25\O1_MF_1_123_8QKTSN8T_.ARC

25-4月 -13     25-4月 -13

D:\ORACLE\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2013_04_25\O1_MF_1_124_8QKTV0TT_.ARC

25-4月 -13     25-4月 -13

D:\ORACLE\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2013_04_25\O1_MF_1_125_8QKTW4TQ_.ARC

25-4月 -13     25-4月 -13

NAME

----------------------------------------------------------------------------------------------------

----------------------------------------------------------------------------------------------------

----------------------------------------------------------------------------------------------------

FIRST_TIME     NEXT_TIME

-------------- --------------

D:\ORACLE\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2013_04_25\O1_MF_1_126_8QKTX01F_.ARC

25-4月 -13     25-4月 -13

填加要分析的重做日志文件:

SQL> begin

  2  dbms_logmnr.add_logfile(

  3  options=>dbms_logmnr.new,

  4  logfilename=>'D:\ORACLE\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2013_04_25\O1_MF_1_121_8QKRVR13_.AR

C');

  5  end;

  6  /

PL/SQL 过程已成功完成。

SQL> begin

  2  dbms_logmnr.add_logfile(

  3  options=>dbms_logmnr.addfile,

  4  logfilename=>'D:\ORACLE\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2013_04_25\O1_MF_1_120_8QKRP86X_.AR

C');

  5  end;

  6  /

PL/SQL 过程已成功完成。

另外两个文件以此方法添加,但是options参数的值必须是dbms_logmnr.addfile,使用dbms_logmnr.new,则会覆盖之前添加的日志文件,视图v$logmnr_logs只能查看最后一次添加的日志文件。
添加完成后可以通过动态性能视图v$logmnr_logs查看日志分析列表中有哪些待分析的日志文件。
SQL> select filename from v$logmnr_logs;

FILENAME

---------------------------------------------------------------------------------------

---------------------------------------------------------------------------------------

---------------------------------------------------------------------------------------

---------------------------------------------------------------------------------------

---------------------------------------------------------------------------------------

D:\ORACLE\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2013_04_25\O1_MF_1_120_8QKRP86X_.ARC

D:\ORACLE\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2013_04_25\O1_MF_1_121_8QKRVR13_.ARC

已选择2行。

六、启动LogMiner执行分析

使用在线数据字典进行分析(该选项只能用于跟踪DML操作):

SQL>exec dbms_logmnr.start_logmnr(options=>dbms_logmnr.dict_from_online_catalog);
PL/SQL 过程已成功完成。

查看日志分析结果:

SQL> select scn,operation,sql_redo,sql_undo from v$logmnr_contents WHERE seg_na
me='TEST';

通过结果得到对表TEST所做DDLDML操作的准确时间,以及数据的变化情况,对数据库的恢复和审计等提供准确、有效的参考信息。
注意:v$logmnr_contents内容保存了日志的内容,只在当前会话有效,如果想长期保存分析,可以在当前会话用create table tablename as select * from v$logmnr_contents语句来持久保存。

七、结束分析,释放PGA内存资源

SQL> exec dbms_logmnr.end_logmnr;
PL/SQL 过程已成功完成。

我写的这个不详细,没有具体的解释,不过我写完之后,发现了这篇文章,里面很详细的解释了所有的操作步骤作用

参考:http://www.cnblogs.com/qiangqiang/archive/2010/10/21/1857429.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值