转 Oracle Cluster Health Monitor(CHM)简介
Cluster Health Monitor(以下简称CHM)是一个Oracle提供的工具,用来自动收集操作系统的资源(CPU、内存、SWAP、进程、I/O以及网络等)的使用情况。CHM会每秒收集一次数据。这些系统资源数据对于诊断集群系统的节点重启、Hang、实例驱逐(Eviction)、性能问题等是非常有帮助的。另外,用户可以使用CHM来及早发现一些系统负载高、内存异常等问题,从而避免产生更严重的问题。
CHM默认安装在以下版本:
11.2.0.2 及更高版本的 Oracle Grid Infrastructure for Linux (不包括Linux Itanium) 、Solaris (Sparc 64 和 x86-64)
11.2.0.3 及更高版本 Oracle Grid Infrastructure for AIX 、 Windows (不包括Windows Itanium)。
CHM服务介绍(以下进程都可以使用ps -ef|grep 命令来查看):
1、System Monitor Service(osysmond):这个服务在所有节点都会运行,osysmond会将每个节点的资源使用情况发送给cluster logger service,后者将会把所有节点的信 息都接收并保存到CHM的资料库。
2、Cluster Logger Service(ologgerd):在一个集群中的,ologgerd 会有一个主机点(master),还有一个备节点(standby)。当ologgerd在当前的节点遇到问题无法启动后,它会在备用节点启用。
我们可以使用命令来查看CHM运行状态
crsctl stat res -t -init
ora.crf is the Cluster Health Monitor resource name that ohasd manages.
Issue “crsctl stat res –t –init” to check the current status of the Cluster Health Monitor.
-------------------------------------------------------------------------------
NAME TARGET STATE SERVER STATE_DETAILS
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.asm
1 ONLINE ONLINE bt1ssse5d1z3 Started
ora.crf
1 ONLINE OFFLINE
CHM Repository:用于存放收集到数据,在默认情况下,会存在于Grid Infrastructure home 下 ,需要1 GB 的磁盘空间,每个节点大约每天会占用0.5GB的空间。 您可以使用OCLUMON来调整它的存放路径以及允许的空间大小(最多只能保存3天的数据。
简单命令操作:
1、查看当前目录设置
oclumon manage -get reppath
2、查看当前收集大小(注意单位为秒)
oclumon manage -get repsize
3、修改路径
oclumon manage -repo reploc /soft/chm/
4、修改大小
oclumon manage -repos resize 60000
获取CHM数据的方法:
1、使用Grid_home/bin/diagcollection.pl
- 首先,确定cluster logger service的主节点
-
oclumon manage -get master
- 用root身份在主节点执行下面的命令
<Grid_home>/bin/diagcollection.pl -collect -chmos -incidenttime inc_time -incidentduration duration
例如:
diagcollection.pl -collect -crshome /u01/app/11.2.0/grid -chmoshome /u01/app/11.2.0/grid -chmos -incidenttime 06/15/201412:30:00 -incidentduration 00:05
2、使用oclumon来获得CHM数据
oclumon dumpnodeview [[-allnodes] | [-n node1 node2] [-last "duration"] | [-s "time_stamp" -e "time_stamp"] [-v] [-warning]] [-h]
#(-s表示开始时间,-e表示结束时间)
例如:
oclumon dumpnodeview -allnodes -v -s "2012-06-15 07:40:00" -e "2012-06-15 07:57:00" > /tmp/chm1.txt
oclumon dumpnodeview -n node1 node2 -last "12:00:00" >/tmp/chm1.txt
oclumon dumpnodeview -allnodes -last "00:15:00" >/tmp/chm1.txt
关闭以及开启CHM(使用grid在每个节点执行)
这个关闭类似Linux的service stop,重启后还会自动打开,关闭后系统IO会有所下降
#关闭
crsctl stop res ora.crf -init
#启动
crsctl start res ora.crf -init
#禁用
crsctl modify resource ora.crf -attr "AUTO_START=never" -init
#启用
crsctl modify resource ora.crf -attr "AUTO_START=always" -init
参考Oracle官方文档:
http://docs.Oracle.com/cd/E11882_01/rac.112/e16794/troubleshoot.htm#CWADD92242
Oracle® Clusterware Administration and Deployment Guide
11g Release 2 (11.2)
Part Number E16794-17
My Oracle Support文档:
Cluster Health Monitor (CHM) FAQ (Doc ID 1328466.1)
CHM及UI下载地址:
http://www.oracle.com/technetwork/database/clustering/downloads/ipd-download-homepage-087212.html
http://blog.csdn.net/mhmds/article/details/72843249
crsctl stop res -all
crsctl start res -all
crsctl status res -t
crsctl status res -t -init