一、 集群體系結構
RAC,全稱是 Real ,即真正的應用集群,是 提供的一個并行集群系統,整個集群系統由 (集群就緒軟件)和 Real (RAC)兩大部分組成。
下載鏈接:
數據庫技術和方案匯總
1、數據集成平臺解決方案.pdf
2、 RAC集群的簡單介紹.pdf
3、 數據庫云平臺.pdf
4、遷移的三大難點剖析以及應對策略.pdf
5、基于分布式存儲的 解決方案設計.pdf
6、超越,宣告SaaS模式的勝利.pdf
RAC的實質是位于不同操作系統的實例節點同時訪問同一個數據庫,每個節點間通過私有網絡進行通信,互相監控節點的運行狀態, 數據庫所有的數據文件、聯機日志文件、控制文件等均放在集群的共享存儲設備上,而共享存儲設備可以是 RAW、ASM、OCFS2 等,所有集群節點可以同時讀寫共享存儲。 RAC 的基本拓撲結構如下所示:
由拓撲結構可知:一個 Rac 數據庫有多個服務器節點組成,每個服務器節點上都有自己獨立的 OS、、 Rac 數據庫程序等,并且每個節點都有自己的網絡監聽器。 是一個集群軟件,主要用于集群系統管理, Rac 數據庫程序用于提供 實例進程,以供客戶端訪問集群系統,監聽服務主要用于監控自己的網絡端口信息,所有的服務和程序通過操作系統都去訪問一個共享存儲,最終完成數據的讀寫。共享存儲的實現方式有很多種,可以通過使用自動存儲管理(ASM)、 集群文件系統(OCFS)、裸設備(Raw)、網絡區域存儲(NAS)等來保證整個集群系統數據的一致性。
從 起, 提供了自己的集群軟件,即 ,它通過 CRS(即 Ready )來實現,這個軟件是安裝 rac 的前提,也是 RAC 環境穩定運行的基礎,在 之前的版本,安裝 RAC 時必須借助與第三方的集群軟件,而在 以后,安裝 rac 時,可以用 自帶的集群軟件,也可以使用經過 RAC 認證的第三方集群軟件來代替。
從 的運行機制來說,集群中每臺服務器就是一個 實例,多個 實例對應同一個 數據庫,組成了 數據庫集群。請看下圖:
從圖中可以看出,運行在兩個節點上的數據庫實例訪問同一個 RAC 數據庫,并且兩個節點的本地磁盤僅用來存放 安裝程序和 軟件,而在共享存儲上,存放了 的數據文件、控制文件、聯機日志文件、歸檔日志文件等,這是安裝 Rac 時的一種數據存儲分配方式,其實,RAC 提供了多種數據存儲方式,這個將在下面進行獨立介紹。
二、 體系結構與進程介紹2.1、 簡介
Ready ,簡稱 CRS,是 開發的一個集群軟件,與其它集群軟件類似,CRS 主要完成集群成員管理、心跳監控、故障切換等功能,CRS 要求每個集群節點的操作系統必須相同,這樣,通過 CRS 將多個節點的操作系統綁定到了一起,客戶端對集群的訪問,就像訪問一臺服務器一樣。
CRS 主要有兩個集群套件組成,分別是 disk 和 。
disk,即為表決磁盤,集群中每個節點定期評估自身的健康情況,然后會把它的狀態信息放入到表決磁盤上。并且節點間也會互相查看其運行狀態,并把信息傳遞給其他節點進而寫入表決磁盤。當集群節點發生故障時,還可以通過表決磁盤進行投票仲裁等,因此,表決磁盤必須放在共享存儲設備上。以保證每個節點都能訪問到。表決磁盤可以是一個裸磁盤分區,也可以是一個獨立的文件。由于它僅記錄節點運行信息,磁盤大小一般在 10-20M 左右即可。
,簡稱 OCR,即集群注冊服務,OCR 主要用于記錄 RAC 中集群和數據庫的配置信息。這些信息包括了集群節點的列表、集群數據庫實例到節點的映射以及 CRS 應用程序資源信息。
CRS 使用兩種心跳設備來驗證節點成員的狀態,保證集群的完整性:一個是表決磁盤,集群同步服務進程每隔幾秒鐘都會向表決磁盤寫入一條心跳信息,集群通過表決磁盤即可驗證節點的狀態,如果某個節點在指定的最大時間段內沒有向表決磁盤寫入信息,集群就認為此節點失效了,進而執行故障切換。另一個心跳是節點間私有以太網的心跳,通過這個心跳機制可以判斷節點間是否出現了網絡故障。兩種心跳機制的結合,有效的增加了集群的可靠性。
另外,CRS 建議用于內部通訊的私有以太網心跳必須與用于 RAC 節點間通訊的網絡分開,也就是不能在同一網絡中,如果 RAC節點間通訊的網絡與私有以太網心跳在同一個網絡內,那么,必須保證該網絡不能被非集群系統的節點訪問到。
2.2、 進程介紹
通過 Ready 來完成集群功能,CRS 包含了一組相互協作的后臺進程,下面詳細介紹下 CRS 中幾個很重要的后臺進程。
1、 簡稱 CSS,用于管理與協調集群中各節點的關系,并用于節點間通信,當節點在加入或離開集群時,都由 css 進行通知集群。CSS 在集群中對應的后臺進程為 CSSD,該進程由 用戶運行和管理。當節點發生故障時,cssd 會自動重啟操作系統。
2、 Ready 簡稱 CRS,是管理群集內高可用操作的主要程序,在集群中 CRS 管理所有資源,包括數據庫、服務、實例、vip 地址、監聽器、應用進程等,CRS 在集群中對應的后臺進程為 CRSD,該進程可以對集群資源進行啟動、停止、監視和容錯等操作,正常狀態下,CRSD監控節點各種資源,當某個資源發生異常時,自動重啟或者切換該資源。
3、 簡稱 ,此進程被鎖定在內存中,用于監控集群及提供 I/O 防護(I/O )。 運行在每個節點上,且定期執行健康檢測,如果在超過它所希望的間隔內,仍然不能和某個節點通信,那么, 將會重置處理器及重啟節點。一個 故障也將導致 重啟節點。
4、 簡稱 ONS,即 通告服務,主要用于發布和訂閱 Fast 事件。
5、Event 簡稱 EVM,是一個事件檢測的后臺進程,由 用戶運行和管理。
三、 RAC 數據庫體系機構與進程3.1、RAC 簡介
RAC 是一個具有共享緩存體系結構的集群數據庫,它克服了傳統的不共享和共享磁盤方法的限制,為所有業務應用程序提供了一種具有可伸縮性和可用性的數據庫解決方案,它一般與 或第三方集群軟件共同組成 集群系統。
RAC 是一個全共享式的體系架構,它的所有數據文件、控制文件、聯機日志文件、參數文件等都必須存放在共享磁盤中,因為只有這樣,集群所有節點才能訪問到,RAC 支持多種存儲方式,可以使用下面幾種方式的任意一種:
(1)裸設備(Raw )也就是不經過文件系統,將數據直接寫入磁盤中,這種方式的好處是磁盤 I/O 性能很高,適合寫操作頻繁的業務系統,但缺點也很明顯:數據維護和備份不方便,備份只能通過 dd 命令或者基于塊級別的備份設備來完成,這無疑增加了維護成本。
(2)集群文件系統為了支持共享存儲, 開發出了集群文件系統 OCFS,這個文件系統可用于 、Linux 和 ,現在已經發展到了 OCFS2,通過 OCFS2 文件系統,多個集群節點可以同時讀寫一個磁盤而不破壞數據,但對于大量讀寫的業務系統,性能不是很高。另外, RAC 也支持第三方的集群文件系統,例如 的 GFS 等。
(3)網絡文件系統(NFS)
(4)ASM,是 推薦的共享數據存儲方式,它是 數據庫 10g 包含的一個特性。ASM 其實就是 RAW 方式存儲數據,但是加入了數據管理功能,它通過將數據直接寫入磁盤,避免了經過文件系統而產生的 I/O消耗。因而,使用 ASM 可以很方便地管理共享數據,并提供異步 I/O 的性能。ASM 還可以通過分配 I/O 負載來優化性能,免除了手動調整 I/O 的需要。
3.2、 RAC的特點
通過 RAC 數據庫,可以構建一個高性能、高可靠的數據庫集群系統,RAC 的優勢在于:
(1)可以實現多個節點間的負載均衡RAC 數據庫集群可以根據設定的調度策略,在集群節點間實現負載均衡,因此,RAC 數據庫每個節點都是工作的,同時也處于互相監控狀態,當某個節點出現故障時,RAC 集群自動將失敗節點從集群隔離,并將失敗節點的請求自動轉移到其它健康節點上,從而實現服務透明切換。
(2)可以提供高可用服務這個是 實現的功能,通過 CRS 可以實現節點狀態監控,故障透明轉移,這保證了 數據庫可以對外不間斷的提供服務。
(3)通過橫向擴展提高了并發連接數RAC 這個優點非常適合大型的聯機事務系統中。
(4)通過并行執行技術提高了事務響應時間這個是 RAC 集群的一大優勢,通常用于數據分享系統中。
(5)具有很好的擴展性在集群系統不能滿足繁忙的業務系統時,RAC 數據庫可以很方便的添加集群節點oracle表空間增加文件,且可以在線完成節點的添加,并自動加入集群系統,不存在宕機時間;同時在不需要某個集群節點時,刪除節點也非常簡單。RAC 數據庫也有一定的缺點:
1)與單機數據庫相比,管理維護更復雜,并對維護人員要求更高
2)底層規劃設計不好時,系統整體性能會較差,甚至不如單機系統的性能。所以,如果對 RAC 數據庫不是很了解,不建議馬上在生產環境中使用。
3)由于 RAC 集群系統需要多個節點,那么需要購買多臺服務器,同時需要 企業級版本數據庫,這無形中也增加了軟硬件成本。
3.3、RAC進程管理
RAC 數據庫是由多個節點構成的,每個節點就是一個數據庫實例,而每個實例都有自己的后臺進程和內存結構,并且在 RAC 集群中,每個實例的后臺進程和內存結構都是相同的,從整體上看起來,就像是一個單一數據庫的鏡像,但是,RAC 數據庫在結構上與單實例庫也有不同之處:
(1) RAC 數據庫的每個實例至少擁有一個額外的重做線程(redo )
(2) RAC 數據庫的每個實例都擁有自己的撤消表空間(undo )
很顯然oracle表空間增加文件,這種機制是每個實例獨立的使用自己的重做線程和撤消表空間,各自鎖定自己修改的數據。RAC 的這種設計方式,把多個實例的操作相對獨立的分開。那么 RAC 數據庫如何實現節點數據的一致性呢,其實每個 RAC 實例的 SGA 內有一個 cache(緩沖區),通過 Cache (緩存融合)技術,RAC 在各個節點之間同步 SGA 中的緩存信息,從而保證了節點數據的一致性,同時也提高了集群的訪問速度。
RAC 數據庫最大的特點是共享,那么如何實現多個節點有條不紊的數據共享呢,這就是要說的 RAC 的兩個進程:即 Cache (GCS) 和 the (GES)。
全局緩存服務(GCS)和全局隊列服務(GES)是最基本的 RAC 進程,主要用于協調對共享數據庫和數據庫內的共享資源的同時訪問。同時,GES 和 GCS 通過使用全局資源目錄( ,GRD)來記錄和維護每個數據文件的狀態信息,而GRD 保存在內存中,內容分布存儲在所有實例上。每個實例都管理部分內容。
3.4、RAC 數據庫存儲規劃
安裝 RAC 數據庫時涉及到的軟件有 、 Rac 數據庫軟件,同時還涉及到 disk、OCR 等,關于每部分需要占用磁盤空間大小如下:
在了解了 RAC 每部分所需的磁盤空間大小后,就可以根據每部分的用途來規劃數據存儲了。RAC 廣泛支持各種數據存儲方式,例如單一日志文件系統 ext2/ext3、集群文件系統 OCFS2/GFS、網絡文件系統 NFS、裸設備 RAW、自動存儲管理 ASM 等,下表列出了可以使用的存儲類型:
具體使用哪種存儲策略,要根據安裝 RAC 環境的不同而不同。
下載鏈接:
數據庫技術和方案匯總
1、數據集成平臺解決方案.pdf
2、 RAC集群的簡單介紹.pdf
3、 數據庫云平臺.pdf
4、遷移的三大難點剖析以及應對策略.pdf
5、基于分布式存儲的 解決方案設計.pdf
6、超越,宣告SaaS模式的勝利.pdf
數據庫云管平臺白皮書(2022)
金融級數據庫容災技術報告(2021)
數據庫發展研究報告(2021年)
分布式數據庫原理和架構設計
本號資料全部上傳至知識星球,加入全棧云技術知識星球下載全部資料。
???????????????? END ????????????????