集群産品RAC的特點
不同的集群産品都有(yǒu)自己的特點,RAC的特點包括如下幾點:
·雙機并行(xíng)。RAC是一種并行(xíng)模式,并不是傳統的主備模式。也就是說,RAC集群的所有(yǒu)成員都可(kě)以同時(shí)接收客戶端的請(qǐng)求。
·高(gāo)可(kě)用性。RAC是Oracle數(shù)據庫産品高(gāo)可(kě)用性的解決方案,能夠保證在集群中隻要有(yǒu)一個(gè)節點存活,就能正常對外提供服務。
·易伸縮性。RAC可(kě)以非常容易地添加、删除節點,以滿足系統自身的調整。
·低(dī)成本。能使用較低(dī)廉的服務器(qì)來(lái)實現高(gāo)可(kě)用性、高(gāo)吞吐量的集群環境,這要比通(tōng)過對某台高(gāo)端服務器(qì)增加硬件實現高(gāo)可(kě)用性、高(gāo)吞吐量花(huā)費的成本低(dī)很(hěn)多(duō)。
·高(gāo)吞吐量。随着節點數(shù)的增加,整個(gè)RAC的吞吐量也在不斷增長。
下面詳細討(tǎo)論這五大(dà)特點。
一、雙機并行(xíng)
RAC是一種充分利用服務器(qì)資源的高(gāo)可(kě)用性實現方案,RAC的并行(xíng)模式實現方式與傳統的雙機熱備實現方式截然不同,圖1-4是兩者的比較。
如圖1-4所示,兩個(gè)節點在傳統的雙機熱備環境中,始終有(yǒu)一台機器(qì)作(zuò)為(wèi)備用機,隻有(yǒu)當主節點出現問題的時(shí)候才會(huì)切換到備用機上(shàng);如果主機一直沒有(yǒu)出現問題,那(nà)麽備用機始終處于空(kōng)閑狀态,這在資源的利用上(shàng)以及成本方面都是巨大(dà)的浪費。但(dàn)RAC是一種并行(xíng)模式的架構,也就是說,兩個(gè)節點的集群節點間(jiān)是一種并行(xíng)運行(xíng)的關系,當一台機器(qì)出現問題,請(qǐng)求會(huì)自動轉發到另一台機器(qì),沒有(yǒu)任何一台機器(qì)作(zuò)為(wèi)備用機一直不被使用,這樣就充分利用了服務器(qì)資源。同時(shí),傳統的雙機熱備構架在出現問題時(shí),常常需要數(shù)分鍾的切換時(shí)間(jiān),而RAC在出現問題時(shí),針對存在的會(huì)話(huà)隻需要數(shù)十秒(miǎo)的時(shí)間(jiān)就可(kě)以完成失敗切換過程,對新會(huì)話(huà)的創建不會(huì)産生(shēng)影(yǐng)響,在切換時(shí)間(jiān)上(shàng)也有(yǒu)比較大(dà)的優勢。
二、高(gāo)可(kě)用性
RAC是Oracle數(shù)據庫高(gāo)可(kě)用性解決方案。高(gāo)可(kě)用性包含兩部分的內(nèi)容:首先是在這種解決方案下要确保數(shù)據不丢失,這是最基礎的也是必須要保證的;其次是确保不停機,使Oracle數(shù)據庫一直維持在正常的運行(xíng)狀态,避免停機給客戶帶來(lái)的損失,這是討(tǎo)論最多(duō)的內(nèi)容。
停機一般分為(wèi)兩類,計(jì)劃停機和(hé)非計(jì)劃停機。所謂計(jì)劃停機是有(yǒu)計(jì)劃地安排節點或者系統的停機,一般在Oracle升級、系統維護或者硬件維護的情況下會(huì)出現。非計(jì)劃停機就是在非人(rén)為(wèi)計(jì)劃的情況下突然停機,這種情況一般是在Oracle bug、系統故障、硬件故障或人(rén)為(wèi)操作(zuò)失敗的時(shí)候出現。
在沒有(yǒu)較高(gāo)花(huā)費的情況下,想實現系統100%的不停機幾乎是不可(kě)能的。表1-1列出了特定百分比高(gāo)可(kě)用性比率運行(xíng)停機的時(shí)間(jiān),詳細記錄了每種高(gāo)可(kě)用性比率每年、每月、每周可(kě)以出現最大(dà)的停機時(shí)間(jiān)。
通(tōng)常情況下,以每月停機時(shí)間(jiān)來(lái)計(jì)算(suàn)對應的可(kě)用性比率。根據系統的重要性情況,應該為(wèi)系統設定合理(lǐ)的可(kě)用性比率。
集群最大(dà)的優勢在于它的高(gāo)可(kě)用性,通(tōng)過使用RAC可(kě)以在一定程度上(shàng)避免因為(wèi)硬件或軟件故障引起的數(shù)據丢失和(hé)非計(jì)劃停機,并在一定程度上(shàng)減少(shǎo)或排除計(jì)劃停機時(shí)間(jiān)。這是很(hěn)多(duō)客戶選擇RAC的最直接原因。
RAC中包含了非常多(duō)的高(gāo)可(kě)用特性,主要包含如下幾點:
·實現節點間(jiān)的負載均衡。
·實現失敗切換的功能。
·通(tōng)過Service組件來(lái)控制(zhì)客戶端的訪問路徑。
·集群軟件能夠自動化管理(lǐ)各個(gè)資源,并且有(yǒu)定時(shí)的節點狀态檢測機制(zhì),能自動對一些(xiē)失敗的進程以及心跳(tiào)檢測失敗的節點進行(xíng)重啓,使其重新恢複到正常的運行(xíng)狀态。
在Oracle 11gR2版本中,Clusterware得(de)到了改善,提供了更高(gāo)的可(kě)用性。例如,大(dà)量新的基于代理(lǐ)的監控系統用于監控所有(yǒu)的資源。這些(xiē)代理(lǐ)使用更少(shǎo)的資源執行(xíng)更頻繁的檢查,即更快速的失敗掃描和(hé)更短(duǎn)的恢複時(shí)間(jiān)。在Oracle監聽(tīng)的例子中,平均失敗掃描時(shí)間(jiān)從5分鍾減少(shǎo)到30秒(miǎo),同時(shí),檢查間(jiān)隔從每10分鍾減少(shǎo)到1分鍾。另外,Clusterware的“Out-of-Place Upgrade”等特性也減少(shǎo)了軟件維護需要的停機時(shí)間(jiān)。
三、易伸縮性
RAC為(wèi)需要重新規劃的應用提供了易擴展性。為(wèi)了在系統初始階段保持較低(dī)的成本,避免造成不必要的浪費,集群可(kě)以按照标準硬件配置,選擇适當的服務器(qì)資源、存儲資源來(lái)搭建數(shù)據庫環境。當系統需要更多(duō)的處理(lǐ)能力或者需要增加存儲時(shí),通(tōng)過添加另一台服務器(qì)或存儲設備到集群中,能夠在不停機的情況下獲得(de)水(shuǐ)平的擴展。在一個(gè)集群中, Clusterware和(hé)RAC支持多(duō)達100個(gè)集群節點。
當某個(gè)集群的處理(lǐ)能力過剩,另一個(gè)集群的處理(lǐ)能力不夠時(shí),可(kě)以從處理(lǐ)能力過剩的集群移動一個(gè)節點到處理(lǐ)能力不夠的集群中。這樣能夠充分利用服務器(qì)資源,節約成本。11gR2版本中推出了網格即插即用(Grid Plug and Play,GPnP),可(kě)以實現節點的快速添加。
四、低(dī)成本
通(tōng)過多(duō)台普通(tōng)的PC服務器(qì)組成一個(gè)集群,可(kě)以提高(gāo)集群的處理(lǐ)能力,這樣要比采用一台高(gāo)性能的服務器(qì)的成本低(dī)很(hěn)多(duō)。如果想提高(gāo)系統的處理(lǐ)能力,給集群添加節點比為(wèi)高(gāo)性能服務器(qì)添加硬件要容易得(de)多(duō)。另外,使用集群還(hái)能動态地移除節點,更加充分地利用管理(lǐ)者掌握的所有(yǒu)服務器(qì)資源,從服務器(qì)整體(tǐ)使用上(shàng)降低(dī)了服務器(qì)的采購成本。越來(lái)越多(duō)的企業願意将集群解決方案應用到他們的系統中,以降低(dī)成本,提高(gāo)系統的可(kě)用性。
五、高(gāo)吞吐量
RAC是由多(duō)台服務器(qì)構成的邏輯主體(tǐ),比單台數(shù)據庫服務器(qì)能接收更多(duō)的客戶端請(qǐng)求。這在要求高(gāo)吞吐量的系統中,能夠得(de)到非常明(míng)顯的體(tǐ)現。在RAC的架構中,多(duō)個(gè)實例分布在多(duō)個(gè)服務器(qì)上(shàng),能同時(shí)打開(kāi)同一個(gè)數(shù)據庫,而每個(gè)實例能夠接收相等數(shù)量的客戶端請(qǐng)求,這樣,随着服務器(qì)的增加,吞吐量也在不斷地增加。
在以上(shàng)討(tǎo)論的特點中,高(gāo)可(kě)用性是RAC最大(dà)的特點。
RAC存在的問題
雖然RAC有(yǒu)非常多(duō)的優點,但(dàn)由于部署一套RAC會(huì)涉及服務器(qì)、存儲設備、HBA卡、操作(zuò)系統等多(duō)方面的技(jì)術(shù),且從實現上(shàng)要比單實例數(shù)據庫更複雜,對硬件設備的穩定性、設備之間(jiān)以及設備與操作(zuò)系統的兼容性上(shàng)要求也更高(gāo),Oracle的bug也會(huì)造成RAC運行(xíng)出現問題。所以,從實際的運行(xíng)情況來(lái)看,RAC要比單實例的數(shù)據庫存在更多(duō)的問題,問題的原因也各不相同。RAC存在的問題主要體(tǐ)現在穩定性和(hé)高(gāo)性能方面,下面討(tǎo)論這兩個(gè)問題。
一、穩定性
數(shù)據庫的穩定運行(xíng)是系統穩定運行(xíng)的基礎和(hé)前提,數(shù)據庫的運行(xíng)依賴于操作(zuò)系統、服務器(qì)、存儲設備等軟硬件設備的運行(xíng)情況。
由于各種硬件設備、操作(zuò)系統的廠商不同,有(yǒu)時(shí)候在兼容性上(shàng)會(huì)存在問題,即使同一個(gè)廠商的服務器(qì),由于驅動、固件版本的不同也可(kě)能導緻硬件出現問題以及與其他設備的兼容性問題。同時(shí),由于RAC本身也存在不少(shǎo)bug,很(hěn)多(duō)部署的RAC環境缺乏在上(shàng)線前對環境的檢查和(hé)測試,導緻在運行(xíng)過程中出現一系列不穩定的情況,這樣高(gāo)可(kě)用性并沒有(yǒu)得(de)到充分的體(tǐ)現。
由此來(lái)看,穩定的硬件環境加上(shàng)穩定的RAC版本,決定着RAC運行(xíng)的穩定性。數(shù)據庫工程師(shī)與硬件工程師(shī)在安裝配置前大(dà)量的環境檢查、驗證,以及部署後的大(dà)量測試工作(zuò)都是非常重要的。
二、高(gāo)性能
高(gāo)性能也是大(dà)部分從單機環境遷移到RAC環境比較頭疼的問題,RAC并不是高(gāo)性能的解決方案。在目前普遍使用千兆網絡的硬件環境中,很(hěn)多(duō)時(shí)候系統的數(shù)據庫從原來(lái)的單機遷移至RAC環境,系統的性能反而下降。在這種情況下,數(shù)據庫管理(lǐ)員應該根據RAC的特點對系統調整提出合理(lǐ)的建議,經過合理(lǐ)的設計(jì)、開(kāi)發,使用RAC是能夠提高(gāo)系統的處理(lǐ)性能的。
以上(shàng)兩個(gè)問題是需要特别注意的。另外,與硬件工程師(shī)、系統開(kāi)發人(rén)員進行(xíng)良好的溝通(tōng),以及對系統合理(lǐ)的設計(jì)是保證RAC穩定運行(xíng)和(hé)高(gāo)性能運行(xíng)的前提。