1. 程式人生 > >Oracle 11G RAC 體系結構概述

Oracle 11G RAC 體系結構概述

Oracle 11G RAC體系結構:

RAC環境與單例項最主要的區別是

  1. RAC的每個例項都有屬於自己的SGA、後臺程序。
  2. 由於資料檔案、控制檔案共享於所有例項,所以必須放在共享儲存中。
  3. 聯機重做日誌檔案:只有一個例項可以寫入,但是其他例項可以再回復和存檔期間讀取。
  4. 歸檔日誌:屬於該例項,但在介質恢復期間,其他例項需要訪問所需的歸檔日誌。
  5. alter和trace日誌:屬於每個例項自己,其他例項不可讀寫。

  RAC的主要元件包括:

  • 共享磁碟系統
  • Oracle叢集件
  • 叢集互聯
  • Oracle核心元件

Oracle叢集件

  Oracle叢集件能使節點能夠互相通訊,構成叢集,從而這些節點能夠像單個邏輯伺服器那樣整體執行。構成Oracle叢集件的後臺程序和服務是 crsd、ocssd、oprocd、evmd和ons。Oracle叢集件由CRS服務使用OCR和votingdisk進行管理。

  OCR記錄和維持叢集及節點的成員資格資訊,而votingdisk在通訊故障時充當一個仲裁者。在叢集執行期間,來自所有節點的一致性心跳資訊都會發送給votingdisk。

  CRS的元件包括,在linux系統可以通過ps -ef來檢視以下程序

  1. crs守護程序crsd
  2. Oracle叢集同步服務守護程序ocssd
  3. 事件管理器守護程序evmd
  4. Oracle通知服務ons

  叢集就緒服務

  crsd為Oracle叢集提供了高可用性的框架,並管理叢集資源的狀態:啟動、停止、監視叢集資源,並把發生故障的叢集資源重定位到叢集中的可用叢集節點。叢集資源可以是網路資源,如虛擬IP、DB例項、偵聽器等。在對叢集資源採取任何動作之前,crsd程序都會獲取OCR中儲存的叢集資源配置資訊。crsd還使用ocr來維護叢集資源配置檔案盒狀態。每個叢集資源都有一個資源配置檔案,它儲存在OCR中。

  叢集同步服務

  ocssd提供節點之間的同步服務。它提供對節點成員關係的訪問,並支援基本叢集服務,包含叢集組服務和叢集鎖定。ocssd的故障會導致計算機重新啟動,以避免”腦裂“(如出現腦裂情況,叢集的處理機制請看下面的votingdisk)。

注: ”腦裂“ -- 叢集環境網路鏈路不能互通,但這些例項仍然正常運作,每個例項都認為其他例項已經掛掉,並嘗試接管所有權。在共享儲存環境下,如果出現此現象就會發生資料不一致的嚴重情況。

  事件管理程序

  Event Management (EVM): A background process that publishes events that Oracle Clusterware creates.一個釋出Oracle叢集事件產生的程序。

  The background process that publishes Oracle Clusterware events. EVM scans the designated callout directory and runs all scripts in that directory when an event occurs.

  Oracle通知服務

  在crs啟動時會在每個叢集節點上啟動該程序。只要進群資源的狀態發生改變,每個叢集節點上的ons程序就會互相通訊,並交換HA事件資訊。crs觸發這些HA事件,並將他們傳到ons程序,然後ons程序將這一HA事件資訊釋出到中間層。為了在中間層使用ONS,對於任何一臺主機,只要上面有需要與FAN整合的客戶端應用程式,就需要再這臺主機上安裝ONS。應用程式會出於各種不同原因而使用這些高可用性事件,特別是用於快速檢測故障。解決和釋出高可用性事件的整個過程稱為“快速應用程式通知FAN”。高可用性事件也可稱為FAN事件。

  Oracle 11g r2的叢集件啟動程序

  在R2中Oracle引入了“Oracle高可用性服務”守護程序OHASD,它啟動所有其他Oracle叢集件守護程序。在安裝GI期間,Oracle向/etc/inittab檔案配置內容:

  /etc/init.d/init.ohasd run >/dev/null 2>&1 </dev/null

  Oracle叢集登錄檔(ocr)

  OCR檔案是二進位制檔案,OCR儲存Oracle叢集件中所定義的全部叢集資源的元資料、配置和狀態資訊。OCR必須能夠給叢集所有節點訪問,所以在安裝叢集時需要配置好相關的許可權。OCR用於引導css,提供埠資訊等叢集中的節點配置資訊(可以理解為windows的登錄檔)。多數情況下OCR只提供只讀操作,其他例如在節點新增和刪除期間CSS用新的資訊更新OCR。

  OCR每4個小時會自動備份一次並儲存一週,會迴圈進行覆蓋。備份路徑為$ORACLE_HOME/cdata/。

  表決磁碟(votingdisk)

  Votingdisk是一個共享磁碟,在操作期間可提供叢集中的所有節點訪問。votingdisk用作節點的集中引用,儲存了節點之間的心跳資訊。如果有任何節點不能ping表決磁碟,那麼叢集立即確認通訊故障,將該節點從叢集中剔除,以防止資料丟失。Votingdisk管理叢集成員資格,並在節點之間發生通訊故障時判斷叢集的所有權關係。對Votingdisk的管理應當對其進行映象操作。

  虛擬IP(vip)

  vip的作用

  當一個節點停機時,vip會被自動故障轉移到其他節點之一,在此期間,獲得vip的節點將重新向外部進行地質解析,指示vip的新mac地址,連線到這個vip的client將會立即傳送一個重置資料包,這樣客戶端會獲取這個錯誤訊息,而不需要等待TCP超時值。

  單一客戶端訪問名稱(scan)

  Oracle RAC 11g release 2 (11.2) introduces the Single Client Access Name (SCAN). SCAN is a domain name registered to at least one and up to three IP addresses, either in DNS or GNS. When using GNS and DHCP, Oracle Clusterware configures the VIP addresses for the SCAN name that is provided during cluster configuration.

The node VIP and the three SCAN VIPs are obtained from the DHCP server when using GNS. If a new server joins the cluster, then Oracle Clusterware dynamically obtains the required VIP address from the DHCP server, updates the cluster resource, and makes the server accessible through GNS.

Example 1-1 shows the DNS entries that delegate a domain to the cluster.

Oracle核心元件

    OracleRAC環境中的Oracle核心元件是每個例項中的附加後臺程序集合。緩衝區快取和共享池在Oracle RAC換進中變為全域性的,需要特殊處理才能做到無衝突、無損壞地管理資源。

    全域性快取服務GCS和全域性佇列服務GES

    在這裡可以回想在寫Oracle體系結構的文時在單例項情況下Oracle對資料快取和寫入的過程,在RAC環境下,每個例項都有屬於自己的SGA,那在這種情況下應該如果對資料進行有效管理呢,在rac中,一個節點的緩衝區快取中可能包含了經常被另一個節點請求的資料,資料共享和交換的管理工作是由全域性快取服務(GCS)完成的。

    全域性資源目錄GRD

    叢集組中的所有資源構成一個集中的資源倉庫,稱為GRD,所有例項的資源加起來構成了GRD。GRD由兩個服務管理,這兩個服務分別為:GCS和GES,在Oracle並行伺服器中這稱為DLM(Distribute Lock Management)。

    Oracle RAC後臺程序

    OracleRAC程序包括oracle例項程序之外,還有RAC的程序。這些程序使節點之間的快取保持一致。維持快取一致性是RAC的重要部分。快取一致性技術用於在不同節點上的不同oracle例項之間保持緩衝區多個副本的一致性。GCS管理確保在訪問一個緩衝區快取中某個資料塊的主副本時,會與另一個緩衝區快取中的資料塊副本進行協調。這樣就確保了一個緩衝區快取中某個資料塊的最新副本包含了系統中另一個例項對該資料塊所做的全部修改而無論這些修改是否已經進行事務提交。

    GRD管理所有資源的鎖定或所有權,這些資源在OracleRAC中並不僅限於單一例項。GRD中GCS處理資料塊,GES處理佇列和其他全域性資源。GCS和GES使用以下程序來管理資源,RAC特有的這些程序和GRD寫作,以支援快取融合:

  • LMS     全域性快取服務程序(LMS是快取融合中使用的一個程序。可以從資料塊所在例項的緩衝區向請求例項的緩衝區快取中傳遞資料塊的一致性副本,而不需要進行磁碟寫入。它還可以從LMD建立的伺服器佇列中獲取請求,以執行所請求的鎖操作。LMS程序管理隊GCS資源的“鎖管理伺服器”請求,並將他們傳送到一個由LMS程序處理的服務佇列和全域性鎖的死鎖檢測,並監控鎖對話的超時。
  • LMON  全域性佇列服務監控器(LMON是一個鎖監控器程序,管理GES。)
  • LMD     全域性佇列服務守護程序(LMD是為GCS管理GES請求的守護程序。)
  • LCK0   例項佇列程序(LCK0管理例項資源請求和對共享資源的跨例項呼叫操作。)
  • DIAG    診斷守護程序(DIAG用於RAC環境中一個例項的所有診斷需求。)

附上RAC叢集啟動圖:

Description of Figure 1-2 follows

小結:RAC體系結構的理論知識框架還有許多細節還需要深入地去學習,在瞭解RAC的體系結構的同時也需要配合實際操作去鞏固所學到的知識。