• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

Oracle8i/9i中使用LogMiner来分析日志的过程

Oracle 海叔叔 2个月前 (05-09) 13次浏览 已收录 0个评论

关键词

LogMiner 日志分析过程

摘要

本文介绍LogMiner这个日志分析工具在Oracle8i/9i中进行日志分析的具体过程。

LogMiner只要在实例起来的情况下都可以运行,LogMiner使用一个字典文件来实现Oracle内部对象名称的转换,如果没有这个字典文件,则直接显示内部对象编号,例如我们执行下面的语句: 

如果想要使用字典文件,数据库至少应该出于MOUNT状态。然后执行dbms_logmnr_d.build过程将数据字典信息提取到一个外部文件中。下面是具体分析步骤: 

1、确认设置了初始化参数:UTL_FILE_DIR,并确认Oracle对改目录拥有读写权限,然后启动实例。示例中UTL_FILE_DIR参数如下: 

这个目录主要用于存放dbms_logmnr_d.build过程所产生的字典信息文件,如果不用这个,则可以不设,也就跳过下面一步。 

2、生成字典信息文件: 

其中dictionary_location指的是字典信息文件的存放位置,它必须完全匹配UTL_FILE_DIR的值,例如:假设UTL_FILE_DIR=/data6/cyx/logmnr/,则上面这条语句会出错,只因为UTL_FILE_DIR后面多了一个“/”,而在很多其它地方对这一“/”是不敏感的。 

dictionary_filename指的是放于字典信息文件的名字,可以任意取。当然我们也可以不明确写出这两个选项,即写成: 

如果你第一步的参数没有设,而直接开始这一步,Oracle会报下面的错误: 

需要注意的是,在oracle817 for Windows版中会出现以下错误: 

解决办法: 

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

然后重新编译DBMS_LOGMNR_D包: 

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

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

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

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

REMOVEFILE – 和addfile相反。 

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

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

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

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

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

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

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

这里需要注意的是,因为我之前已经设置NLS_DATE_FORMAT环境变量,所以上面的日期可以直接按这个格式写就行了,如果你没有设,则需要使用to_date函数来转换一下。 

STARTSCN 和ENDSCN参数使用方法类似。 

5、好了,在上面的过程执行结束之后,我们就可以通过访问与LogMiner相关的几个视图来提取我们需要的信息了。其中在v$logmnr_logs中可以看到我们当前分析的日志列表,如果数据库有两个实例(即OPS/RAC),在v$logmnr_logs中会有两个不同的THREAD_ID。 

而真正的分析结果是放在v$logmnr_contents中,这里面有很多信息,我们可以根据需要追踪我们感兴趣的信息。后面我将单独列出来讲常见的追踪情形。 

6、全部结束之后,我们可以执行dbms_logmnr.end_logmnr过程退出LogMiner分析过程,你也可以直接退出SQL*PLUS,它会自动终止。

关于Oracle8i/9i中使用LogMiner来分析日志的过程 ,本文就介绍这么多,希望对您有所帮助,谢谢!


喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址