程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle教程 >> Oracle12cClusterHealthMonitor詳解

Oracle12cClusterHealthMonitor詳解

編輯:Oracle教程

Oracle12cClusterHealthMonitor詳解


1 CHM 概述

Cluster HealthMonitor 會通過OS API來收集操作系統的統計信息,如內存,swap 空間使用率,進程,IO 使用率,網絡等相關的數據。

CHM 的信息收集是實時的,在11.2.0.3 之前是每1秒收集一次,在11.2.0.3 之後,改成每5秒收集一次數據,並保存在CHM 倉庫中。 這個收集時間間隔不能手工修改。

CHM 的目的也是為了在出現問題時,提供一個分析的依據,比如節點重啟,hang,實例被驅逐,性能下降,這些問題都可以通過對CHM 收集的數據進行分析。

而通過對這些常量的監控,也可以提前知道系統的運行狀態,資源是否異常。

其實在GI 11.2.0.2 中,ORACLE 就把CHM 整合到GI中了,所以在11.2.0.2 的Linux 和Solaris 的2個平台中,不需要單獨的安裝CHM。

AIX 平台和Windows是在11.2.0.3 版本中整合進來的,11.2.0.2 之前的版本如果需要使用CHM的功能,必須從OTN上手工下載安裝,並且在11.2.0.2 之前的版本中,也是沒有Windows 的版本呢。

歸納如下:

11.2.0.1 之前: Linuxonly (download from OTN)

11.2.0.2: Solaris (Sparc 64 and x86-64only), and Linux.

11.2.0.3: AIX, Solaris (Sparc 64 and x86-64only), Linux, and Windows.

注意CHM不支持任何 Itanium 平台。

另外要注意,從OTN上下載的CHM 只能在單實例安裝,並且從OTN 上下載的CHM 也只有Linux 和 Windows版本,對於11.2 之後的版本,CHM 只能在GI(RC)環境下運行。

在之前的版本裡,當系統出現問題時,比如節點重啟,我們都會部署OSW,來收集相關的信息。

既然是2個類似的工具,那麼肯定就有對比和選擇:

(1) CHM直接調用OS的API來降低開銷,而OSWatcher則是直接調用OS命令,CHM 對CPU 小消耗小於5%(core),幾乎沒有影響。

(2) 相對於OSW,CHM 收集的頻率更快,每秒一次,

(3) 與OSW比,CHM 不會收集top,traceroute,netstat 的信息。

(4) OSW 是運行在user priority,所以在CPU 負載很高的時候,是不能工作的,也就是說CHM 可以收集到OSW 收集不到的數據。

所以如果在部署一個工具的情況下,不能定位問題,那就2個工具都用上,如果只能選擇一個,那就選擇CHM。

2 CHM 基本管理

2.1 CHM 的資源的管理

由Oracle GI 管理的對象都有資源名,CHM 也不例外,其對應的資源名叫:ora.crf。 可以使用如下命令查看:

[root@rac1 ~]# crsctl stat res -t -init

--------------------------------------------------------------------------------

Name Target State Server Statedetails

--------------------------------------------------------------------------------

Cluster Resources

--------------------------------------------------------------------------------

ora.asm

1 ONLINE ONLINE rac1 Started,STABLE

ora.cluster_interconnect.haip

1 ONLINE ONLINE rac1 STABLE

ora.crf

1 ONLINE ONLINE rac1 STABLE

ora.crsd

1 ONLINE ONLINE rac1 STABLE

……



[root@rac2 ~]# crsctl stat res -t -init

--------------------------------------------------------------------------------

Name Target State Server Statedetails

--------------------------------------------------------------------------------

Cluster Resources

--------------------------------------------------------------------------------

ora.asm

1 ONLINE ONLINE rac2 Started,STABLE

ora.cluster_interconnect.haip

1 ONLINE ONLINE rac2 STABLE

ora.crf

1 ONLINE ONLINE rac2 STABLE

ora.crsd

1 ONLINE ONLINE rac2 STABLE

ora.cssd

1 ONLINE ONLINE rac2 STABLE


查看到資源名之後,就可以按照普通資源一樣,對其進行管理。

 

[root@rac1 ~]# crsctl stop res ora.crf-init

CRS-2673: Attempting to stop 'ora.crf' on'rac1'

CRS-2677: Stop of 'ora.crf' on 'rac1'succeeded



[root@rac1 ~]# crsctl stat res -t -init

--------------------------------------------------------------------------------

Name Target State Server Statedetails

--------------------------------------------------------------------------------

Cluster Resources

--------------------------------------------------------------------------------

ora.asm

1 ONLINE ONLINE rac1 Started,STABLE

ora.cluster_interconnect.haip

1 ONLINE ONLINE rac1 STABLE

ora.crf

1 OFFLINE OFFLINE STABLE

ora.crsd

1 ONLINE ONLINE rac1 STABLE



[root@rac1 ~]# crsctlstart res ora.crf -init

CRS-2672: Attempting to start 'ora.crf' on 'rac1'

CRS-2676: Start of 'ora.crf' on 'rac1'succeeded



[root@rac1 ~]# crsctl stat res -t -init

--------------------------------------------------------------------------------

Name Target State Server Statedetails

--------------------------------------------------------------------------------

Cluster Resources

--------------------------------------------------------------------------------

ora.asm

1 ONLINE ONLINE rac1 Started,STABLE

ora.cluster_interconnect.haip

1 ONLINE ONLINE rac1 STABLE

ora.crf

1 ONLINE ONLINE rac1 STABLE

ora.crsd

1 ONLINE ONLINE rac1 STABLE

我們對CHM 資源的啟動和停止,只影響是否手機CHM的數據,不會對GI和DB 產生影響。

2.2 CHM 的管理工具和命令

Oracle 的CHM也有自己專用的管理工具和命令。

2.2.1 CHMOSG工具

圖形化的管理工具是CHMOSG(CHM/OSGraphical User Interface),默認沒有安裝,需要單獨從OTN上下載。

 

CHMOSG 工具會已圖形化的方式詳細的展示相關數據。

 

\

 

具體的安裝和使用參考官網的說明:

下載地址:

www.oracle.com/technetwork/products/clusterware/downloads/chm-os-ui-1554902.zip

2.2.2 oclumon 命令行工具

OCLUMON 命令行工具可以查詢CHM倉庫的相關信息。

如果是在安裝GI時安裝的,oclumon工具默認在$GI_HOME/bin下。 如:

[grid@rac1 ~]$ whichoclumon

/u01/gridsoft/12.1.0.2/bin/oclumon

如果是手工從OTN 上下載的,linux在/usr/lib/oracrf/bin 目錄,Windows在C:\ProgramFiles\oracrf\bin目錄。

具體命令使用參考命令幫助:

[grid@rac1 ~]$ oclumon -h

For help from command line : oclumon <verb> -h

For help in interactive mode : <verb>-h

Currently supported verbs are :

dumpnodeview, manage, version, debug,analyze, quit, exit, and help



[grid@rac1 ~]$ oclumon dumpnodeview -h



dumpnodeview verb usage

=======================

The dumpnodeview command reports monitoredrecords in the text format. The

collection of metrics for a node at a givenpoint in time (a timestamp) is

called a node view.



* Usage

dumpnodeview [-allnodes | -n <node1> ...] [-last <duration>|

-s <timestamp> -e<timestamp>][-i <interval>][-v]



*Where

-n<node1> ... = Dump node views forspecified nodes

-allnodes = Dump node viewsfor all nodes

-s<timestamp> = Specify start timefor range dump of node views

-e <timestamp> = Specify end time for range dump of nodeviews

Absolute timestamp must bein "YYYY-MM-DD HH24:MI:SS"

format, for example"2007-11-12 23:05:00"

-last <duration> = Dump the latest node views for a specifiedduration.

Duration must be in"HH24:MI:SS" format, for example

"00:45:00"

-v = Dump verbosenode views

-i = Dump node viewsseparated by the specified

interval in seconds. Mustbe a multiple of 5.



*Requirements and notes

Tostop continuous display, use Ctrl-C on Linux or UNIX and Esc on Windows.

-sand -e need to be specified together for range dumps of node views.

Thelocal System Monitor Service (osysmond) must be running to get dumps.

TheCluster Logger Service (ologgerd) must be running to get dumps.



*Defaults :

Mode : Continuous mode



*Example :

oclumon dumpnodeview -n node1 node2 node3 -last "12:00:00"

oclumon dumpnodeview -last "00:10:00" -i 30



[grid@rac1 ~]$

3 分析CHM 監控數據

 

所謂的分析,就是從CHM 倉庫中,把我們需要的數據抽取出來,這裡需要使用diagcollection.pl命令。

 

[grid@rac1 ~]$ diagcollection.pl -h

Production Copyright 2004, 2010,Oracle. All rights reserved

Cluster Ready Services (CRS) diagnosticcollection tool

diagcollection

--collect

[--crs] For collecting crs diagnostic information

[--adr] For collecting diagnostic information for ADR; specify ADRlocation

[--chmos] For collecting Cluster Health Monitor (OS) data

[--acfs] Unix only. For collecting ACFS diagnostic information

[--all] Default.For collecting all diagnostic 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 thespecified time. Specify in YYYYMMDDHHMISS24 format

[--beforetime] Supported with -adr option. Collects archives before thespecified date. Specify in YYYYMMDDHHMISS24 format

[--crshome] Argument that specifies the CRS Home location

[--incidenttime] Collects Cluster Health Monitor (OS) data from thespecified time. Specify inMM/DD/YYYYHH24:MM:SS format

If not specified, ClusterHealth Monitor (OS) data generated in the past 24 hours are collected

[--incidentduration] Collects Cluster Health Monitor (OS) data for theduration after the specified time. Specify in HH:MM format.

If not specified, all ClusterHealth 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 thediagnosability

information gathered bythis script



--coreanalyze UNIX only. Extractsinformation from core files

and stores it in a textfile

[grid@rac1 ~]$


用grid用戶執行命令:diagcollection.pl--collect --chmos

 

該命令會輸出所有CHM 倉庫中收集的數據。 如果數據很多,那麼就需要很長時間,所以一般只查詢特定時間內的數據。

 

[root@rac1 ~]# diagcollection.pl --collect--chmos

Production Copyright 2004, 2010,Oracle. All rights reserved

Cluster Ready Services (CRS) diagnosticcollection tool

ORACLE_BASE is /u01/gridbase

Collecting Cluster Health Monitor (OS) data

Version: 12.1.0.2.0

Collecting OS logs

Collecting sysconfig data



[root@rac1 ~]# ls -lrt

-rw-r--r-- 1 root root 9815498 Dec 12 16:28chmosData_rac1_20141212_1628.tar.gz

-rw-r--r-- 1 root root 267373 Dec 12 16:28osData_rac1_20141212_1628.tar.gz

注意:

如果是收集所有的數據,在完成之後,會對收集的數據打包,所以這時,就會需要tar命令,所以要注意當前目錄是否有權限,否則就需要換對應的用戶,我這裡是root用戶,配置了環境變量,一樣使用。

--收集最後一小時的數據:

[root@rac1 ~]# oclumon dumpnodeview-allnodes -v -last "1:00:00"

 

該命令會分析所有節點最後一小時內的所有數據,但默認情況下,會把所有輸出都顯示在命令行,這樣根本就不能分析,所以一般都是直接重定向輸出到某個文件。

如:

[root@rac1 ~]# oclumon dumpnodeview-allnodes -v -last "1:00:00" > /tmp/zhixin.log

[root@rac1 ~]# cat /tmp/zhixin.log

--收集特定時間段:

 

[grid@rac1tmp]$ diagcollection.pl --collect --crshome $ORACLE_HOME --chmos--incidenttime "12/12/201414:01:01" --incidentduration "01:00"



Production Copyright 2004, 2010,Oracle. All rights reserved

Cluster Ready Services (CRS) diagnosticcollection tool

Warning: Script executed while not loggedin as as root

Some diagnostic data may not be collected

Collecting Cluster Health Monitor (OS) data

Version: 12.1.0.2.0

Collecting OS logs

/bin/tar: var/log/messages: Cannot open:Permission denied

/bin/tar: var/log/messages-20141208: Cannotopen: Permission denied

/bin/tar: Exiting with failure status dueto previous errors

gzip: osData_rac1_20141212_1643.tar.gzalready exists; do you wish to overwrite (y or n)? y

Collecting sysconfig data

[grid@rac1 tmp]$

注意:

(1)這裡的時間格式,必須按這種來,具體參考命令的幫助手冊。

(2) 在11.2.0.2 中,因為bug 10048487的存在,不能分析所有的CHM數據,只能按時間來收集。

如果想收集更詳細的數據,可以提高CHM的log 級別,語法如下:

oclumon debug log all allcomp:<tracelevel from 0 to 3>

級別越高,收集的信息越多,默認level 是1. 如果0,則不會收集log 數據。所以在調整之後,一旦測試完成,要記得修改成1.

用root用戶執行:

[root@rac1 ~]# oclumon debug log allallcomp:1

[root@rac1 ~]# oclumon debug log allallcomp:2

[root@rac1 ~]# oclumon debug log allallcomp:1

4 CHM 對磁盤空間的要求

默認情況下,CHM監控所有節點的數據需要1G的空間,每個節點每天產生約500M的數據。CHM 倉庫默認保留3天,所以CHM 倉庫的空間也是在不斷增加。

也就是說,在啟動CHM 功能的情況下,CHM倉庫最低需要1G的空間。

可以通過如下命令查選CHM 倉庫收集數據的保留時間:

[grid@rac1 tmp]$ oclumon manage -getrepsize

CHM Repository Size = 136320 seconds

[grid@rac1 tmp]$

這裡的單位是秒,因為CHM 是每秒收集一次。

假設每天720MB 的數據,那麼默認的策略就是

2*720MB*3=4320M 也就是4G多數據。

可以通過如下命令調整CHM 倉庫裡數據的保留時間:

oclumon manage -repos checkretentiontime xx

這裡單位是秒,Oracle 建議是259200秒,也就是3天。

[grid@rac1 tmp]$ oclumon manage -reposcheckretentiontime 259200

The Cluster HealthMonitor repository is too small for the desired retention. Please first resizethe repository to 3896 MB

[grid@rac1 tmp]$ oclumon manage -getrepsize

CHM Repository Size = 136320 seconds

[grid@rac1 tmp]$

這裡提示提示空間不夠,需要先增加CHM 倉庫的空間。

默認情況下,CHM 倉庫就是MGMTDB實例,其默認存放在OCR 的磁盤組裡,所以我們這裡需要增加OCR磁盤組的空間,才能修改。

如果CHM 倉庫的占用的空間較大,可以通過如下命令修改CHM 倉庫大小:

oclumon manage -repos changerepossize <memsize>.

注意:最低不小於1024MB,否則報錯。

[grid@rac1 client]$ oclumon manage -reposchangerepossize 2500

The Cluster Health Monitor repository wassuccessfully resized.The new retention is 166380 seconds.

[grid@rac1 client]$

修改成功。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved