2012年08月15日00:05 it168網站原創 做者:劉炳林 編輯:王玉圓html
http://tech.it168.com/a2012/0814/1384/000001384756_all.shtml數據庫
不一樣的集羣產品都有本身的特色,RAC的特色包括以下幾點:服務器
·雙機並行。RAC是一種並行模式,並非傳統的主備模式。也就是說,RAC集羣的全部成員均可以同時接收客戶端的請求。網絡
·高可用性。RAC是Oracle數據庫產品高可用性的解決方案,可以保證在集羣中只要有一個節點存活,就能正常對外提供服務。架構
·易伸縮性。RAC能夠很是容易地添加、刪除節點,以知足系統自身的調整。負載均衡
·低成本。能使用較低廉的服務器來實現高可用性、高吞吐量的集羣環境,這要比經過對某臺高端服務器增長硬件實現高可用性、高吞吐量花費的成本低不少。ide
·高吞吐量。隨着節點數的增長,整個RAC的吞吐量也在不斷增加。性能
下面詳細討論這五大特色。測試
1、雙機並行網站
RAC是一種充分利用服務器資源的高可用性實現方案,RAC的並行模式實現方式與傳統的雙機熱備實現方式大相徑庭,圖1-4是二者的比較。
如圖1-4所示,兩個節點在傳統的雙機熱備環境中,始終有一臺機器做爲備用機,只有當主節點出現問題的時候纔會切換到備用機上;若是主機一直沒有出現問題,那麼備用機始終處於空閒狀態,這在資源的利用上以及成本方面都是巨大的浪費。但RAC是一種並行模式的架構,也就是說,兩個節點的集羣節點間是一種並行運行的關係,當一臺機器出現問題,請求會自動轉發到另外一臺機器,沒有任何一臺機器做爲備用機一直不被使用,這樣就充分利用了服務器資源。同時,傳統的雙機熱備構架在出現問題時,經常須要數分鐘的切換時間,而RAC在出現問題時,針對存在的會話只須要數十秒的時間就能夠完成失敗切換過程,對新會話的建立不會產生影響,在切換時間上也有比較大的優點。
▲圖1-4 雙機熱備與RAC並行模式對比
2、高可用性
RAC是Oracle數據庫高可用性解決方案。高可用性包含兩部分的內容:首先是在這種解決方案下要確保數據不丟失,這是最基礎的也是必需要保證的;其次是確保不停機,使Oracle數據庫一直維持在正常的運行狀態,避免停機給客戶帶來的損失,這是討論最多的內容。
停機通常分爲兩類,計劃停機和非計劃停機。所謂計劃停機是有計劃地安排節點或者系統的停機,通常在Oracle升級、系統維護或者硬件維護的狀況下會出現。非計劃停機就是在非人爲計劃的狀況下忽然停機,這種狀況通常是在Oracle bug、系統故障、硬件故障或人爲操做失敗的時候出現。
在沒有較高花費的狀況下,想實現系統100%的不停機幾乎是不可能的。表1-1列出了特定百分比高可用性比率運行停機的時間,詳細記錄了每種高可用性比率每一年、每個月、每週能夠出現最大的停機時間。
一般狀況下,以每個月停機時間來計算對應的可用性比率。根據系統的重要性狀況,應該爲系統設定合理的可用性比率。
集羣最大的優點在於它的高可用性,經過使用RAC能夠在必定程度上避免由於硬件或軟件故障引發的數據丟失和非計劃停機,並在必定程度上減小或排除計劃停機時間。這是不少客戶選擇RAC的最直接緣由。
RAC中包含了很是多的高可用特性,主要包含以下幾點:
·實現節點間的負載均衡。
·實現失敗切換的功能。
·經過Service組件來控制客戶端的訪問路徑。
·集羣軟件可以自動化管理各個資源,而且有定時的節點狀態檢測機制,能自動對一些失敗的進程以及心跳檢測失敗的節點進行重啓,使其從新恢復到正常的運行狀態。
在Oracle 11gR2版本中,Clusterware獲得了改善,提供了更高的可用性。例如,大量新的基於代理的監控系統用於監控全部的資源。這些代理使用更少的資源執行更頻繁的檢查,即更快速的失敗掃描和更短的恢復時間。在Oracle監聽的例子中,平均失敗掃描時間從5分鐘減小到30秒,同時,檢查間隔從每10分鐘減小到1分鐘。另外,Clusterware的「Out-of-Place Upgrade」等特性也減小了軟件維護須要的停機時間。
3、易伸縮性
RAC爲須要從新規劃的應用提供了易擴展性。爲了在系統初始階段保持較低的成本,避免形成沒必要要的浪費,集羣能夠按照標準硬件配置,選擇適當的服務器資源、存儲資源來搭建數據庫環境。當系統須要更多的處理能力或者須要增長存儲時,經過添加另外一臺服務器或存儲設備到集羣中,可以在不停機的狀況下得到水平的擴展。在一個集羣中, Clusterware和RAC支持多達100個集羣節點。
當某個集羣的處理能力過剩,另外一個集羣的處理能力不夠時,能夠從處理能力過剩的集羣移動一個節點處處理能力不夠的集羣中。這樣可以充分利用服務器資源,節約成本。11gR2版本中推出了網格即插即用(Grid Plug and Play,GPnP),能夠實現節點的快速添加。
4、低成本
經過多臺普通的PC服務器組成一個集羣,能夠提升集羣的處理能力,這樣要比採用一臺高性能的服務器的成本低不少。若是想提升系統的處理能力,給集羣添加節點比爲高性能服務器添加硬件要容易得多。另外,使用集羣還能動態地移除節點,更加充分地利用管理者掌握的全部服務器資源,從服務器總體使用上下降了服務器的採購成本。愈來愈多的企業願意將集羣解決方案應用到他們的系統中,以下降成本,提升系統的可用性。
5、高吞吐量
RAC是由多臺服務器構成的邏輯主體,比單臺數據庫服務器能接收更多的客戶端請求。這在要求高吞吐量的系統中,可以獲得很是明顯的體現。在RAC的架構中,多個實例分佈在多個服務器上,能同時打開同一個數據庫,而每一個實例可以接收相等數量的客戶端請求,這樣,隨着服務器的增長,吞吐量也在不斷地增長。
在以上討論的特色中,高可用性是RAC最大的特色。
RAC存在的問題
雖然RAC有很是多的優勢,但因爲部署一套RAC會涉及服務器、存儲設備、HBA卡、操做系統等多方面的技術,且從實現上要比單實例數據庫更復雜,對硬件設備的穩定性、設備之間以及設備與操做系統的兼容性上要求也更高,Oracle的bug也會形成RAC運行出現問題。因此,從實際的運行狀況來看,RAC要比單實例的數據庫存在更多的問題,問題的緣由也各不相同。RAC存在的問題主要體如今穩定性和高性能方面,下面討論這兩個問題。
1、穩定性
數據庫的穩定運行是系統穩定運行的基礎和前提,數據庫的運行依賴於操做系統、服務器、存儲設備等軟硬件設備的運行狀況。
因爲各類硬件設備、操做系統的廠商不一樣,有時候在兼容性上會存在問題,即便同一個廠商的服務器,因爲驅動、固件版本的不一樣也可能致使硬件出現問題以及與其餘設備的兼容性問題。同時,因爲RAC自己也存在很多bug,不少部署的RAC環境缺少在上線前對環境的檢查和測試,致使在運行過程當中出現一系列不穩定的狀況,這樣高可用性並無獲得充分的體現。
由此來看,穩定的硬件環境加上穩定的RAC版本,決定着RAC運行的穩定性。數據庫工程師與硬件工程師在安裝配置前大量的環境檢查、驗證,以及部署後的大量測試工做都是很是重要的。
2、高性能
高性能也是大部分從單機環境遷移到RAC環境比較頭疼的問題,RAC並非高性能的解決方案。在目前廣泛使用千兆網絡的硬件環境中,不少時候系統的數據庫從原來的單機遷移至RAC環境,系統的性能反而降低。在這種狀況下,數據庫管理員應該根據RAC的特色對系統調整提出合理的建議,通過合理的設計、開發,使用RAC是可以提升系統的處理性能的。
以上兩個問題是須要特別注意的。另外,與硬件工程師、系統開發人員進行良好的溝通,以及對系統合理的設計是保證RAC穩定運行和高性能運行的前提。