Oracle叢集件元件

舊夢依稀發表於2013-08-08
CRS是Oracle RAC 11g RAC高可用性框架的後臺引擎,它為所有平臺提供了標準叢集介面。
Oracle叢集件由"叢集就緒服務"(CRS)使用“Oracle叢集登錄檔”(OCR)和表決磁碟進行管理,OCR記錄和維持叢集及節點成員資格資訊,表決磁碟在通訊故障時充當一個仲裁者(tiebreaker)。在叢集執行期間,來自所有節點的一致性心跳資訊都會傳送給表決磁碟。
CRS有5個元件:
程式監控器守護程式(OPROCd;在11gR2版本中廢棄)
CRS守護程式(CRSd)
Oracle叢集同步服務守護程式(OCSSd)
事件卷管理器守護程式(EVMd)
Oracle通知服務(ONS)
CRSd的故障或終止可能導致節點故障,它會自動重啟節點,以避免因為節點之間可能存在的通訊故障而導致資料丟失。CRSd在UNIX平臺中以超級使用者root身份執行,在Windows平臺中作為後臺服務執行。
1、叢集就緒服務(Cluster Ready Service ,CRSd)
執行角色:root
功能:資源監控、資源故障轉移和節點恢復
程式發生故障時:程式根據啟動模式自動重新啟動。如果節點執行在reboot模式。那麼它將會重新啟動(reboot)。在以restart模式執行時,不會導致節點重新啟動。
CRS功能列表:
(1)CRS是從一個名為GRID_HOME的不同ORACLE主目錄安裝和執行的,它獨立於ORACLE_HOME。
(2)CRSd對資源進行管理,例如啟動和停止應用程式資源的服務及故障轉移。它生成獨立的程式來管理應用程式資源。
(3)CRSd在啟動期間和關閉之後有兩種執行模式。在計劃內的叢集件啟動期間,它以reboot模式啟動。在計劃外關閉之後,它以restart模式啟動。在reboot模式中,CRSd啟動受其管理的所有資源。在restart模式中,它保持原來的狀態,並使資源返回關閉前的狀態。
(4)CRS管理Oracle叢集登錄檔(OCR),並將當前已知狀態儲存在OCR中。
(5)CRS在UNIX中以root身份執行,在windows中以LocalSystem身份執行,在發生故障時會自動重新啟動。
(6)CRS需要公共介面、私有介面和虛擬IP(VIP)才能執行。在開始安裝CRS之前,公共和私有介面應當處於執行狀態,而且能夠相互ping通。
2、Oracle叢集同步服務(Cluster Synchronization Service ,CSSd)
執行角色:oracle身份
功能:基本節點成員資格、組服務和基本鎖定
程式發生故障時:節點重新啟動(restart)
CSS提供節點之間的同步服務。它提供對節點成員關係的訪問,並支援基本叢集服務,包含叢集組服務和叢集鎖定。CSS故障會導致計算機重啟。
OCSSd的功能:
(1)CSS提供基本的組服務支援。
(2)如果可以,組服務會使用供應商的叢集件組服務。但是,即使沒有叢集件組服務可用,它也能獨立工作。
(3)鎖服務提供了基本的叢集範圍內序列化鎖定功能。它使用先入先出(FIFO)機制來管理鎖定。
(4)節點使用OCR來儲存資料,並在重新配置期間更新資訊。它還管理OCR資料,這些OCR資料在其他方面是靜態的。
3、事件管理程式(EVMd)
執行角色:oracle身份
功能:生成一個子程式事件記錄器,並生成標記
程式發生故障時:自動重新啟動(restart);不會導致節點重啟(reboot)
EVMd守護程式生成一個名為evmlogger的永久子程式,在出現某些狀況時生成事件。EVMd程式發生故障時會自動重新啟動,EVMd程式的終止不會使例項停止。EVMd以Oracle使用者身份執行。
4、Oracle程式監控器(OPROCd)
執行角色:root身份
功能:提供基本的叢集完整性服務
程式發生故障時:節點重新啟動(restart)
OPROCd程式為Oracle叢集件提供了I/O隔離(fencing)解決方案。OPROCd程式的主要目的是找出潛在的叢集節點,將之掛起並重新啟動掛起節點,使掛起節點上的程式不能寫入儲存。OPROCd程式以root身份執行,它的故障會導致節點重啟。
5、Oracle通知服務(ONS)
執行角色:oracle身份
功能:用於向客戶端釋出高可用性通知
程式發生故障時:在故障期間自動重新啟動(restart)
只要叢集資源發生改變,每個叢集節點上的ONS程式就會互相通訊,並交換高可用事件資訊。CRS觸發這些HA事件,並將它們傳送到ONS程式,然後ONS程式將這一高可用性事件資訊釋出到中間層。這些FAN事件本身沒有什麼用,除非是應用程式有邏輯能夠回應ONS程式釋出的FAN事件,接收和響應這些FAN事件的最佳方法是使用一個與FAN緊密整合的客戶端,如JDBC。
6、叢集成員資格判定
7、資源管理框架
資源包括應用程式或系統元件(既包括叢集本地資源,也包括遠端資源)。
8、啟動和停止Oracle叢集件
必須使用root使用者:
srvctl start crs
srvctl stop crs
srvctl enable crs
srvctl disable crs
啟動和關閉Oracle叢集件的命令是非同步的,當它在被停止時,可能會在交回控制之前稍等一會。在一個叢集上只能執行一組CRS。
9、Oracle 11gR2中的叢集件啟動程式
Oracle 11gR2中引入了“Oracle高可用性服務”守護程式(OHASd),它啟動所有其他Oracle叢集件守護程式。
10、Oracle叢集登錄檔(OCR)
Oracle叢集件使用OCR來儲存Oracle叢集件中所定義的全部叢集資源的後設資料、配置和狀態資訊。
OCR用於引導CSS,提供埠資訊、叢集中的節點和類似資訊。Oracle在每個叢集節點上使用OCR的一個記憶體中的副本,用於優化各個節點各種守護程式對OCR的查詢。雖然每個節點都有自己的專用OCR副本,但為了確保針對OCR的原子更新,一個叢集中不允許有一個以上的CRSD程式向共享OCR檔案中寫入內容。
11、Oracle本地登錄檔
Oracle 11gR2中引入了Oracle本地登錄檔(OLR)概念,類似於Oracle叢集登錄檔,但它只儲存與本地節點有關的資訊。OLR不與叢集中的其它節點共享,在啟動或加入叢集時由OHASd使用。OLR儲存OHASd通常需要的資訊,如Oracle叢集件的版本、配置等。
12、表決磁碟(votedisk)
表決磁碟儲存了節點之間的心跳資訊,用來解決資料庫“腦裂”問題。
13、Oracle虛擬IP
引入Oracle VIP目的是確保應用程式的設計符合高可用性,消除所有單一故障點。
14、應用程式VIP
從Oracle 10gR2引入了應用程式VIP。應用程式VIP是一種用於管理網路IP地址的叢集資源。使用者必須使用/bin/usrvip指令碼在叢集中建立應用程式VIP。
普通VIP和應用程式VIP的區別:
在向仍在正常執行的節點進行故障轉移時,普通VIP不會接受連線,而是會強制客戶端使用另一個地址重新連線,而應用程式VIP在被重新定位到另一個叢集節點後仍能保持完整功能,它會繼續接受連線。
15、單一客戶端訪問名稱(SCAN)
SCAN是一個網路名稱,它解析為在DNS或GNS中註冊的3個不同IP地址。

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

相關文章