logminner安装过程记录

来源:互联网 发布:孤岛惊魂4优化补丁 编辑:程序博客网 时间:2024/05/05 15:15

如果使用logminer环境:os:windowsXO,db:oracle 9.2.0.1
1、要安装LogMiner工具,必须首先要运行下面这样两个脚本,这两个脚本必须均以SYS用户身份运行
运行脚本:
A:$ORACLE_HOME/rdbms/admin/dbmslm.sql ,用来创建DBMS_LOGMNR包


SQL> @dbmslm.sql

 

程序包已创建。


授权成功。
B:$ORACLE_HOME/rdbms/admin/dbmslmd.sql. 用来创建数据字典文件。

SQL> @dbmslmd.sql

 过程已创建。


 没有错误。


 授权成功。


 PL/SQL 过程已成功完成。


 程序包已创建。


 2、修改初始化参数文件, 增加一行,用于LogMiner分析的数据文件存放的位置


 UTL_FILE_DIR=d:/oraclelogs
 注意这是一个目录要先建立
这个参数设置要设置在pfile上所以重启的时候要用startup pfile='D:/oracle/admin/orcl/pfile/init.ora.127200720825'
启动不然oracle默认使用spfile 启动,一般spfile位置为D:/oracle/ora92/database

重新启动数据库


3、以sys用户运行脚本,创建数据字典文件


SQL> execute dbms_logmnr_d.build(dictionary_filename =>'sqltrace.ora',dictionary_location =>'d:/oraclelogs');

注意 dictionary_location 就是前面设置的UTL_FILE_DIR
PL/SQL 过程已成功完成。
 4、建立日志分析表,使用dbms_logmnr.add_logfile()


SQL> execute dbms_logmnr.add_logfile(options =>dbms_logmnr.new,logfilename =>'d:/oracleora92rdbmsARC00039.001');
 PL/SQL 过程已成功完成。


5、添加用于分析的日志文件


SQL> execute dbms_logmnr.add_logfile(options =>dbms_logmnr.addfile,logfilename =
>'d:oracleora92rdbmsARC00040.001');
 PL/SQL 过程已成功完成。


 SQL> execute dbms_logmnr.add_logfile(options =>dbms_logmnr.addfile,logfilename =


>'d:oracleora92rdbmsARC00038.001');
 PL/SQL 过程已成功完成。


 6、可以把这个文件从日志分析表中移除,从而不进行分析。


 SQL> execute dbms_logmnr.add_logfile(options =>dbms_logmnr.removefile,logfilenam


e =>'d:oracleora92rdbmsARC00038.001');
 PL/SQL 过程已成功完成。


 7、启动LogMiner进行分析。


 SQL> execute dbms_logmnr.start_logmnr(dictfilename =>'d:oraclelogssqltrace.or


a',starttime =>to_date('20040625 09:00:00','yyyymmdd hh24:mi:ss'),endtime =>to_d
ate('20040625 22:00:00','yyyymmdd hh24:mi:ss'));
 PL/SQL 过程已成功完成。
execute dbms_logmnr.start_logmnr(dictfilename =>'D:/oraclelogs/sqltrace.ora');
如果指定的开始时间和终止时间超出日志范围会报错
不指定时间范围 就可以了

 8、查看日志分析的结果,通过查询v$logmnr_contents可以查询到

begin
 dbms_logmnr.add_logfile(options =>dbms_logmnr.addfile,logfilename =>'D:/oracle/ora92/rdbms/ARC00004.001');
 dbms_logmnr.start_logmnr(dictfilename =>'D:/oraclelogs/sqltrace.ora');
end;
select operation,sql_redo,sql_undo from  v$logmnr_contentsadd_logfile 最好在同一SQL窗口中操作

注意执行顺序,select 以前必须start_logmnr ,start_logmnr以前必须
select operation,sql_redo,sql_undo from v$logmnr_contents;
 OPERATION                        SQL_REDO                                                                         SQL_UNDO


INSERT                           insert into "QUEST"."QUEST_IX_BKG_EVENT_SNAP"("INSTANCE_ID","SNAPSHOT_TIME","TOT delete from "QUEST"."QUEST_IX_BKG_EVENT_SNAP" where "INSTANCE_ID" = '121' and "S
INSERT                           insert into "QUEST"."QUEST_IX_BKG_EVENT_SNAP"("INSTANCE_ID","SNAPSHOT_TIME","TOT delete from "QUEST"."QUEST_IX_BKG_EVENT_SNAP" where "INSTANCE_ID" = '121' and "S
 9、结束LogMiner的分析。


 SQL> execute dbms_logmnr.end_logmnr;


 PL/SQL 过程已成功完成。


 需要强调一点的是,视图v$logmnr_contents中的分析结果仅在我们运行过程'dbms_logmrn.start_logmnr'这个会话的生命期中存在。这是因为所有的LogMiner存储都在PGA内存中,所有其他的进程是看不到它的,同时随着进程的结束,分析结果也随之消失。

最后,使用过程DBMS_LOGMNR.END_LOGMNR终止日志分析事务,此时PGA内存区域被清除,分析结果也随之不再存在。
 

原创粉丝点击