bay——Oracle RAC集羣體系結構.docx

Oracle RAC集羣體系結構

————bayaim  2018年10月22日13:33css

https://blog.51cto.com/ixdba/862207數據庫

 1、 Oracle集羣體系結構緩存

       Oracle RAC,全稱是Oracle Real Application Cluster,即真正的應用集羣,是oracle提供的一個並行集羣系統,整個集羣系統由Oracle Clusterware (集羣就緒軟件)和 Real Application Clusters(RAC)兩大部分組成。服務器

 

       oracle RAC的實質是位於不一樣操做系統的Oracle實例節點同時訪問同一個Oracle數據庫,每一個節點間經過私有網絡進行通訊,互相監控節點的運行狀態,oracle數據庫全部的數據文件、聯機日誌文件、控制文件等均放在集羣的共享存儲設備上,而共享存儲設備能夠是RAW、ASM、OCFS2等,全部集羣節點能夠同時讀寫共享存儲。Oracle RAC的基本拓撲結構以下所示:網絡

 

 

 

       由拓撲結構可知:架構

       一個Oracle Rac數據庫有多個服務器節點組成,每一個服務器節點上都有本身獨立的OS、ClusterWare、oracle Rac數據庫程序等,而且每一個節點都有本身的網絡監聽器。ClusterWare是一個集羣軟件,主要用於集羣系統管理,oracle Rac數據庫程序用於提供oracle實例進程,以供客戶端訪問集羣系統,監聽服務主要用於監控本身的網絡端口信息,全部的服務和程序經過操做系統都去訪問一個共享存儲,最終完成數據的讀寫。共享存儲的實現方式有不少種,能夠經過使用自動存儲管理(ASM)、Oracle集羣文件系統(OCFS)、裸設備(Raw)、網絡區域存儲(NAS)等來保證整個集羣系統數據的一致性。併發

       從Oracle10g起,Oracle提供了本身的集羣軟件,即Oracle clusterware,它經過CRS(即Cluster Ready Services)來實現,這個軟件是安裝oracle rac的前提,也是RAC環境穩定運行的基礎,在oracle10g以前的版本,安裝RAC時必須藉助與第三方的集羣軟件,而在oracle10g之後,安裝oracle rac時,能夠用oracle自帶的集羣軟件,也可使用通過RAC認證的第三方集羣軟件來代替。oracle

       從oracle的運行機制來講,集羣中每臺服務器就是一個oracle實例,多個oracle實例對應同一個oracle數據庫,組成了oracle數據庫集羣。請看下圖:負載均衡

 

 

 

       從圖中能夠看出,運行在兩個節點上的數據庫實例訪問同一個RAC數據庫,而且兩個節點的本地磁盤僅用來存放oracle安裝程序和ClusterWare軟件,而在共享存儲上,存放了oracle的數據文件、控制文件、聯機日誌文件、歸檔日誌文件等,這是安裝oracle Rac時的一種數據存儲分配方式,其實,RAC提供了多種數據存儲方式,這個將在下面進行獨立介紹。異步

 

 

2、 Oracle Clusterware體系結構與進程介紹

 

2.一、Oracle Clusterware 簡介

       Cluster Ready Services,簡稱CRS,是oracle開發的一個集羣軟件,與其它集羣軟件相似,CRS主要完成集羣成員管理、心跳監控、故障切換等功能,CRS要求每一個集羣節點的操做系統必須相同,這樣,經過CRS將多個節點的操做系統綁定到了一塊兒,客戶端對集羣的訪問,就像訪問一臺服務器同樣。

       CRS主要有兩個集羣套件組成,分別是voting disk和Oracle Cluster Registry。

       voting disk,即爲表決磁盤,集羣中每一個節點按期評估自身的健康狀況,而後會把它的狀態信息放入到表決磁盤上。而且節點間也會互相查看其運行狀態,並把信息傳遞給其餘節點進而寫入表決磁盤。當集羣節點發生故障時,還能夠經過表決磁盤進行投票仲裁等,所以,表決磁盤必須放在共享存儲設備上。以保證每一個節點都能訪問到。表決磁盤能夠是一個裸磁盤分區,也能夠是一個獨立的文件。因爲它僅記錄節點運行信息,磁盤大小通常在10-20M左右便可。

       Oracle Cluster Registry,簡稱OCR,即集羣註冊服務,OCR主要用於記錄RAC中集羣和數據庫的配置信息。這些信息包括了集羣節點的列表、集羣數據庫實例到節點的映射以及CRS應用程序資源信息。

       CRS使用兩種心跳設備來驗證節點成員的狀態,保證集羣的完整性:一個是表決磁盤,集羣同步服務進程每隔幾秒鐘都會向表決磁盤寫入一條心跳信息,集羣經過表決磁盤便可驗證節點的狀態,若是某個節點在指定的最大時間段內沒有向表決磁盤寫入信息,集羣就認爲此節點失效了,進而執行故障切換。另外一個心跳是節點間私有以太網的心跳,經過這個心跳機制能夠判斷節點間是否出現了網絡故障。兩種心跳機制的結合,有效的增長了集羣的可靠性。

       另外,CRS建議用於內部通信的私有以太網心跳必須與用於RAC節點間通信的網絡分開,也就是不能在同一網絡中,若是RAC節點間通信的網絡與私有以太網心跳在同一個網絡內,那麼,必須保證該網絡不能被非集羣系統的節點訪問到。

 

 

2.二、Oracle Clusterware 進程介紹

       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 Notification Service

       簡稱ONS,即oracle通告服務,主要用於發佈和訂閱Fast Application Notification事件。

5     Event Management

       簡稱EVM,是一個事件檢測的後臺進程,由oracle用戶運行和管理。

 

3、 RAC數據庫體系機構與進程

 

3.一、RAC簡介

       RAC是一個具備共享緩存體系結構的集羣數據庫,它克服了傳統的不共享和共享磁盤方法的限制,爲全部業務應用程序提供了一種具備可伸縮性和可用性的數據庫解決方案,它通常與Oracle Clusterware 或第三方集羣軟件共同組成Oracle集羣系統。

       RAC是一個全共享式的體系架構,它的全部數據文件、控制文件、聯機日誌文件、參數文件等都必須存放在共享磁盤中,由於只有這樣,集羣全部節點才能訪問到,RAC支持多種存儲方式,可使用下面幾種方式的任意一種:

(1)裸設備(Raw devices)

       也就是不通過文件系統,將數據直接寫入磁盤中,這種方式的好處是磁盤I/O性能很高,適合寫操做頻繁的業務系統,但缺點也很明顯:數據維護和備份不方便,備份只能經過dd命令或者基於塊級別的備份設備來完成,這無疑增長了維護成本。

(2)集羣文件系統

       爲了支持共享存儲,oracle開發出了集羣文件系統OCFS,這個文件系統可用於Windows、Linux和Solaris,如今已經發展到了OCFS2,經過OCFS2文件系統,多個集羣節點能夠同時讀寫一個磁盤而不破壞數據,但對於大量讀寫的業務系統,性能不是很高。另外,oracle RAC也支持第三方的集羣文件系統,例如Redhat的GFS等。

(3)網絡文件系統(NFS)

(4)Automated Storage Management

        Automated Storage Management,簡稱ASM,是Oracle推薦的共享數據存儲方式,它是Oracle數據庫10g包含的一個特性。ASM其實就是RAW方式存儲數據,可是加入了數據管理功能,它經過將數據直接寫入磁盤,避免了通過文件系統而產生的I/O消耗。於是,使用ASM能夠很方便地管理共享數據,並提供異步I/O的性能。ASM還能夠經過分配I/O負載來優化性能,免除了手動調整I/O的須要。

 

3.二、Oracle RAC的特色

經過RAC數據庫,能夠構建一個高性能、高可靠的數據庫集羣系統,RAC的優點在於:

(1)能夠實現多個節點間的負載均衡

       RAC數據庫集羣能夠根據設定的調度策略,在集羣節點間實現負載均衡,所以,RAC數據庫每一個節點都是工做的,同時也處於互相監控狀態,當某個節點出現故障時,RAC集羣自動將失敗節點從集羣隔離,並將失敗節點的請求自動轉移到其它健康節點上,從而實現服務透明切換。

(2)能夠提供高可用服務

       這個是Oracle Clusterware實現的功能,經過CRS能夠實現節點狀態監控,故障透明轉移,這保證了oracle數據庫能夠對外不間斷的提供服務。

(3)經過橫向擴展提升了併發鏈接數

       RAC這個優勢很是適合大型的聯機事務系統中。

(4)經過並行執行技術提升了事務響應時間

       這個是RAC集羣的一大優點,一般用於數據分享系統中。

(5)具備很好的擴展性

       在集羣系統不能知足繁忙的業務系統時,RAC數據庫能夠很方便的添加集羣節點,且能夠在線完成節點的添加,並自動加入集羣系統,不存在宕機時間;同時在不須要某個集羣節點時,刪除節點也很是簡單。

RAC數據庫也有必定的缺點:

       (1)與單機數據庫相比,管理維護更復雜,並對維護人員要求更高

       (2)底層規劃設計很差時,系統總體性能會較差,甚至不如單機系統的性能。因此,若是對RAC數據庫不是很瞭解,不建議立刻在生產環境中使用。

       (3)因爲RAC集羣系統須要多個節點,那麼須要購買多臺服務器,同時須要oracle企業級版本數據庫,這無形中也增長了軟硬件成本。

 

3.三、RAC進程管理

       RAC數據庫是由多個節點構成的,每一個節點就是一個數據庫實例,而每一個實例都有本身的後臺進程和內存結構,而且在RAC集羣中,每一個實例的後臺進程和內存結構都是相同的,從總體上看起來,就像是一個單一數據庫的鏡像,可是,RAC數據庫在結構上與單實例庫也有不一樣之處:

(1)     RAC數據庫的每一個實例至少擁有一個額外的重作線程(redo thread)

(2)     RAC數據庫的每一個實例都擁有本身的撤消表空間(undo tablespace) 

       很顯然,這種機制是每一個實例獨立的使用本身的重作線程和撤消表空間,各自鎖定本身修改的數據。  RAC的這種設計方式,把多個實例的操做相對獨立的分開。那麼RAC數據庫如何實現節點數據的一致性呢,其實每一個RAC實例的SGA內有一個buffer cache(緩衝區),經過Cache Fusion(緩存融合)技術,RAC在各個節點之間同步SGA中的緩存信息,從而保證了節點數據的一致性,同時也提升了集羣的訪問速度。

       RAC數據庫最大的特色是共享,那麼如何實現多個節點有條不紊的數據共享呢,這就是要說的RAC的兩個進程:即Global Cache Service (GCS) 和 the Global Enqueue Service (GES)

       全局緩存服務(GCS)和全局隊列服務(GES)是最基本的RAC進程,主要用於協調對共享數據庫和數據庫內的共享資源的同時訪問。同時,GES和GCS經過使用全局資源目錄(Global Resource Directory,GRD)來記錄和維護每一個數據文件的狀態信息,而GRD保存在內存中,內容分佈存儲在全部實例上。每一個實例都管理部份內容。

 

      RAC中經過幾個特別的進程與GRD相結合,使得RAC可使用緩存融合技術,這幾個特別進程是:

l     Global Cache Service Processes(LMSn)

LMS進程主要用來管理集羣內數據塊的訪問,並在不一樣實例的BUFFER CACHE中傳輸塊鏡像。 

l     Global Enqueue Service Monitor(LMON)

LMON主要監視羣集內的全局資源和集羣間的資源交互,並管理實例和處理異常,以及集羣隊列的恢復操做。 

l     Global Enqueue Service Daemon(LMD)

LMD進程主要管理對全局隊列和全局資源的訪問,並更新相應隊列的狀態,處理來自於其餘實例的資源請求。 

l     Lock Processes(LCK)

LCK進程主要用來管理實例間資源請求和跨實例調用操做,並管理除Cache Fusion之外的資源請求,好比library和row cache的請求等。 

l     Diagnosability Daemon(DIAG)

DIAG進程主要用來捕獲實例中失敗進程的診斷信息,並生成相應的TRACE文件。

 

 

3.四、RAC數據庫存儲規劃

       安裝RAC數據庫時涉及到的軟件有Oracle Clusterware、Oracle Rac數據庫軟件,同時還涉及到voting disk、OCR等,關於每部分須要佔用磁盤空間大小以下:

 

 

 

在瞭解了RAC每部分所需的磁盤空間大小後,就能夠根據每部分的用途來規劃數據存儲了。RAC普遍支持各類數據存儲方式,例如單一日誌文件系統ext2/ext三、集羣文件系統OCFS2/GFS、網絡文件系統NFS、裸設備RAW、自動存儲管理ASM等,下表列出了可使用的存儲類型:

 

 

 

具體使用哪一種存儲策略,要根據安裝RAC環境的不一樣而不一樣。這裏推薦三種經常使用的存儲方式:

 

 

 

 

 

 

注意: 哪些文件在 共享存儲中

 

相關文章
相關標籤/搜索