Oracle RAC & Data Guard
搭建高可用數據庫系統方案
做者: 鐵 釘
Q Q: 5979404
Blog: http://nails.blog.51cto.com
1、高可用系統平臺
Oracle Real Application Clusters (RAC)能夠支持24 x 7 有效的數據庫應用系統,能夠由低成本的服務器構成的高可用性系統,自由的部署應用,而無需修改應用程序。
(一) RAC關鍵特性
l
高可用性
Oracle Real Application Clusters 提供一個高性能低成本的應用平臺,支持全部類型的應用系統,不管是事務處理型應用仍是分析型應用。全部應用共享一樣的服務器和存儲資源。出現任何的服務器或磁盤故障,系統會自動從新接管發生故障的功能。這些對前端用戶的徹底透明的。一樣,若是您須要增長服務器或改變其餘組件的配置也不會影響到應用系統。
l
高性能
Oracle Real Application Clusters保持着TPC-C的記錄,達到每分鐘 118萬個事務的處理能力,和僅僅 $5.52 每tpmC的成本。在3,000 GB的 TPC-H數據倉庫Benchmark 測試中, Oracle RAC一樣保持性價比的領先地位,保證咱們的用戶可以達到更好更快的 ROI。這僅僅是Oracle 保持的多項Benchmark 記錄中的最 近的一些指標。
l
按需擴充
在現有的系統多是基於當前的工做負載而構建的,當應用規模須要擴充時(支持更多的數據、用戶或應用),就須要擴展系統以保證系統的性能。當您的應用是構建於大型的SMP主機時,您可能須要購買另外一 臺昂貴的主機,但可能只能使用到其處理能力的很小一部分。可是若是您使用Oracle RAC的話,您能夠經過增長一臺或多臺低成本的服務器來擴充您的應用系統的處理能力,知足應用需 求。
(二) RAC邏輯結構
從邏輯結構上看,每個參加集羣的節點有一個獨立的instance,這些instance訪問同一個數據庫。節點之間經過集羣軟件的通信層(communication layer)來進行通信。同時爲了減小I/O的消耗,存在了一個全局緩存服務,所以每個數據庫的instance,都保留了一份相同的數據庫cache。
l
RAC中邏輯結構的特色是:
a)
每個節點的instance都有本身的SGA ,
b)
每個節點的instance都有本身的background process,
c)
每個節點的instance都有本身的redo logs ,
d)
每個節點的instance都有本身的undo表空間 ,
e)
全部節點都共享一份datafiles和controlfiles。
l
提出了一個緩存融合的技術(Cache fusion),目的有兩個:
a)
保證緩存的一致性,
b)
減小共享磁盤I/O的消耗。
l
所以在RAC環境中多個節點保留了同一份的DB Cache,緩存融合(Cache fusion)工做原理:
a)
其中一個節點會從共享數據庫中讀取一個block到db cache中,
b)
這個節點會在全部的節點進行交叉db block copy ,
c)
當任何一個節點緩存被修改的時候,就會在節點之間進行緩存修改 ,
d)
爲了達到存儲的一致最終修改的結果也會寫到磁盤上ClusterWare組件 。
l
有四種Service:
a)
Crsd - 集羣資源服務
b)
Cssd - 集羣同步服務
c)
Evmd - 事件管理服務
d)
oprocd - 節點檢測監控
l
有三類Resource:
a)
VIP - 虛擬IP地址(Virtual IP)
b)
OCR - Oracle Cluster Registry(集羣註冊文件),記錄每一個節點的相關信息
c)
Voting Disk - Establishes quorum (表決磁盤),仲裁機制用於仲裁多個節點向共享節 點同時寫的行爲,這樣作是爲了不發生衝突。
l
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張網卡。 物理鏈接分三大系統,共享磁盤存儲系統、專用網絡系統、公用網絡系統。
l
共享磁盤存儲(Storage Share)
Oracle RAC 依賴於一個共享磁盤體系結構。 數據庫文件、聯機重作日誌和數據庫的控制文件必須都能爲集羣中的每一個節點所訪問。共享磁盤還存儲 Oracle Cluster Registry 和 Voting Disk。 配置共享存儲有多種方法,包括直接鏈接磁盤(一般是使用銅纜或光纖的 SCSI)、存儲區域網 (SAN) 和網絡鏈接存儲 (NAS)。
l
專用網絡(Private Network)
每一個集羣節點經過專用高速網絡鏈接到全部其餘節點,這種專用高速網絡也稱爲集羣互聯或高速互聯 (HSI)或心跳檢查(Heart Check)。 Oracle 的 Cache Fusion 技術使用這種網絡將每一個主機的物理內存 (RAM) 有效地組合成一個高速緩存。 Oracle Cache Fusion 經過在專用網絡上傳輸某個 Oracle 實例高速緩存中存儲的數據容許其餘任何實例訪問這些數據。 它還經過在集羣節點中傳輸鎖定和其餘同步信息保持數據完整性和高速緩存一致性。
l
公共網絡(Public Network)
爲維持高可用性,爲每一個集羣節點分配了一個虛擬 IP 地址 (VIP)。 若是主機發生故障,則能夠將故障節點的 IP 地址從新分配給一個可用節點,從而容許應用程序經過相同的 IP 地址繼續訪問數據庫。
(四)Oracle RAC系統結構圖
2、高可用、高安全系統平臺
(一)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技術。
(三) 三種數據保護模式:
l
最大保護(Maximum protection)
這種模式主庫(Primary Database)備庫(Standby Database)之間數據是實時同步的。即主庫提交的同時,備庫會作相應的恢復,最大程度的保證了數據完整性,不容許數據的丟失。若是主、備庫之間網絡,或者備庫出現問題會直接影響主庫操做,致使主庫當機,以保證主、備庫數據的絕對相同。
l
最高可用性(Maximum availability)
這種模式和"最大保護"基本上差很少。正常狀況下,主、備庫之間是同步的。 當網絡或者備庫出現問題時,不會影響到主庫的當機,主庫會自動轉換庫"最大性能"模式,等待備庫可用時,將歸檔傳輸到備庫作恢復。能夠把這種模式理解爲"最大保護"和"最大性能"兩種模式的中間體。
l
最高性能(Maximum performance):
這種模式保證主庫性能最大化,主備庫之間數據是異步傳輸的。即主庫日誌歸檔之後纔會傳輸到備用庫,在備庫上使用歸檔日誌文件作恢復操做。若是網絡條件理想的話,這種模式可以提供相似最高可用性的數據保護而僅對主數據庫有輕微的性能影響。
(四) Oracle RAC and Data Guard 結構圖
做者: 鐵 釘
QQ: 5979404
Blog:http://nails.blog.51cto.com