第1章Oracle RAC介紹----RAC結構和進程概覽

 至少,Oracle RAC要求Oracle Clusterware軟件環境提供一個集羣中全部結點對同一份存儲和同一套數據文件的併發訪問,能實現集羣中跨結點進程間通訊,實現多個數據庫實例處理數據如同數據在本地,並提供一種機制監控集羣中結點的狀態和聯絡。如下部分更詳細地描述了這些概念: 數據庫

  •     理解有集羣意識的存儲解決方案
  •    使用服務和VIP地址鏈接到Oracle數據庫概覽
  •     關於Oracle RAC軟件組件
  •     關於Oracle RAC後臺進程

理解有集羣意識的存儲解決方案 緩存

一個Oracle RAC數據庫是一個共享一切的數據庫。Oracle RAC環境中的全部數據文件、控制文件、SPFILEs和重作日誌文件必須存在於有集羣意識的共享磁盤中,以便全部的集羣數據庫實例能訪問這些存儲。由於Oracle RAC數據庫使用一種共享一切的結構,所以Oracle RAC要求有集羣意識的存儲保存全部數據庫文件。 服務器

在Oracle RAC中,Oracle數據庫軟件管理磁盤訪問並經認證在多種存儲結構中使用。由用戶選擇如何配置存儲,可是用戶要使用一種受支持的有集羣意識的存儲解決方案。Oracle數據庫爲Oracle RAC提供如下文件存儲選擇: 網絡

  • Oracle ASM,Oracle公司推薦使用此解決方案來管理用戶存儲
  • 一種通過認證的集羣文件系統,包括OCFS2和OCFS
  • 經認證的NFS文件服務器

使用服務和VIP地址鏈接到Oracle數據庫概覽 併發

一個Oracle RAC環境中的全部結點必須鏈接到一個局域網使用戶和應用程序能訪問數據庫。應用程序要使用Oracle數據庫服務要素鏈接到Oracle數據庫,服務能使用戶定義規則和特性值來控制用戶和應用程序如何鏈接到數據庫實例。這些特性值包括全局名,負載均衡和故障轉移選項,以及高可用性特徵。Oracle網絡服務使應用程序鏈接的負載均衡跨Oracle RAC數據庫的全部實例。 負載均衡

用戶能使用C/S配置或經過一層或多層中間件訪問Oracle RAC數據庫,使用或不用鏈接池。這些用戶能夠是數據庫管理員,開發者,應用程序用戶,高級用戶如創建他們本身搜索條件的數據挖掘者等等。 分佈式

大部分公用網絡典型地用TCP/IP,可是用戶可使用任何受支持的軟硬件組合。Oracle RAC數據庫實例應當可經過SCAN訪問。 spa

互連網絡是一個私有網絡,它鏈接集羣中的全部服務器。互連網絡使用一個交換機或多個交換機只有該集羣中的結點能訪問。配置集羣鏈接中千兆以太網上的UDP。在Linux和UNIX系統中,你能夠配置Oracle集羣件使用UDP或RDS協議。Windows集羣使用TCP。跨接電纜不支持用在Oracle集羣件鏈接中。 代理

若是一個結點失敗,結點的VIP地址轉移到另外一個結點中,在其上VIP地址訪問TCP鏈接,可是不接受鏈接到Oracle數據庫。一般,VIP地址當如下狀況發生時便故障轉移: 日誌

  • VIP地址運行失敗的結點
  • 全部用於VIP地址的接口不能用
  • 全部用於VIP地址的接口從網絡中斷開鏈接

試圖鏈接到VIP地址的客戶端收到一個快速鏈接拒絕錯誤而不是等待TCP鏈接超時信息。當配置有VIP的網絡恢復鏈接時,Oracle集羣件將VIP故障返回到接受鏈接的主結點。

若是用戶使用NAS,那麼要求用戶配置第二個私有網絡。對該網絡的訪問被供貨商軟件控制。該私有網絡 使用靜態IP地址。

Oracle RAC11g版本2(11.2)支持多個公用網絡。每一個網絡有本身的子網,每一個數據庫服務用一個特有網絡訪問Oracle RAC數據庫。每一個網絡是一個由Oracle集羣件管理的資源。

用戶必須爲每一個集羣建一個SCAN,這是一個單網絡名稱在用戶企業的DNS或GNS中定義。Oracle公司建議全部對Oracle RAC數據庫的鏈接在他們的客戶端鏈接中使用SCAN。來訪鏈接在當前運行的實例中實現負載均衡,全部有效實例經過三個SCAN監聽器提供服務。使用SCAN,用戶沒必要改變客戶端鏈接,即便集羣配置信息改變(結點增長或移除)。

關於Oracle RAC軟件組件

Oracle RAC數據庫一般有兩個或多個數據庫實例,每一個實例由內存結構和後臺進程組成。一個RAC數據庫有象單實例Oracle數據庫中相同的進程和內存結構,還有針對Oracle RAC專有的其它進程和內存結構。任何一個實例的數據庫視圖幾乎等同於同一個RAC數據庫的任何其它實例的視圖;該視圖是環境的單系統影像。

每一個實例在它的SGA中有一個高速緩存。使用緩存融合,Oracle RAC環境邏輯上合併每一個實例的高速緩存以使實例處理數據如同數據在本地合併的單個緩存中同樣。

爲保障每一個Oracle RAC數據庫實例得到知足一次查詢或處理事務的塊,Oracle RAC實例使用兩個進程,GCS和GES。GCS和GES維護每一個數據文件的狀態記錄,使用GRD維護每一個緩存塊的狀態信息。GRD內容分佈在全部有效運行的實例中,這有效增長了一個Oracle RAC實例的SGA大小。

在一個實例緩存數據之後,同一個集羣中任何其它實例能從同一個數據庫的另外一個實例中得到一個塊影像,比從磁盤中讀塊要快。所以,緩存融合把當前塊在多個實例間移動而不是從磁盤中從新讀塊。當須要一個一致的塊或在另外一個實例中須要一個改變的塊,緩存融合便直接在所影響的實例中移動塊影像。Oracle RAC使用私有鏈接用於實例間通訊和塊移動。GES監控器和實例隊列進程管理對緩存融合資源的訪問和排隊恢復處理。

關於Oracle RAC後臺進程

GCS和GES進程以及GRD共同做用來啓用緩存融合。Oracle RAC進程和其標識以下:

  • ACMS:

在一個Oracle RAC環境中,ACMS每一個實例進程是一個代理,確保一個分佈式SGA內存更新要麼所有成功要麼出現錯誤所有終止。

  • GTX0-j

GTX0-j進程對RAC環境中XA全局事務提供透明支持。數據庫基於XA全局事務的工做負載自動調整這些進程的數目。

  • LMON

LMON進程監控全局隊列和集羣中的資源,執行全局隊列恢復操做

  • LMD

LMD進程在每一個實例中管理加入的遠程資源請求

  • LMS

LMS進程維護數據文件狀態的記錄信息及經過把緩存塊的信息記錄在GRD中維護其信息。LMS進程也控制到遠程實例的信息流並管理全局數據塊訪問在不一樣實例高速緩存間移動塊影像。該進程也是緩存融合要素的一部分。

  • LCK0
  • RMSn
  • RSMN
相關文章
相關標籤/搜索