1. 程式人生 > >Oracle RAC基本概念

Oracle RAC基本概念

特定 遷移 解決方案 開發人員 安裝配置 獲得 情況 網格 play

  原文鏈接:http://tech.it168.com/a2012/0814/1384/000001384756_all.shtml

  不同的集群產品都有自己的特點,RAC的特點包括如下幾點:

  ·雙機並行。RAC是一種並行模式,並不是傳統的主備模式。也就是說,RAC集群的所有成員都可以同時接收客戶端的請求。

  ·高可用性。RAC是Oracle數據庫產品高可用性的解決方案,能夠保證在集群中只要有一個節點存活,就能正常對外提供服務。

  ·易伸縮性。RAC可以非常容易地添加、刪除節點,以滿足系統自身的調整。

  ·低成本。能使用較低廉的服務器來實現高可用性、高吞吐量的集群環境,這要比通過對某臺高端服務器增加硬件實現高可用性、高吞吐量花費的成本低很多。

  ·高吞吐量。隨著節點數的增加,整個RAC的吞吐量也在不斷增長。

  下面詳細討論這五大特點。

  一、雙機並行

  RAC是一種充分利用服務器資源的高可用性實現方案,RAC的並行模式實現方式與傳統的雙機熱備實現方式截然不同,下圖是兩者的比較。

  如圖1-4所示,兩個節點在傳統的雙機熱備環境中,始終有一臺機器作為備用機,只有當主節點出現問題的時候才會切換到備用機上;如果主機一直沒有出現問題,那麽備用機始終處於空閑狀態,這在資源的利用上以及成本方面都是巨大的浪費。但RAC是一種並行模式的架構,也就是說,兩個節點的集群節點間是一種並行運行的關系,當一臺機器出現問題,請求會自動轉發到另一臺機器,沒有任何一臺機器作為備用機一直不被使用,這樣就充分利用了服務器資源。同時,傳統的雙機熱備構架在出現問題時,常常需要數分鐘的切換時間,而RAC在出現問題時,針對存在的會話只需要數十秒的時間就可以完成失敗切換過程,對新會話的創建不會產生影響,在切換時間上也有比較大的優勢。

  技術分享

二、高可用性

  RAC是Oracle數據庫高可用性解決方案。高可用性包含兩部分的內容:首先是在這種解決方案下要確保數據不丟失,這是最基礎的也是必須要保證的;其次是確保不停機,使Oracle數據庫一直維持在正常的運行狀態,避免停機給客戶帶來的損失,這是討論最多的內容。

  停機一般分為兩類,計劃停機和非計劃停機。所謂計劃停機是有計劃地安排節點或者系統的停機,一般在Oracle升級、系統維護或者硬件維護的情況下會出現。非計劃停機就是在非人為計劃的情況下突然停機,這種情況一般是在Oracle bug、系統故障、硬件故障或人為操作失敗的時候出現。

  在沒有較高花費的情況下,想實現系統100%的不停機幾乎是不可能的。下面的表列出了特定百分比高可用性比率運行停機的時間,詳細記錄了每種高可用性比率每年、每月、每周可以出現最大的停機時間。

  技術分享

  通常情況下,以每月停機時間來計算對應的可用性比率。根據系統的重要性情況,應該為系統設定合理的可用性比率。

  集群最大的優勢在於它的高可用性,通過使用RAC可以在一定程度上避免因為硬件或軟件故障引起的數據丟失和非計劃停機,並在一定程度上減少或排除計劃停機時間。這是很多客戶選擇RAC的最直接原因。

  RAC中包含了非常多的高可用特性,主要包含如下幾點:

  ·實現節點間的負載均衡。

  ·實現失敗切換的功能。

  ·通過Service組件來控制客戶端的訪問路徑。

  ·集群軟件能夠自動化管理各個資源,並且有定時的節點狀態檢測機制,能自動對一些失敗的進程以及心跳檢測失敗的節點進行重啟,使其重新恢復到正常的運行狀態。

  在Oracle 11gR2版本中,Clusterware得到了改善,提供了更高的可用性。例如,大量新的基於代理的監控系統用於監控所有的資源。這些代理使用更少的資源執行更頻繁的檢查,即更快速的失敗掃描和更短的恢復時間。在Oracle監聽的例子中,平均失敗掃描時間從5分鐘減少到30秒,同時,檢查間隔從每10分鐘減少到1分鐘。另外,Clusterware的“Out-of-Place Upgrade”等特性也減少了軟件維護需要的停機時間。

  三、易伸縮性

  RAC為需要重新規劃的應用提供了易擴展性。為了在系統初始階段保持較低的成本,避免造成不必要的浪費,集群可以按照標準硬件配置,選擇適當的服務器資源、存儲資源來搭建數據庫環境。當系統需要更多的處理能力或者需要增加存儲時,通過添加另一臺服務器或存儲設備到集群中,能夠在不停機的情況下獲得水平的擴展。在一個集群中, Clusterware和RAC支持多達100個集群節點。

  當某個集群的處理能力過剩,另一個集群的處理能力不夠時,可以從處理能力過剩的集群移動一個節點到處理能力不夠的集群中。這樣能夠充分利用服務器資源,節約成本。11gR2版本中推出了網格即插即用(Grid Plug and Play,GPnP),可以實現節點的快速添加。

  四、低成本

  通過多臺普通的PC服務器組成一個集群,可以提高集群的處理能力,這樣要比采用一臺高性能的服務器的成本低很多。如果想提高系統的處理能力,給集群添加節點比為高性能服務器添加硬件要容易得多。另外,使用集群還能動態地移除節點,更加充分地利用管理者掌握的所有服務器資源,從服務器整體使用上降低了服務器的采購成本。越來越多的企業願意將集群解決方案應用到他們的系統中,以降低成本,提高系統的可用性。

  五、高吞吐量

  RAC是由多臺服務器構成的邏輯主體,比單臺數據庫服務器能接收更多的客戶端請求。這在要求高吞吐量的系統中,能夠得到非常明顯的體現。在RAC的架構中,多個實例分布在多個服務器上,能同時打開同一個數據庫,而每個實例能夠接收相等數量的客戶端請求,這樣,隨著服務器的增加,吞吐量也在不斷地增加。

  在以上討論的特點中,高可用性是RAC最大的特點。

  RAC存在的問題

  雖然RAC有非常多的優點,但由於部署一套RAC會涉及服務器、存儲設備、HBA卡、操作系統等多方面的技術,且從實現上要比單實例數據庫更復雜,對硬件設備的穩定性、設備之間以及設備與操作系統的兼容性上要求也更高,Oracle的bug也會造成RAC運行出現問題。所以,從實際的運行情況來看,RAC要比單實例的數據庫存在更多的問題,問題的原因也各不相同。RAC存在的問題主要體現在穩定性和高性能方面,下面討論這兩個問題。

  一、穩定性

  數據庫的穩定運行是系統穩定運行的基礎和前提,數據庫的運行依賴於操作系統、服務器、存儲設備等軟硬件設備的運行情況。

  由於各種硬件設備、操作系統的廠商不同,有時候在兼容性上會存在問題,即使同一個廠商的服務器,由於驅動、固件版本的不同也可能導致硬件出現問題以及與其他設備的兼容性問題。同時,由於RAC本身也存在不少bug,很多部署的RAC環境缺乏在上線前對環境的檢查和測試,導致在運行過程中出現一系列不穩定的情況,這樣高可用性並沒有得到充分的體現。

  由此來看,穩定的硬件環境加上穩定的RAC版本,決定著RAC運行的穩定性。數據庫工程師與硬件工程師在安裝配置前大量的環境檢查、驗證,以及部署後的大量測試工作都是非常重要的。

  二、高性能

  高性能也是大部分從單機環境遷移到RAC環境比較頭疼的問題,RAC並不是高性能的解決方案。在目前普遍使用千兆網絡的硬件環境中,很多時候系統的數據庫從原來的單機遷移至RAC環境,系統的性能反而下降。在這種情況下,數據庫管理員應該根據RAC的特點對系統調整提出合理的建議,經過合理的設計、開發,使用RAC是能夠提高系統的處理性能的。

  以上兩個問題是需要特別註意的。另外,與硬件工程師、系統開發人員進行良好的溝通,以及對系統合理的設計是保證RAC穩定運行和高性能運行的前提。

Oracle RAC基本概念