Oracle Cluster Health Monitor(CHM)简介

Oracle Cluster Health Monitor(CHM)简介

概述

Cluster Health Monitor(以下简称CHM)是一个Oracle提供的工具,用来自动收集操作系统的资源(CPU、内存、SWAP、进程、I/O以及网络等)的使用情况。CHM会每秒收集一次数据。

这些系统资源数据对于诊断集群系统的节点重启、Hang、实例驱逐(Eviction)、性能问题等是非常有帮助的。另外,用户可以使用CHM来及早发现一些系统负载高、内存异常等问题,从而避免产生更严重的问题。

CHM会自动安装在下面的软件:

11.2.0.2 及更高版本的 OracleGrid Infrastructure for Linux (不包括Linux Itanium) 、Solaris (Sparc 64 和 x86-64)

11.2.0.3 及更高版本 OracleGrid Infrastructure for AIX 、 Windows (不包括Windows Itanium)。

在集群中,可以通过下面的命令查看CHM对应的资源(ora.crf)的状态:

$ crsctl stat res -t -init

[[email protected] bin]# ./crsctl stat resora.crf -init

NAME=ora.crf

TYPE=ora.crf.type

TARGET=ONLINE

STATE=ONLINE on testrac2

CHM主要包括两个服务:

1).System Monitor Service(osysmond):这个服务在所有节点都会运行,osysmond会将每个节点的资源使用情况发送给cluster logger service,后者将会把所有节点的信息都接收并保存到CHM的资料库。

$ps -ef|grep osysmond
       root      7984     1  0Jun05 ?        01:16:14/u01/app/11.2.0/grid/bin/osysmond.bin

2).Cluster Logger Service(ologgerd):在一个集群中的,ologgerd 会有一个主机点(master),还有一个备节点(standby)。当ologgerd在当前的节点遇到问题无法启动后,它会在备用节点启用。

主节点:
     $ ps -ef|grep ologgerd
       root      8257     1  0Jun05 ?        00:38:26/u01/app/11.2.0/grid/bin/ologgerd -M -d      /u01/app/11.2.0/grid/crf/db/rac2

备节点:
      $ ps -ef|grep ologgerd
       root      8353     1  0Jun05 ?        00:18:47/u01/app/11.2.0/grid/bin/ologgerd -m rac2 -r -d
/u01/app/11.2.0/grid/crf/db/rac1

CHM Repository:用于存放收集到数据,默认情况下,会存在于Grid Infrastructure home 下 ,需要1 GB 的磁盘空间,每个节点大约每天会占用0.5GB的空间。您可以使用OCLUMON来调整它的存放路径以及允许的空间大小(最多只能保存3天的数据)。

查看当前设置

下面的命令用来查看它当前设置:
     $ oclumon manage -get reppath
       CHM Repository Path =/u01/app/11.2.0/grid/crf/db/rac2
       Done

$ oclumon manage -get repsize
       CHM Repository Size = 68082 <====单位为秒
       Done
修改设置

修改路径:

$ oclumon manage -repos reploc/shared/oracle/chm
     修改大小:

$ oclumon manage -repos resize 68083 <==在3600(小时) 到 259200(3天)之间
      rac1 --> retention check successful
      New retention is 68083 and will use1073750609 bytes of disk space
      CRS-9115-Cluster Health Monitor repositorysize change completed on all nodes.
      Done

获得CHM生成的数据的方法

1. 一种是使用Grid_home/bin/diagcollection.pl:
        1). 首先,确定clusterlogger service的主节点:
         $ oclumon manage -getmaster
         Master = rac2

2).用root身份在主节点rac2执行下面的命令:
         # /bin/diagcollection.pl-collect -chmos -incidenttime inc_time -incidentduration duration
         inc_time是指从什么时间开始获得数据,格式为MM/DD/YYYY24HH:MM:SS, duration指的是获得开始时间后多长时间的数据。

比如:#diagcollection.pl-collect -crshome /u01/app/11.2.0/grid-chmoshome  /u01/app/11.2.0/grid -chmos -incidenttime06/15/201215:30:00 -incidentduration 00:05

3).运行这个命令之后,CHM的数据会生成在文件chmosData_rac2_20120615_1537.tar.gz。

2. 另外一种获得CHM生成的数据的方法为oclumon:
 $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 node2node3 -last "12:00:00" >/tmp/chm1.txt
       $ oclumon dumpnodeview -allnodes-last "00:15:00" >/tmp/chm1.txt

下面是/tmp/chm1.txt中的部分内容:
----------------------------------------
Node: rac1 Clock: ‘06-15-12 07.40.01‘ SerialNo:168880
----------------------------------------

SYSTEM:
#cpus: 1 cpu: 17.96 cpuq: 5 physmemfree: 32240 physmemtotal: 2065856 mcache:1064024 swapfree: 3988376 swaptotal: 4192956 ior: 57 io
w: 59 ios: 10 swpin: 0 swpout: 0 pgin: 57 pgout: 59 netr: 65.767 netw: 34.871 procs:183 rtprocs: 10 #fds: 4902 #sysfdlimit: 6815744
 #disks: 4 #nics: 3  nicErrors: 0

TOP CONSUMERS:
topcpu: ‘mrtg(32385) 64.70‘ topprivmem: ‘ologgerd(8353) 84068‘ topshm:‘oracle(8760) 329452‘ topfd: ‘ohasd.bin(6627) 720‘ topthread:
 ‘crsd.bin(8235) 44‘

PROCESSES:

name: ‘mrtg‘ pid: 32385 #procfdlimit: 65536 cpuusage: 64.70 privmem: 1160 shm:1584 #fd: 5 #threads: 1 priority: 20 nice: 0
name: ‘oracle‘ pid: 32381 #procfdlimit: 65536 cpuusage: 0.29 privmem: 1456 shm:12444 #fd: 32 #threads: 1 priority: 15 nice: 0
...
name: ‘oracle‘ pid: 8756 #procfdlimit: 65536 cpuusage: 0.0 privmem: 2892 shm:24356 #fd: 47 #threads: 1 priority: 16 nice: 0

----------------------------------------
Node: rac2 Clock: ‘06-15-12 07.40.02‘ SerialNo:168878
----------------------------------------

SYSTEM:
#cpus: 1 cpu: 40.72 cpuq: 8 physmemfree: 34072 physmemtotal: 2065856 mcache:1005636 swapfree: 3991808 swaptotal: 4192956 ior: 54 io
w: 104 ios: 11 swpin: 0 swpout: 0 pgin: 54 pgout: 104 netr: 77.817 netw: 33.008procs: 178 rtprocs: 10 #fds: 4948 #sysfdlimit: 68157
44 #disks: 4 #nics: 4  nicErrors: 0

TOP CONSUMERS:
topcpu: ‘orarootagent.bi(8490) 1.59‘ topprivmem: ‘ologgerd(8257) 83108‘ topshm:‘oracle(8873) 324868‘ topfd: ‘ohasd.bin(6744) 720‘ t
opthread: ‘crsd.bin(8362) 47‘

PROCESSES:

name: ‘oracle‘ pid: 9040 #procfdlimit: 65536 cpuusage: 0.19 privmem: 6040 shm:121712 #fd: 33 #threads: 1 priority: 16 nice: 0
...

关于CHM的更多解释,请参考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)

时间: 2024-08-23 23:46:52

Oracle Cluster Health Monitor(CHM)简介的相关文章

转 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 Inf

Oracle 12c Cluster Health Monitor 详解

注:本文谢绝转载! 1  CHM 概述 Cluster HealthMonitor 会通过OS API来收集操作系统的统计信息,如内存,swap 空间使用率,进程,IO 使用率,网络等相关的数据. CHM 的信息收集是实时的,在11.2.0.3 之前是每1秒收集一次,在11.2.0.3 之后,改成每5秒收集一次数据,并保存在CHM 仓库中. 这个收集时间间隔不能手工修改. CHM 的目的也是为了在出现问题时,提供一个分析的依据,比如节点重启,hang,实例被驱逐,性能下降,这些问题都可以通过对C

Oracle 11g Health Monitor Checks

说明:Health Monitor是11g引入的用于检查数据库的各个组件(包括文件.内存.事务处理完整性.元数据和进程使用情况).这些检查器将生成检查结果报表以及解决问题的建议.可在数据库脱机(nomount)和联机(open或mount)的情况下执行,运行状况检查都可以在DB-online模式下运行.只有redo完整性检查和db结构完整性检查需要在数据库脱机模式下进行.支持的检查条目: SQL> select name,offline_capable,description,internal_

健康监控器(Health Monitor)

健康监控器(Health Monitor)ORACLE 11G 中引入了免费的数据库健康监控器,通过DBMS_HM程序包来完成. 检查项目:1.DB结构完整性检查 2.数据块及完整性检查 3.中做日志完整性检查 4.Undo段完整性检查 5.事物完整性检查 6.数据字典完整性检查 SQL> select name,description from v$hm_check;NAME                           DESCRIPTION----------------------

Linux/Unix shell 监控Oracle告警日志(monitor alter log file)

使用shell脚本实现对Oracle数据库的监控与管理将大大简化DBA的工作负担,如常见的对实例的监控,监听的监控,告警日志的监控,以及数据库的备份,AWR report的自动邮件等.本文给出Linux 下使用 shell 脚本来监控 Oracle 告警日志(monitor alter log file). Linux Shell的相关参考:        Linux/Unix shell 脚本中调用SQL,RMAN脚本        Linux/Unix shell sql 之间传递变量   

oracle cluster verfication utility failed

节点间的时间同步对于Oracle来说是非常重要的,在11g版本之前往往通过搭建NTP服务器完成时间同步.在Oracle 11g中新增加了一个CTSS(Cluster Time Synchronization Services,集群时间同步服务)服务,用来完成集群节点间时间同步.在安装Grid Infrastructure过程中,如果没有发现节点有NTP服务,就会自动安装CTSS. 1. NTP时间同步服务配置 NTP是传统的时间同步服务,往往在一个企业中有一个专门的时间同步服务器,这种情况依然可

Oracle 10g bigfile表空间简介

Oracle 10g bigfile表空间简介 01. A Bigfile 表空间包含一个非常大的数据文件 02. SMALLFILE表空间和BIGFILE表空间可以在同一个数据库共存 1.创建一个bigfile表空间 SQL> CREATE BIGFILE TABLESPACE  big01 datafile '/oracle/oradata/orcl/big01.dbf' size 50M; Tablespace created. 1.2 查看数据库所有表空间bigfile属性,BIG01为

Failed to upgrade Oracle Cluster Registry configuration(root.sh)

近期在给客户基于Suse 11 sp3安装Oracle 10g RAC,在安装完clusterware运行/u01/app/crs/root.sh时收到错误提示.Failed to upgrade Oracle Cluster Registry configuration因为当前的环境使用了多路径,从Oracle的描写叙述来看.这是一个Oracle Bug(4679769),假设你有同样的问题,请接着往下看. 一.故障现象suse11a:/u01/app/crs # /u01/app/crs/r

About Oracle Cluster Registry

Oracle Cluster Registry (OCR) is a file that contains information about the cluster node list and instance-to-node mapping information. OCR also contains information about Oracle Clusterware resource profiles for resources that you have customized. T