Oracle RAC 環境下的串連管理

來源:互聯網
上載者:User

這篇文章詳細介紹了Oracle RAC環境下的串連管理,分別介紹了什麼是 Connect Time Load Balancing、Runtime Connection Load Balancing、Connect Time Connection Failover 和 Runtime Connection Failover,以及裡面所涉及到的 TAF、ONS、FCF、FAN、LBA 等諸多知識點。本文主要是針對 Oracle RAC 11gR2 環境下的串連管理,但同時也會對比說明一下 Oracle RAC 10gR2/9iR2,以體現他們之間在串連管理上的差異。

所謂“串連管理”,主要體現在 Load Balancing 和 Failover 兩方面。Oracle RAC 11gR2 下的 Load Balancing 和 Failover,根據是否使用了事先已經存在的串連(如串連池中的串連)又分為 Connect Time Load Balancing、Runtime Connection Load Balancing、Connect Time Connection Failover和Runtime Connection Failover 這 4 種類型,凡是帶上了“Runtime”首碼的,就是指串連已經存在的情況,比如使用了串連池。

一、首先來介紹 Connect Time Connection Failover

Connect Time Connection Failover 是指不從串連池中取得已有串連,而是直接連接 Oracle 資料庫時的 Failover。在 Oracle RAC 11gR2 之前,Connect Time Connection Failover 是非常容易實現的,只需要在相關的 tnsnames.ora 中指定多個 vip,同時指定 FAILOVER=ON 就好了。如下所示:

(DESCRIPTION=    (FAILOVER=ON)    (ADDRESS_LIST=      (LOAD_BALANCE=OFF)      (ADDRESS=(PROTOCOL=TCP)(HOST=RAC1-vip)(PORT=1521))      (ADDRESS=(PROTOCOL=TCP)(HOST=RAC2-vip)(PORT=1521))      (ADDRESS=(PROTOCOL=TCP)(HOST=RAC3-vip)(PORT=1521))      (ADDRESS=(PROTOCOL=TCP)(HOST=RAC4-vip)(PORT=1521))    )    (CONNECT_DATA=(SERVICE_NAME=RAC10g))  ) 

這裡用戶端進程首先會嘗試串連 RAC1-vip,如果連不上,則會嘗試RAC2-vip,再連不上,則會繼續往下嘗試,直到所有出現在 ADDRESS_LIST 中的 vip 地址全部順序嘗試完為止。這種用戶端在串連 Oracle 資料庫時的 Failover,不僅適用於 RAC 環境,也適用於 Data Guard 環境。如下所示:

DESCRIPTION=    (FAILOVER=ON)    (ADDRESS_LIST=      (LOAD_BALANCE=OFF)      (ADDRESS=(PROTOCOL=TCP)(HOST=primary-ip)(PORT=1521))      (ADDRESS=(PROTOCOL=TCP)(HOST=standby-ip)(PORT=1521))         )    (CONNECT_DATA=(SERVICE_NAME=service10g))  )  

Oracle RAC 11gR2 引入了 SCAN(Single Client Access Name),並且用戶端預設是通過 SCAN 來串連整個 RAC 環境的,如下是 SCAN 的架構圖:

如所示,如果使用了 DNS 或者 GNS (Grid Naming Service),那麼最多可以有 3 個 SCAN VIP 和 3 個 SCAN Listener;如果沒有使用 DNS 或者 GNS,而是選擇使用 hosts 檔案,則只會有 1 個 SCAN VIP 和 1 個 SCAN Listener。

這裡假設在 tnsnames.ora 中這樣配置:

  (DESCRIPTION =     (FAILOVER=ON)     (ADDRESS = (PROTOCOL = TCP)(HOST = MySCAN)(PORT = 1521))     (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME =RAC11g)))

嚴格意義上說,只有在 RAC 環境有 1 個以上 SCAN VIP 的時候,上述 FAILOVER=ON 才有意義——它表示的是用戶端在串連 SCAN VIP 的時候,如果其中的一個 SCAN VIP 連不上,則馬上會嘗試另外一個 SCAN VIP。

當使用了 hosts 檔案來指定 SCAN VIP 的時候,即在整個 RAC 環境只有 1 個 SCAN VIP 的情況下,Failover 其實也存在,只不過這種情況下 Failover 的速度會慢一些。因為當 SCAN VIP 所在的節點宕掉後,SCAN VIP 會和相關的 SCAN Listener 一起整體 Failover 到其他節點,只不過這個 Failover 需要時間,而用戶端需要等待這個 Failover 過程完畢後才能重新連上 RAC。

二、接下來介紹 Runtime Connection Failover

Runtime Connection Failover 是指串連已經存在的情況下的 Failover。這個已存在的串連,可能是串連池中正在用的串連,也可能是不通過串連池、直接通過 OCI 用戶端(如 sqlplus)連上 Oracle 資料庫後的串連。

這種 Runtime Connection Failover,就是指在串連已經存在的情況下,如果 Oracle 資料庫端出現了異常的情況(比如 Service 宕了、Instance 崩潰了、Session 斷了)而導致已有串連中斷,怎樣 Failover 的問題。

有兩種手段來實現 Runtime Connection Failover,分別為 TAF(Transparent Application Failover)和 FCF(Fast Connection Failover)。

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 下一頁

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.