第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/,如需轉載,請注明出處,否則将追究法律責任。
轉載于:http://blog.itpub.net/28211342/viewspace-2130610/