Oracle CRS/GI 程式介紹 來自oracle官方部落格

羽化殘虹發表於2014-10-03



     在10g和11.1,Oracle的叢集稱為CRS(Oracle Cluster Ready Service), 在11.2,Oracle的叢集稱為GI(Grid Infrastructure)。 對於CRS/GI,他們的一些核心程式的功能基本類似,但是在11.2,新增了很多新的Deamon程式。

10.2 CRS:
$ ps -ef|grep crs/bin
root      4373  3605  0 Feb25 ?        00:02:49 /u01/app/crs/bin/crsd.bin reboot
oracle    4380  4379  0 Feb25 ?        00:00:03 /u01/app/crs/bin/evmd.bin
oracle    4925  4888  0 Feb25 ?        00:00:00 /u01/app/crs/bin/oclsomon.bin
root      4928  4483  0 Feb25 ?        00:00:00 /u01/app/crs/bin/oprocd.bin run -t 1000 -m 10000 -
hsi 5:10:50:75:90 -f
oracle    5065  4512  0 Feb25 ?        00:00:54 /u01/app/crs/bin/ocssd.bin
oracle    6825  4380  0 Feb25 ?        00:00:00 /u01/app/crs/bin/evmlogger.bin -o

11.2 GI:
$ ps -ef|grep grid/bin
root      6656     1  0 Feb25 ?        00:09:20 /u01/app/11.2.0/grid/bin/ohasd.bin reboot
grid      7960     1  0 Feb25 ?        00:16:54 /u01/app/11.2.0/grid/bin/oraagent.bin
grid      7972     1  0 Feb25 ?        00:00:05 /u01/app/11.2.0/grid/bin/mdnsd.bin
grid      7982     1  0 Feb25 ?        00:03:45 /u01/app/11.2.0/grid/bin/gpnpd.bin
grid      7993     1  0 Feb25 ?        00:14:19 /u01/app/11.2.0/grid/bin/gipcd.bin
root      7995     1  1 Feb25 ?        00:41:42 /u01/app/11.2.0/grid/bin/orarootagent.bin
root      8010     1  0 Feb25 ?        00:28:03 /u01/app/11.2.0/grid/bin/osysmond.bin
root      8026     1  0 Feb25 ?        00:01:31 /u01/app/11.2.0/grid/bin/cssdmonitor
root      8040     1  0 Feb25 ?        00:02:22 /u01/app/11.2.0/grid/bin/cssdagent
grid      8057     1  1 Feb25 ?        00:48:04 /u01/app/11.2.0/grid/bin/ocssd.bin
root      8136     1  0 Feb25 ?        00:02:49 /u01/app/11.2.0/grid/bin/octssd.bin reboot
grid      8158     1  0 Feb25 ?        00:02:24 /u01/app/11.2.0/grid/bin/evmd.bin
root      8278     1  0 Feb25 ?        00:04:18 /u01/app/11.2.0/grid/bin/crsd.bin reboot
grid      8357  8158  0 Feb25 ?        00:00:00 /u01/app/11.2.0/grid/bin/evmlogger.bin -o 
/u01/app/11.2.0/grid/evm/log/evmlogger.info -l /u01/app/11.2.0/grid/evm/log/evmlogger.log
grid      8406     1  0 Feb25 ?        00:11:22 /u01/app/11.2.0/grid/bin/oraagent.bin
root      8414     1  1 Feb25 ?        00:36:22 /u01/app/11.2.0/grid/bin/orarootagent.bin

我們對這些常見的叢集程式做一些解釋:

各個版本共有的:
1. ocssd.bin:這是一個很核心的程式,如果它異常終止會導致這個節點的叢集或者主機重啟。這個程式主要用於檢查表決盤能否正常訪問,節點私網間的通訊是否正常。資料庫例項上的LMON程式也會註冊到CSSD上,這樣CSSD會通過LMON來了解資料庫例項的健康情況。
  如果節點發生了主機自動重啟,需要檢視ocssd的日誌,位於: /log//cssd。

  可以參考下面的文件來了解節點重啟:
如何診斷節點重啟問題
11gR2 如何診斷節點重啟問題

2. crsd.bin: 這個程式主要用於管理叢集中的資源。用來啟動、停止檢查一些資源,比如資料庫例項、ASM、監聽、磁碟組、VIP等。在11.2,這些具體的操作由對應的agent執行。另外,OCR的維護也是由CRSD完成的。
   當發現某些資源異常終止後,首先需要檢視crsd的日誌:/log//crsd。

3. evmd.bin: 事件監控(event monitor)程式,由它來發布叢集事件,比如例項啟動、停止等事件。

4. ons程式:Oracle Notification Service daemon,它用於接收evmd發來的叢集事件,然後將這些事件傳送給應用預訂者或者本地的監聽,這樣就可以實現FAN(Fast Application Notification),應用能夠接收到這些事件並進行處理。

5. gsd: 只有當CRS或者GI上需要管理9i的資料庫時才需要。在11.2, gsd 預設就是offline的。
可以參考My Oracle Support 文件: GSD Is Used Only if 9i RAC Database is Present (Doc ID 429966.1)

10g和 11.1特有的:
1. oprocd.bin:Oracle Clusterware Process Monitor Daemon,用來監控主機hang,如果發現主機hang後會發起主機重啟。只有未使用第三方的叢集軟體時才執行,Linux上從10.2.0.4開始使用。
   oprocd的日誌會在:/etc/oracle/oprocd/*.log.* 或者 /var/opt/oracle/oprocd/*.log.*。

2. oclsomon.bin: 用來監控ocssd程式是否hang,如果發現hang,會發起reboot.


11.2特有的:
1. cssdagent(11.2): 這個程式由ohasd啟動,然後由它來啟動、停止、檢查ocssd程式,以root身份執行。
   它的日誌位於:/log//agent/ohasd/oracssdagent_root

2. cssdmonitor(11.2):監控cssdagent,並且檢查節點hang(類似於oprocd),監控ocssd程式是否hang(類似於oclsomon),監控vendor clusterware(類似於vmon),以root身份執行。
   它的日誌位於:/log//agent/ohasd/oracssdmonitor_root

3. ohasd.bin: 在GI啟動時,最先啟動的就是ohasd,然後由它啟動agent(orarootagent,oraagent, cssdagnet 和 cssdmonitor) ,各個agent再啟動對應的程式。  
    如果GI啟動過程有問題,可以檢視一下ohasd的日誌:/log//agent/ohasd


4. mdnsd.bin:這個程式通過多播(Multicast)發現叢集中的節點和所有的網路卡資訊。一定要確定叢集中的網路卡支援多播,而且節點間的通訊正常。
   它的日誌位於:/log//mdnsd

5. gpnpd.bin: 釋出構建叢集所需要的bootstrap 資訊,並且在叢集的所有節點之間同步gpnp profile。
   它的日誌位於:/log//gpnpd

6. gipcd.bin: 這個程式負責管理叢集中所有的私網(cluster interconnect)網路卡。私網資訊是通過gpnpd獲得的。
   它的日誌位於:/log//gipcd

7. gnsd(可選): Grid Naming Service. 相當於子DNS,功能和DNS類似,會取代使用/etc/hosts進行主機的解析。
   它的日誌位於:/log//gnsd

8. octssd.bin: The Cluster Time Sync Service(CTSS) 用於各個節點間的時鐘同步,叢集中的一個節點的時鐘會作為參照節點,其它節點和這個節點進行時鐘同步。注意:當第三方時間同步軟體(例如:NTP) 存在時,CTSS會以‘觀察者’的方式執行,並不修改節點時間,但是,如果CTSS沒有發現第三方時間同步軟體,它會開始修改節點時間以便和參考節點同步。
   它的日誌位於:/log//ctssd.

9. osysmond.bin :這是Oracle Cluster Health Monitor(CHM)的主要程式,這個程式在所有節點都會執行,sysmond會將每個節點的資源使用情況傳送給cluster logger service,後者將會把所有節點的資訊都接收並儲存到CHM的資料庫。
   它的日誌位於:/log//crfmond/crfmond.log 

10. ologgerd: 這是Oracle Cluster Health Monitor(CHM)的另一個主要程式,在一個叢集中的,ologgerd 會有一個主機點(master),還有一個備節點(standby)。當ologgerd在當前的節點遇到問題無法啟動後,它會在備用節點啟用。
   它的日誌位於:/log//crflogd/crflogd.log

關於CHM,請參考:
11gR2 新特性:Oracle Cluster Health Monitor(CHM)簡介

11. agent.bin:在11.2,各個資源的啟動、停止和檢查都是由agent來執行的。ohasd 會把這些agent啟動。

Agent包括兩種,一種是ohasd的:
oraagent_grid: 啟動/停止/檢查/清除ora.asm, ora.evmd, ora.gipcd, ora.gpnpd, ora.mdnsd等資源。
orarootagent_root:啟動/停止 /檢查/清除 ora.crsd, ora.ctssd, ora.diskmon, ora.drivers.acfs, ora.crf (11.2.0.2)等資源。
oracssdagent_root: 啟動/停止/檢查 ocssd程式。
oracssdmonitor_root:監控cssdagent程式。

它們的日誌位於:/log//agent/ohasd

另一種是crsd的:
oraagent_grid: 啟動/停止/檢查/清除 asm, ora.eons, ora.LISTENER.lsnr, SCAN listeners, ora.ons, diskgroup  等資源
oraagent_oracle: 啟動/停止/檢查/清除 service, database 等資源
orarootagent_root : 啟動/停止/檢查/清除 GNS, VIP, SCAN VIP and network 等資源.
scriptagent_grid:  應用服務定製的服務。

它們的日誌位於:/log//agent/crsd

關於agent的更多資訊,請參考文章 "11gR2 Agent 簡介"。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26175573/viewspace-1288270/,如需轉載,請註明出處,否則將追究法律責任。

相關文章