Oracle RAC & Data Guard搭建高可用資料庫系統方案

jelephant發表於2013-12-09
看到篇文章,轉一下。

一、高可用系統平臺

Oracle Real Application Clusters (RAC)可以支援24 x 7 有效的資料庫應用系統,可以由低成本的伺服器構成的高可用性系統,自由的部署應用,而無需修改應用程式。

() RAC關鍵特性

高可用性

Oracle Real Application Clusters 提供一個高效能低成本的應用平臺,支援所有型別的應用系統,無論是事務處理型應用還是分析型應用。所有應用共享同樣的伺服器和儲存資源。出現任何的伺服器或磁碟故障,系統會自動重新接管發生故障的功能。這些對前端使用者的完全透明的。同樣,如果您需要增加伺服器或改變其他元件的配置也不會影響到應用系統。

高效能

Oracle Real Application Clusters保持著TPC-C的記錄,達到每分鐘118 萬個事務的處理能力,和僅僅$5.52 tpmC的成本。在3,000 GBTPC-H資料倉儲Benchmark 測試中, Oracle RAC同樣保持價效比的領先地位,保證我們的使用者能夠達到更好更快的ROI。這僅僅是Oracle 保持的多項Benchmark 記錄中的最近的一些指標。

按需擴充

在現有的系統可能是基於當前的工作負載而構建的,當應用規模需要擴充時(支援更多的資料、使用者或應用),就需要擴充套件系統以保證系統的效能。當您的應用是構建於大型的SMP主機時,您可能需要購買另一臺昂貴的主機,但可能只能使用到其處理能力的很小一部分。但是如果您使用Oracle RAC的話,您可以透過增加一臺或多臺低成本的伺服器來擴充您的應用系統的處理能力,滿足應用需求。

() RAC邏輯結構

從邏輯結構上看,每一個參加叢集的節點有一個獨立的instance,這些instance訪問同一個資料庫。節點之間透過叢集軟體的通訊層(communication layer)來進行通訊。同時為了減少I/O 的消耗,存在了一個全域性快取服務,因此每一個資料庫的instance,都保留了一份相同的資料庫cache

RAC中邏輯結構的特點是:

a) 每一個節點的instance都有自己的SGA 

b) 每一個節點的instance都有自己的background process

c) 每一個節點的instance都有自己的redo logs 

d) 每一個節點的instance都有自己的undo表空間,

e) 所有節點都共享一份datafiles controlfiles

提出了一個快取融合的技術(Cache fusion),目的有兩個:

a) 保證快取的一致性,

b) 減少共享磁碟I/O 的消耗。

因此在RAC環境中多個節點保留了同一份的DB Cache,快取融合(Cache fusion)工作原理:

a) 其中一個節點會從共享資料庫中讀取一個blockdb cache中,

b) 這個節點會在所有的節點進行交叉db block copy 

c) 當任何一個節點快取被修改的時候,就會在節點之間進行快取修改,

d) 為了達到儲存的一致最終修改的結果也會寫到磁碟上ClusterWare元件。

有四種Service

a) Crsd - 叢集資源服務

b) Cssd - 叢集同步服務

c) Evmd - 事件管理服務

d) oprocd - 節點檢測監控

有三類Resource

a) VIP - 虛擬IP地址(Virtual IP)

b) OCR - Oracle Cluster Registry(叢集註冊檔案),記錄每個節點的相關資訊

c) Voting Disk - Establishes quorum (表決磁碟),仲裁機制用於仲裁多個節點向共享節點同時寫的行為,這樣做是為了避免發生衝突。

RAC的元件提供過了額外的程式,用來維護資料庫:

a) LMS - Gobal Cache Service Process 全域性快取服務程式

b) LMD - Global Enqueue Service Daemon 全域性查詢服務守護程式

c) LMON - Global Enqueue Service Monitor 全域性查詢服務監視程式

d) LCK0 - Instance Enqueue Process 例項查詢程式

(三)RAC 的物理結構

組成RAC的伺服器稱為節點,每臺節點伺服器至少需要2張網路卡。物理連線分三大系統共享磁碟儲存系統、專用網路系統、公用網路系統。

共享磁碟儲存(Storage Share)

Oracle RAC依賴於一個共享磁碟體系結構。資料庫檔案、聯機重做日誌和資料庫的控制檔案必須都能為叢集中的每個節點所訪問。共享磁碟還儲存 Oracle Cluster Registry 和 Voting Disk。配置共享儲存有多種方法,包括直接連線磁碟(通常是使用銅纜或光纖的 SCSI)、儲存區域網 (SAN) 和網路連線儲存 (NAS)

專用網路(Private Network)

每個叢集節點透過專用高速網路連線到所有其他節點,這種專用高速網路也稱為叢集互聯或高速互聯 (HSI)或心跳檢查(Heart Check)。 Oracle 的 Cache Fusion 技術使用這種網路將每個主機的實體記憶體 (RAM) 有效地組合成一個快取記憶體。 Oracle Cache Fusion 透過在專用網路上傳輸某個 Oracle 例項快取記憶體中儲存的資料允許其他任何例項訪問這些資料。它還透過在叢集節點中傳輸鎖定和其他同步資訊保持資料完整性和快取記憶體一致性。

公共網路(Public Network)

為維持高可用性,為每個叢集節點分配了一個虛擬 IP 地址 (VIP)。如果主機發生故障,則可以將故障節點的 IP 地址重新分配給一個可用節點,從而允許應用程式透過相同的 IP 地址繼續訪問資料庫。

(四)Oracle RAC系統結構圖


 

二、高可用、高安全系統平臺

(一)RAC + Data Guard資料衛士

現在大多企業都已採用Oracle RAC,且已有資料備份系統,那為什麼還要採用Data Guard呢?因為Data Guard 的資料保護可以實現主庫(Primary Database)和備庫(Standby Database)資料實時同步,並且在Oracle RAC完全不可用的嚴重災難時,快速的將備庫切換到對外服務模式,使業務得以快速恢復,保障業務資料系統的高可用及高安全。

Data Guard的最主要的功能是冗災。根據冗災技術,可以分為物理Standby和邏輯Standby兩種;

根據保護級別的不同可分為:最大保護、最大可用、最大效能。

(二) 冗災技術模式

Data Guard可以分為物理Standby和邏輯Standby兩種。二者的最大差別在於,物理Standby應用的是主庫的歸檔日誌,而邏輯Standby應用的是主庫的歸檔日誌中提取的SQL語句。由於兩者這一區別,決定了物理Standby 無論從邏輯結構和物理結構都是和主庫保持一致,而邏輯Standby 則只需保證邏輯結構一致,且邏輯Standby在應用SQL語句的時候,資料庫可以處於開啟的狀態,在企業的核心資料庫,首選物理Standby技術。

(三種資料保護模式:

最大保護(Maximum protection)

這種模式主庫(Primary Database)備庫(Standby Database)之間資料是實時同步的。即主庫提交的同時,備庫會做相應的恢復,最大程度的保證了資料完整性,不允許資料的丟失。如果主、備庫之間網路,或者備庫出現問題會直接影響主庫操作,導致主庫當機,以保證主、備庫資料的絕對相同。

最高可用性(Maximum availability)

這種模式和"最大保護"基本上差不多。正常情況下,主、備庫之間是同步的。當網路或者備庫出現問題時,不會影響到主庫的當機,主庫會自動轉換庫"最大效能"模式,等待備庫可用時,將歸檔傳輸到備庫做恢復。可以把這種模式理解為"最大保護""最大效能"兩種模式的中間體。

最高效能(Maximum performance)

這種模式保證主庫效能最大化,主備庫之間資料是非同步傳輸的。即主庫日誌歸檔以後才會傳輸到備用庫,在備庫上使用歸檔日誌檔案做恢復操作。如果網路條件理想的話,這種模式能夠提供類似最高可用性的資料保護而僅對主資料庫有輕微的效能影響。

(四) Oracle RAC and Data Guard 結構圖

 

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

相關文章