SQL> conn sys/sys as sysdba
已连接。
SQL> @C:\oracle\ora92\rdbms\admin\dbmslmd.sql
过程已创建。
没有错误。
授权成功。
PL/SQL 过程已成功完成。
程序包已创建。
SQL> @C:\oracle\ora92\rdbms\admin\dbmslms.sql
程序包已创建。
没有错误。
授权成功。
SQL> EXECUTE dbms_logmnr_d.build(dictionary_filename=>'v816dict.ora',dictionary_location=>'e:\oracle\logs');
SQL> EXECUTE dbms_logmnr.add_logfile(LogFileName=>'e:\Oracle\oradata\NCDBPX\redo01.log',Options=>dbms_logmnr.new);
PL/SQL procedure successfully completed.
SQL> EXECUTE dbms_logmnr.add_logfile(LogFileName=>'e:\Oracle\oradata\NCDBPX\redo02.log',Options=>dbms_logmnr.ADDFILE);
PL/SQL procedure successfully completed.
SQL> EXECUTE dbms_logmnr.add_logfile(LogFileName=>'e:\Oracle\oradata\NCDBPX\redo03.log',Options=>dbms_logmnr.ADDFILE);
PL/SQL procedure successfully completed.
SQL> EXECUTE dbms_logmnr.start_logmnr(DictFileName=>'e:\oracle\logs\v816dict.ora');
PL/SQL procedure successfully completed.
SQL> select sql_REDO from v$logmnr_contents where upper(operation)='DELETE' and upper(sql_redo) like '%GPRS_SER%'
2 /
no rows selected
SQL> ed
Wrote file afiedt.buf
1* select sql_REDO from v$logmnr_contents where upper(operation)='CREATE' and upper(sql_redo) like '%EMP%'
SQL> /
no rows selected
--------------------------------------------------------------------------------------
LogMiner的主要用途
LogMiner工具的主要用途有:
(1)跟踪数据库的变化:可以离线的跟踪数据库的变化,而不会影响在线系统的性能。
(2)回退数据库的变化:回退特定的变化数据,减少point-in-time recovery的执行。
(3)优化和扩容计划:可通过分析日志文件中的数据以分析数据增长模式。
Oracle9i LogMiner的增强功能
(1)支持更多数据/存储类型:链接/迁移行、CLUSTER表操作、DIRECT PATH插入以及DDL操作。
(2)提取和使用数据字典的选项:现在数据字典不仅可以提取到一个外部文件中,还可以直接提取到重做日志流中,它在日志流中提供了操作当时的数据字典快照,这样就可以实现离线分析。
(3)允许对DML操作按事务进行分组:可以在START_LOGMNR()中设置COMMITTED_DATA_ONLY选项,实现对DML操作的分组,这样将按SCN的顺序返回已经提交的事务。
(4)支持SCHEMA的变化:在数据库打开的状态下,如果使用了LogMiner的DDL_DICT_TRACKING选项,Oracle9i的LogMiner将自动对比最初的日志流和当前系统的数据字典,并返回正确的DDL语句,并且会自动侦察并标记当前数据字典和最初日志流之间的差别,这样即使最初日志流中所涉及的表已经被更改或者根本已经不存在,LogMiner同样会返回正确的DDL语句。
(5)在日志中记录更多列信息的能力:例如对于UPDATE操作不仅会记录被更新行的情况,还可以捕捉更多已发生的更新操作信息。
(6)支持基于数值的查询:Oracle9i LogMiner在支持原有基于元数据(操作、对象等)查询的基础上,开始支持基于实际涉及到的数据的查询。例如涉及一个工资表,现在可以很容易地查出员工工资由1000变成2000的原始更新语句,而在之前只能选出所有的更新语句。
LogMiner的安装
要安装LogMiner工具,必须首先要以SYS用户身份运行下面两个脚本文件:
(l)$Oracle_HOME/rdbms/admin/dbmslsm.sql
用来创建DBMS_LOGMNR包,该包用来分析日志文件。
(2)$Oracle_HOME/rdbms/admin/dbmslsmd.sql
用来创建DBMS_LOGMNR_D包,该包用来创建数据字典文件。
LogMiner工具的使用
(1)创建数据字典文件(data-dictionary)
创建数据字典的目的就是让LogMiner引用涉及到内部数据字典中的部分时为他们实际的名字,而不是系统内部的16进制。数据字典文件是一个文本文件,使用包DBMS_LOGMNR_D来创建。
首先在init.ora初始化参数文件中,指定数据字典文件的位置,也就是添加一个参数UTL_FILE_DIR,该参数值为服务器中放置数据字典文件的目录。如:
UTL_FILE_DIR=e:\Oracle\logs;
重新启动数据库,使新加的参数生效,然后创建数据字典文件:
CONNECT SYS
EXECUTE dbms_logmnr_d.build(dictionary_filename=>'v816dict.ora',dictionary_location=>'e:\oracle\logs');
(2)创建要分析的日志文件列表
Oracle的重作日志分为两种,在线(online)和离线(offline)归档日志文件,下面就分别来讨论这两种不同日志文件的列表创建。
①分析在线重作日志文件
● 创建列表
EXECUTE dbms_logmnr.add_logfile(LogFileName=>'e:\Oracle\oradata\sxf\redo01.log',Options=>dbms_logmnr.new);
● 添加其他日志文件到列表
EXECUTE dbms_logmnr.add_logfile(
LogFileName=>'e:\Oracle\oradata\sxf\redo02.log',
Options=>dbms_logmnr.addfile);
②分析离线日志文件
● 创建列表
EXECUTE dbms_logmnr.add_logfile(LogFileName=>'E:\Oracle\oradata\sxf\archive\ARCARC09108.001',Options=>dbms_logmnr.new);
● 添加另外的日志文件到列表
EXECUTE dbms_logmnr.add_logfile(
LogFileName=>'E:\Oracle\oradata\sxf\archive\ARCARC09109.001',Options=>dbms_logmnr.addfile);
(3)使用LogMiner进行日志分析
①无限制条件
EXECUTE dbms_logmnr.start_logmnr(DictFileName=>'e:\oracle\logs\v816dict.ora');
②有限制条件
通过对过程DBMS_ LOGMNR.START_LOGMNR中几个不同参数的设置,可以缩小要分析日志文件的范围。通过设置起始时间和终止时间参数可以限制只分析某一时间范围的日志。
(4)观察分析结果(v$logmnr_contents)
动态性能视图v$logmnr_contents包含LogMiner分析后得到的所有的信息。
与日志分析相关视图还有:
①V$LOGMNR_DICTIONARY:查询使用的数据字典文件。
②V$LOGMNR_PARAMETERS:查询当前LogMiner设定的参数。
③V$LOGMNR_FILES:查询分析的日志文件。
④V$LOGMNR_CONTENTS:日志文件的内容。
3.其他注意事项
(1)LogMiner必须使用被分析数据库实例产生的字典文件,而不是安装LogMiner的数据库产生的字典文件,另外必须保证安装LogMiner数据库的字符集和被分析数据库的字符集相同。
(2)被分析数据库平台必须和当前LogMiner所在数据库平台一样。
(3)LogMiner日志分析工具仅能够分析Oracle 8以后的产品。
posted on 2006-11-24 10:17
Coundy 阅读(966)
评论(0) 编辑 收藏 所属分类:
Oracle