real application cluster
功能作用:
HA 高可用
LB 負載均衡
物理結構:
由多個節點組成,每個節點一個實例
節點間通過特殊的機制通訊、協調
一般由多節節點、內網鏈接、外網鏈接、共享庫組成
邏輯結構:
—— 集羣件(也就是clusterware):管理相關資源(資源需要預先註冊),記錄資源信息,監控資源狀態。資源裏包括:OMS、VIP、數據庫、實例、監聽器;Clusterware同時也管理硬件節點資源,使這些節點模擬一個計算機。節點對用戶是透明的。
——網絡要素:RAC需要多個局域網,內網、外網、存儲網絡
——共享存儲:多節點、每個節點一個實例,多節點分享共享存儲。控制文件、數據文件、日誌文件存放在同一個共享存儲上,保證RAC環境只有一個數據庫。
——CRS的資源服務:
CLUSTER用於管理集羣中多個節點的各種資源,如:監聽、實例等,與節點相關的VIP、GSD、ONS(這仨資源用VIPCA來管理),這些都是CRS管理的資源。這些資源存儲在OCR磁盤上,通過Clusterwarehouse中的相關進程監控ORC磁盤上的信息,從而實現監控這些資源的目的。
單實例和RAC結構上的區別:
——GRD內存區域
——多個後臺進程
——部分數據庫文件
1.首先介紹GRD:Global Resource Directory、全局資源目錄
RAC環境心下每個節點實例都有自己的GRD內存區域,用來存儲同一個數據庫在不同節點上的分佈,既多個實例併發操作同一個數據塊兒的時候,該數據塊就在節點各自的GRD內存中,RAC通過特殊的機制來監控不同的實例上同一個數據塊兒的當前狀態 。
2. 其次是部分進程的
LMON進程:
RAC環境中多個節點實例之間定期通訊,檢查各自當前狀態。這種節點之間的協調通訊,以完成節點間健康檢查的任務由LMON來完成。
LMD進程:
CaheFusion(內存融合) 裏有個GES(Global Enqueue Service)服務,該服務協調節點之間對同一數據塊兒訪問的次序,LMD就是提供GES服務。
LCK進程:Lock進程,和顯然是提供集羣環境中對同一數據塊兒訪問的鎖管理。
LMSn進程:CacheFusion裏有一個GCS服務(),該服務作用是節點之間拷貝數據塊兒,而LMSn進程就提供GCS服務。
DIAG進程:集羣裏的日誌進程,記錄集羣健康狀態、實例錯誤診斷日誌。
3.部分數據文件:
參數文件和日誌文件的存儲:集羣環境先所有節點的參數文件和日誌文件存放於共享存儲上,所有節點實例共享。防止一個節點做修改二其他節點“一無所知”。
RAC與Clusterware:
Clusterware是個集羣件,提供相當於一箇中間件的功能! 單實例環境通過OS內核操作數據文件, RAC是個集羣環境,是多實例環境,有多個OS,無法通過OS來操作數據文件,因爲操作系統之間沒有這樣的協調,### 因此Oracle開發了一個東西,在Oracle數據庫和操作系統之間加了一箇中間件,叫Clusterware,這樣操作數據的時候通過Clusterware之間協調,這樣實例之間還可以共同完成數據庫的操作。
RAC是個集羣環境,它讓數據庫服務器之間通過一個集羣軟件來一起協調工作,該集羣環境提供了“實例”對“數據庫”的多對一的對應關係,既多實例對應一個數據庫; 多實例環境相對於單實例環境提高了系統吞吐量和可擴展性。提供系統的可靠性和負載均衡。
Clusterware是一種集羣件產品,負責管理RAC節點的硬件資源,管理各種應用資源,爲集羣數據庫提供基礎服務; 多個實例之間的工作通過Clusterware 來協調管理同一個物理數據庫。 Clusterware 相當於一箇中間層軟件,置於系統和數據庫軟件之間。當多個實例協調的時候通過它來完成,同事也監控很多資源。
Clusterware羣集件的組成: OCR 、 Voting disk 、後臺進程 、 網絡組件
——OCR
1.磁盤文件 2.存儲在共享存儲上(或裸設備) 3.作用是記錄RAC集羣節點的配置信息 。 這樣可實現整個環境中只有一個存儲配置的磁盤文件,實現對集羣配置的同步修改(放置單點修改,二其他節點“一無所知”)。
——voting disk
用於存儲節點狀態信息,一旦節點失效通過“投舉”算法將失效節點踢出羣集,該文件存儲在共享存儲上,每個節點都可以訪問到,通過節點狀態信息,根據投票結果踢出失效節點,重構健康集羣環境。
——後臺進程
1.occsd 後天進程:提供CSS(Clusterware Synchronization service)集羣同步服務,該服務通過某種機制判斷集羣的節點是否還“活着”,監控節點狀態,ocssd 進程就完成。
2.crsd (Clusterware ready service)這些資源,並在這些資源故障時提供系統的 高可用性(修復)。 RAC環境下,資源會註冊到OCR,crsd進程就是讀取OCR中存儲的狀態信息來管理資源, 如監控資源的運行狀態,何時以及重啓或關閉這些註冊的資源。
3.EVMD進程:負責分發CRS進程產生的事件(event),RACGIMON進程負責檢查數據庫的狀態。
——網絡組件:RAC環境中每個節點至少需要兩個網卡,一個爲public 網卡,配置IP爲public ip,用於提供外部服務;一個爲private 網卡,配置的爲private IP,用於內部連接,實現節點之間的通訊,如:心跳線(heartbeat)和內存融合(cachefusion)等。 在安裝Clusterware的時候還需要配置一個Virtual IP ,該地址會綁定到public IP上,已實現RAC故障時failover。
拓展內容:
連接1:RAC集羣簡介 http://czmmiao.iteye.com/blog/1629166
連接2:Oracle RAC 基本概念及入門 http://blog.itpub.net/9399028/viewspace-682678/
連接3: http://blog.csdn.net/zq9017197/article/details/7637458