【DB筆試面試732】在Oracle中,Oracle Cluster Health Monitor(CHM)的作用是什麼?
- 2020 年 1 月 20 日
- 筆記
♣
題目部分
在Oracle中,Oracle Cluster Health Monitor(CHM)的作用是什麼?
♣
答案部分
CHM(Cluster Health Monitor,集群健康監控)是一個Oracle提供的工具,用來自動收集作業系統的資源(CPU、記憶體、SWAP、進程、I/O以及網路等)的使用情況。CHM會每秒收集一次數據。這些系統資源數據對於診斷集群系統的節點重啟、Hang、實例驅逐(Eviction)、性能問題等是非常有幫助的。另外,用戶可以使用CHM來及早發現一些系統負載高、記憶體異常等問題,從而避免產生更嚴重的問題。CHM也可以用來在系統出現異常時快速收集異常時刻的數據。相對於OSWatcher,CHM直接調用OS的API來降低開銷,而OSWatcher則是直接調用UNIX命令;另外,CHM的實時性更強,每秒收集一次數據,從Oracle 11.2.0.3開始改為了每5秒一次。OSWatcher的優點是可以用traceroute命令檢測私網間的連通性,而且生成的數據的保留時間可以設置得很長。如果可以的話,最好是兩個工具都安裝。
在Oracle 11.2.0.3之後,AIX和Linux平台在安裝Grid時默認安裝CHM。常用的命令如下所示:
crsctl stat res ora.crf -init -p #查看ora.crf狀態 oclumon manage -get master #查看CHM當前主節點 oclumon manage -get reppath #查看CHM數據保存路徑 oclumon manage -repos reploc /shared/oracle/chm #修改CHM數據保存路徑 oclumon manage -get repsize #查看CHM數據保留時間(s) oclumon manage -repos resize 68083 #修改CHM數據保留時間(s)
在集群中,可以通過下面的命令查看CHM對應的資源(ora.crf)的狀態:
[root@rac2 ~]# crsctl stat res -t -init |grep -1 ora.crf ora.crf 1 ONLINE ONLINE rac2
CHM主要包括兩個服務:
1、System Monitor Service(osysmond):這個服務在所有節點都會運行,osysmond會將每個節點的資源使用情況發送給Cluster Logger Service,後者將會把所有節點的資訊都接收並保存到CHM的資料庫。
[root@rac2 ~]# ps -ef|grep osysmond root 29498 1 1 15:18 ? 00:01:31 /u01/app/11.2.0/grid/bin/osysmond.bin
2、Cluster Logger Service(ologgerd):在一個集群中,ologgerd會有一個主節點(Master),還有一個備節點(Standby)。當ologgerd在當前的節點遇到問題而無法啟動後,它會在備用節點啟用。該服務會將osysmond收集的數據保存到CHM資料庫中($GRID_HOME/crf/db)。
主節點:
$ ps -ef|grep ologgerd root 8257 1 0 Jun05 ? 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 0 Jun05 ? 00:18:47 /u01/app/11.2.0/grid/bin/ologgerd -m rac2 -r -d /u01/app/11.2.0/grid/crf/db/rac1
-M或-m後的節點表示主節點,以上結果表示節點2為主節點。
獲得CHM生成的數據的方法有兩種:
1、一種是使用Grid_home/bin/diagcollection.pl:
/u01/app/11.2.0/grid/bin/diagcollection.pl --collect --all --incidenttime 12/30/201515:13:00 --incidentduration 00:30
其中,「–incidenttime」表示採集數據開始時間,格式為MM/DD/YYYY24HH:MM:SS;「–incidentduration」表示持續時間,格式為HH:MM。生成的文件在當前目錄。
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
使用root用戶執行以下命令可以禁用CHM服務:
crsctl stop res ora.crf -init crsctl modify res ora.crf -attr "AUTO_START=never" -init crsctl modify res ora.crf -attr "ENABLED=0" -init
使用以下命令可以查看ora.crf相關的屬性:
crsctl stat res ora.crf -init -p
& 說明:
有關CHM的更多內容可以參考我的BLOG:http://blog.itpub.net/26736162/viewspace-2132364/
本文選自《Oracle程式設計師面試筆試寶典》,作者:小麥苗