介绍下Oracle Database 11gR2中的日志和日志的收集。
很多时候,遇到问题联系Oracle support或者提交SR的时候,support总是会要求你收集好日志,有时候日志收集不齐全,来来回回几次,时间都浪费在沟通上了。另外即使自己在测试环境进行实验的时候也会遇到一些问题,在论坛提问或者招人帮忙的时候,为了把问题描述清楚,必要的日志也是十分有帮助的。
随着Oracle Database 11gR2的发布,大量的feature引入,日志的种类和范畴也有了很大的增加。安装出错了,root.sh出错了,建库失败了,asmca失败了。最大的改变是在11gR2中引入了各种各样的agent,资源的管理全部集成到了统一的agent framework中进行,这些包括启动,停止,检查,清除等等,agent因为资源的范畴和权限不同分为了crsd agent, crsd root agent, ohasd agent ohasd root agent。详细不多说,可以参考前面讲过的11gR2的后台进程 ,具体的这些agent如何控制和管理这些资源,以后在专题介绍。
日志多不要紧,而且目录结构也比较分散,crs 的日志文件,dbca/dbua/netca/asmca这些文件,root.sh日志文件,install的日志文件都是分部在不同地方的,所以就迫切需要一个好用的工具进行收集。
既然日志收集这么迫切,又这么麻烦,那么有没有一款方便好用的收集工具呢? 答案是肯定的。在GI HOME/bin/目录下就有这么一个好用的脚本 diagcollection.pl,脚本是用perl写成的,所以天生可移植,支持各种平台的日志收集(包括Windows),工具的使用也相当的简单,如下是一个简单的帮助信息:
sh-3.2# ./diagcollection.pl
Production Copyright 2004, 2010, Oracle. All rights reserved
Cluster Ready Services
(CRS) diagnostic collection
tool
diagcollection
–collect
[–crs] For collecting crs diag
information
[–adr] For collecting diag information for
ADR; specify ADR location
[–chmos] For collecting Cluster Health Monitor (OS) data
[–all] Default.For collecting all diag
information.
[–core] UNIX only. Package core files with CRS data
[–afterdate] UNIX only. Collects
archives from the specified date. Specify in mm/dd/yyyy format
[–aftertime] Supported with -adr
option. Collects archives after the specified time.
Specify in YYYYMMDDHHMISS24 format
[–beforetime] Supported with -adr
option. Collects archives before the specified date.
Specify in YYYYMMDDHHMISS24 format
[–crshome] Argument that specifies the
CRS Home location
[–incidenttime] Collects Cluster Health Monitor (OS) data from the specified time. Specify in MM/DD/YYYY24HH:MM:SS
format
If not specified, Cluster Health Monitor (OS) data generated in the past 24 hours are collected
[–incidentduration]
Collects Cluster Health Monitor (OS) data for the duration after the
specified time. Specify in HH:MM
format.
If not specified, all Cluster Health Monitor (OS) data after incidenttime are
collected
NOTE:
1. You
can also do the following
./diagcollection.pl –collect –crs –crshome <crs Home>
–clean
cleans up the diagnosability
information gathered
by this script
–coreanalyze UNIX only. Extracts information from
core files
and stores it in a text
file
sh-3.2#
</crs>
不要被大量的选项吓坏,其实主要的选项就是一个 –collect
,另外清除收集的日志就是–clean。
这实在是一款居家旅行,老少皆宜的工具,欢迎大家使用。
为什么想到突然要介绍这个工具呢,那是在目前版本中这个工具收集的日志范围有限,而我因为目前正在着手对这个工具进行改进,使之功能更加强大,收集的日志种类更多,也欢迎大家对这个工具提出更多建议,并关注后续消息。
有的,除了diagcollection.pl 脚本之外,其实Oracle提供了很多其他的工具,比如OSWatcher,还有11gR2新引入的CHM工具 (Cluster Healthy Monitor)等等,下篇我们介绍CHM。