一,Oracle叢集體繫結構
1,Oracle RAC,全稱是Oracle Real Application Cluster,即真正的應用叢集,是Oracle提供一個並行叢集系統,整個叢集系統由Oracle Cluster(叢集就緒軟體)和Real Application Clusters(RAC)兩大部分組成。
2,Oracle RAC的實質是位於不同作業系統的Oracle執行個體節點同時訪問同一個Oracle資料庫,每個節點通過私人網路進行通訊,相互監控節點的運行狀態;Oracle資料庫所有的資料檔案、聯機記錄檔、控制檔案等均放在叢集
共用存放裝置上,而共用存放裝置可以是RAW(樓裝置,沒有檔案系統)、ASM、OCFS2(oracle提供的共用檔案系統)等,所有叢集節點可以同時讀寫共用儲存。
3,Oracle RAC的基本拓撲圖如下所示:
4,由拓撲結構可知:
一個Oracle Rac資料庫有多個伺服器節點組成,每個伺服器節點上都有自己獨立的OS、ClusterWare、Oracle Rac資料庫程式等,並且每個節點都有自己的網路監聽器。ClusterWare是一個叢集軟體,主要用於叢集系統管理,Oracle Rac資料庫程式用於提供Oracle執行個體進程,以供用戶端訪問叢集系統,監聽服務主要用於監聽自己的網路連接埠資訊,所有的服務和程式通過作業系統都去訪問一個共用儲存,最終完成資料的讀寫。共用儲存的實現方式有很多種,可以通過自動儲存管理(ASM)、Oracle叢集檔案系統(OCFS)、裸裝置(Raw)、網路地區儲存(NAS)等來保證整個群集資料的一致性。
5,從Oracle 10g起,Oracle提供了自己的叢集軟體,即Oracle Clusterware,通過CRS(Cluster Ready Services)來實現,這個軟體是安裝Oracle RAC的前提,也是RAC環境穩定啟動並執行基礎,在Oracle 10g之前的版本,安裝RAC時必須藉助域第三方的叢集軟體,而在Oracle10g以後,安裝Oracle rac時,可以用Oracle內建的叢集軟體,也可以使用經過RAC認證的第三方叢集軟體來代替。
6,常用的叢集拓撲
7,從Oracle的運行機制來說,叢集的每台伺服器就是一個Oracle執行個體多個Oracle執行個體對應同一個Oracle資料庫,組成了Oracle資料庫叢集,可以看出,運行在兩個節點上的資料庫執行個體訪問同一個RAC資料庫,並且兩個節點的本地磁碟僅用來存放Oralce安裝程式和ClusterWare軟體,而在共用儲存上,存放了Oracle的資料庫檔案、控制檔案、聯機記錄檔、歸檔記錄檔等,這是安裝Oracle Rac時的一種資料存放分配方式,其實RAC提供了多種資料存放區方式。
二,Oracle ClusterWare 簡介
1,Cluster Ready Services 簡稱CRS,是Oracle開發的一個叢集軟體,與其他叢集軟體類似,CRS主要完成叢集成員管理、心跳監控、故障切換等功能,CRS要求每個叢集節點的作業系統必須相同,這樣,通過CRS將多個節點的作業系統綁定到了一起,用戶端對叢集的訪問,就像訪問一台伺服器一樣。
2,CRS主要有兩個叢集套件組成,分別是Voting disk 和 Oracle Cluster Registry。voting disk,即為表決磁碟,叢集中的每個節點定期評估自身的健康情況,然後把它的狀態資訊放入到表決磁碟上。並且節點間也會相互查看其運行狀態,並把資訊傳遞給其他節點進而寫入表決磁碟。當叢集節點發生故障時,還可以通過表決磁碟進行投票仲裁等,因此,表決磁碟必須放在共用存放裝置上。以保證每個節點都能訪問到。表決磁碟可以是一個裸裝置分區,也可以是一個獨立的檔案。由於它僅記錄節點運行資訊,磁碟大小一般在10-20M左右即可。
3,Oracle Cluster Registry,簡稱OCR,即叢集註冊服務,OCR主要用於記錄RAC中叢集和資料庫的配置資訊。這些資訊包括了叢集節點的列表、叢集資料庫執行個體到節點的映射以及CRS應用程式資源資訊。CRS使用兩種心跳裝置
來驗證節點成員的狀態,保證叢集的完整性:一個表決磁碟,叢集同步服務進程每隔幾秒種都會向表決磁碟寫入一條心跳資訊,叢集通過表決磁碟即可驗證節點的狀態,如果某個磁碟在指定的最大時間內沒有向表決磁碟寫入資訊,叢集就認為此節點失效了,進而執行故障切換。另一個心跳節點間私人乙太網路的心跳,通過這個心跳機制可以判斷節點間是否出現了網路故障,兩種心跳機制的結合,有效地增加了叢集的可靠性。另外,CRS建議用於內部通訊的私人乙太網路必須和用於RAC節點間通訊的網路分開,也就是不能再同一個網路中,如果RAC節點間通訊的網路和私人乙太網路心跳在同一個網路內,那麼,必須保證該網路不能被非叢集系統的節點訪問到。
三,CRS的後台進程
Oracle ClusterWare通過Cluster Ready Services來完成叢集功能,CRS包含了一組相互協作的後台進程,下面詳細介紹CRS中的幾個重要的後台進程。
1,Cluster Synchronization Services,簡稱CSS,用於管理與協調急群中的各節點的關係,並用於節點間通訊,當節點在加入或離開叢集時,都由CSS進行通知叢集。CSS在急群眾對應的後台進程為CSSD,該進程有Oracle用
戶運行和管理。當節點放生故障時,cssd會自動重啟作業系統。
2,Cluster Ready Services,簡稱CRS,是管理叢集內高可用操作的主要程式,在叢集中CRS管理所有資源,包括資料庫、服務、執行個體、vip地址、監聽器、應用進程等,CRS在叢集中對應的後台進程為CRSD,該進程可以對叢集資源進行啟動、停止、監視和容錯等操作,在正常狀態下,CRSD監控節點各種資源,當某個資源發生異常時,自動重啟或者切換該資源。
3,Process Monitor Daemon,簡稱OPROCD,此進程被鎖定在記憶體中,使用者監控叢集及提供I/O防護(I/O fencing)。OPROCD運行在每一個節點上,且週期性執行健全狀態檢查,如果在超過它所希望的間隔內,仍然不能和某節點進程通訊,那麼OPROCD將會重設處理器及重啟節點。在一個OPROCD故障也將導致ClusterWare重啟節點。
4,Oracle Noification Service,簡稱ONS,即Oracle通知服務,主要用於發布和訂閱Fast Application Notification事件。
5,Event Management,簡稱EVM,是一個事件檢測的後台進程,由Oracle使用者運行和管理。
四,RAC資料庫體繫結構進程
1,RAC資料庫簡介
RAC資料庫是一個具有共用快取體繫結構的叢集資料庫,他克服了傳統不共用和共用磁碟方法的限制,為所有的商務應用程式提供了一種具有延展性和可用性的資料庫解決方案,它一般與Oracle 、clusterWare或第三方叢集軟體共同組成Oracle叢集系統。
2,RAC資料庫是一個全共用的體系架構,它的所有資料檔案、控制檔案、練級記錄檔、參數檔案等都必須存放在共用磁碟中,因為只有這樣,所有的節點才能訪問到,RAC支援多種儲存方式,可以使用下面幾種方式的任意一種:
五,RAC資料庫的儲存方式
1,裸裝置(Raw devices)
也就是不經過檔案系統,將資料直接儲存寫入磁碟中,這種方式的好處是磁碟I/O效能很高,適合寫操作頻繁的業務系統,但缺點也很明顯:資料維護和備份不方便,備份只能通過dd命令或者基於塊層級的備份裝置來完成,這無疑增加了維護成本。
2,叢集檔案系統
為了支援共用儲存,Oralce開發了叢集檔案系統OCFS,這個檔案系統可用於Windows、Linux和Solaris,現在已經發展到了OCFS2,通過OCFS2檔案系統,多個叢集節點可以同時讀寫一個磁碟而不破壞資料,但對於大量讀寫業務系統,效能不是很高。另外,Oracle RAC也支援第三方叢集檔案系統,例如:RedHat的GFS等。
3,網路檔案系統(NFS)
4,Automated Storage Management
Automate Storage Management,簡稱ASM,是Oracle推薦的共用資料存放區方式,它是Oracle資料庫10g包含的一個特性。ASM其實就是RAW方式儲存資料,但是加入了資料管理功能,它通過將資料直接寫入磁碟,避免了經過檔案系統而產生I/O消耗。因而,使用ASM很方便的管理共用資料,並提供非同步I/O的效能。ASM還可以通過分配I/O負載來最佳化效能,免除了手動調整I/O的需要。
更多詳情見請繼續閱讀下一頁的精彩內容: