This Domain(Admin5.com) is for Sale:

分析Oracle数据库日志文件(1)

时间:2007-12-23  来源:不详  作者:迈克DB


14:26:05 SQL> execute dbms_logmnr_d.build('oradict.ora','c:\oracle\admin\ora\log');BEGIN dbms_logmnr_d.build('oradict.ora','c:\oracle\admin\ora\log'); END;*ERROR at line 1:ORA-06532: Subscript outside of limitORA-06512: at "SYS.DBMS_LOGMNR_D", line 793ORA-06512: at line 1 

内容来自dedecms



解决办法:

编辑"$ORACLE_HOME/rdbms/admindbmslmd.sql"文件,把其中的TYPE col_desc_array IS VARRAY(513) OF col_description;改成:TYPE col_desc_array IS VARRAY(700) OF col_description; 织梦好,好织梦 


保存文件,然后执行一遍这个脚本:

15:09:06 SQL> @c:\oracle\ora81dbms\admin\dbmslmd.sqlPackage created.Package body created.No errors.Grant succeeded. 
本文来自织梦


然后重新编译DBMS_LOGMNR_D包:

15:09:51 SQL> alter package DBMS_LOGMNR_D compile body;Package body altered.之后重新执行dbms_logmnr_d.build即可:15:10:06 SQL> execute dbms_logmnr_d.build('oradict.ora','c:\oracle\admin\ora\log');PL/SQL procedure successfully completed. dedecms.com 


3、添加需要分析的日志文件

SQL>exec dbms_logmnr.add_logfile( logfilename=>'/data6/cyx/rac1arch/arch_1_197.arc', options=>dbms_logmnr.new);PL/SQL procedure successfully completed. 织梦内容管理系统 


这里的options选项有三个参数可以用:

NEW - 表示创建一个新的日志文件列表

ADDFILE - 表示向这个列表中添加日志文件,如下面的例子

REMOVEFILE - 和addfile相反。

SQL> exec dbms_logmnr.add_logfile( logfilename=>'/data6/cyx/rac1arch/arch_2_86.arc', options=>dbms_logmnr.addfile);PL/SQL procedure successfully completed. dedecms.com 


4、当你添加了需要分析的日志文件后,我们就可以让LogMiner开始分析了:

SQL> exec dbms_logmnr.start_logmnr(dictfilename=>'/data6/cyx/logmnr/dic.ora');PL/SQL procedure successfully completed. 
织梦内容管理系统


假如你没有使用字典信息文件(此时我们只需要启动实例就可以了),那么就不需要跟dictfilename参数:

SQL> exec dbms_logmnr.start_logmnr();PL/SQL procedure successfully completed. 
copyright dedecms


当然dbms_logmnr.start_logmnr()过程还有其它几个用于定义分析日志时间/SCN窗口的参数,它们分别是:

STARTSCN / ENDSCN - 定义分析的起始/结束SCN号,

STARTTIME / ENDTIME - 定义分析的起始/结束时间。

例如下面的过程将只分析从 '2003-09-21 09:39:00'到'2003-09-21 09:45:00'这段时间的日志:

SQL> exec dbms_logmnr.start_logmnr(dictfilename=>'/data6/cyx/logmnr/dic.ora' , -starttime => '2003-09-21 09:39:00',endtime => '2003-09-21 09:45:00');PL/SQL procedure successfully completed. 内容来自dedecms 


上面过程第一行结尾的“-”表示转行,假如你在同一行,则不需要。我们可以看到有效日志的时间戳:

SQL> select distinct timestamp from v$logmnr_contents;TIMESTAMP-------------------2003-09-21 09:40:022003-09-21 09:42:39

看完这篇,您有何感觉呢?

文章评论

共有位Admini5网友发表了评论 查看完整内容

24小时热门信息