分析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
上一篇:分析Oracle数据库日志文件(2) 下一篇:高手是怎样炼成的:精妙SQL语句介绍
文章评论
共有位Admini5网友发表了评论 查看完整内容