Oracle RAC 高可用性體系結構與叢集 單例項環境與 Oracle RAC 環境對比

kunlunzhiying發表於2016-12-14

第3章 Oracle RAC 體系結構


    Oracle RAC允許多個例項訪問同一個資料庫。在多個伺服器節點上執行的例項訪問一組構成單個資料庫的公共資料檔案集。在單例項環境中,一個Oracle資料庫僅供在伺服器上執行的一個例項使用;而訪問這個資料庫的使用者只能透過這一臺伺服器來連線到資料庫。資料庫任務能夠使用的處理資源(CPU、記憶體等)僅限於這一臺伺服器上的處理資源。在Oracle RAC環境中,可以有多個例項使用同一個資料庫。這一方案向資料庫使用者呈現了多個處理資源。


   注意:


  “例項”就是一臺計算機上與資料庫有關的記憶體結構集,資料庫是一個物理檔案集,資料庫與例項之間是一種一對多關係,在Oracle RAC中,一個資料庫可以由多個例項併發使用,一個例項只是一個資料庫的部分。


    構成資料庫的資料檔案存放在永久性儲存中,它們可以平等地供所有節點進行讀取和寫入訪問。Oracle RAC協調和調整來自多個伺服器節點的併發資料訪問。因此,在叢集的節點之間必須存在一種高效、可靠的高速專用網路,用於傳送和接收資料。圖3-1顯示了單例項資料庫和Oracle RAC資料庫的配置。


    3.1 單例項環境與Oracle RAC環境的對比


    與在單例項環境中類似,Oracle RAC環境中的每個例項也有其自己的“系統全域性區”(SGA)和後臺程式。但是,所有資料檔案和控制檔案都可供所有節點同等訪問,所以必須把這些檔案放在一個共享磁碟子系統上。每個例項還有其自己的專用聯機重做日誌檔案,這些聯機重做日誌檔案只能由它所屬的例項寫入。但是,在例項故障恢復期間,這些檔案必須可以供其他例項讀取。這就要求這些聯機重做日誌檔案駐留在一個共享磁碟子系統上,而不是位於一個節點的本地儲存上,否則,這些檔案會在節點崩潰時丟失。


    表3-1對比了單例項元件和Oracle RAC環境中一個例項的元件。


表3-1單例項元件與Oracle RAC元件的對比

 元件  單例項環境  RAC環境
 SGA  例項擁有自己的SGA  每個例項擁有自己的SGA
 後臺程式  例項有自己的後臺程式集  例項有自己的後臺程式集
 資料檔案  僅由一個例項訪問  由所有例項共享,所以必須放在共享儲存中
 控制檔案  僅由一個例項訪問  由所有例項共享,所以必須放在共享儲存中
 聯機重做日誌檔案  專供一個例項寫入和讀取  只有一個例項可以寫入。但其他例項可以在恢復和存檔期間讀取。如果一個例項關閉,那麼其他例項的日誌切換可以強制對空閒例項重做日誌進行存檔
 存檔後的重做日誌  專供該例項使用  專屬於該例項,但在媒介恢復期間,其他例項需要訪問所需的存檔日誌
 快閃恢復日誌  僅由一個例項訪問  由所有例項共享,所以必須放在共享儲存中
 警報日誌和其他跟蹤檔案  專供該例項使用  專屬於每個例項;其他例項永遠不會讀寫這些檔案
 ORACLE HOME  同一臺計算機上訪問不同資料庫的多個例項可以使用相同的可執行檔案  與單個例項相同,但也可以放在共亨檔案系統上,允許Oracle RAC環境使用者的所有例項共用一個ORACLE HOME


    由於多個例項可能同時需要同一資料集,因此Oracle RAC環境中的例項共享資料。多個例項同時訪問同一資料並沒有危險;但是,如果一個例項(透過插入或更新)修改某一資料,而其他例項讀取該資料,或者多個例項併發修改相同資料,就會出現資料完整性問題。如果不能正確協調,這種併發讀/寫或寫/寫行為就可能會導致資料損壞或不一致的資料表示方式。單例項Oracle已經確保讀取者從來不會阻塞寫入者,也不允許任何“髒”讀取。


    Oracle RAC確保叢集內所有例項看到的資料庫都是一致的。分散式鎖管理器(或DLM;從9i版本開始,它稱為“全域性資源目錄”或GRD)協調在例項之間共享的資源。

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

相關文章