在Oracle RAC環境下,每個節點都會有多個IP地址,分別為Public/Private/Vip,這三個IP到底有啥區別呢?分別用在那些場合呢?來看看老外的回答。 1. private IP address is used only for internal clustering processing (Cache Fusion) 私有IP用于心跳同步
在Oracle RAC環境下,每個節點都會有多個IP地址,分別為Public/Private/Vip,這三個IP到底有啥區別呢?分別用在那些場合呢?來看看老外的回答。Oracle RAC中每個節點都有一個虛擬IP,簡稱VIP,與公網IP在同一個網段。
沒有VIP時,Oracle客戶端是靠“TCP/IP協議棧超時”來判斷服務器故障。而TCP/IP協議棧是作為OS Kernel的一部分來實現,不同的OS有不同的閥值,用戶獲悉數據庫異常的時間完全取決于OS Kernel的實現,雖然有些OS允許修改這個閥值,但是會對其它程序產生未知影響。因此,oracle RAC引入了VIP,從而避開對TCP協議棧超時的依賴。
VIP和IP最主要的不同之處在于:VIP是浮動的,而IP是固定的。在所有節點都正常運行時,每個節點的VIP會被分配到public NIC上;在linux下ifconfig查看,public網卡上是2個IP地址;如果一個節點宕機,這個節點的VIP會被轉移到還在運行的節點上。也就是幸存的節點的public NIC這個網卡上,會有3個IP地址。
當一個節點宕機,這個節點真實IP就連接不上了,但是這個節點的虛擬IP是可以連接的,他會自動把客戶端的連接請求轉接給存活的節點。
在tnsname.ora文件里,指定Address列表,客戶端會隨機選擇一個節點來連接數據庫,而不是順序選擇的。
VIP特點:
1 VIP是在clusterware安裝最后階段,通過腳本VIPCA創建的;
2 VIP作為一個Nodeapps類型的CRS Resource注冊到OCR中,并由CRS維護狀態;
3 VIP會綁定到節點的public 網卡上;那么public網卡就有兩個地址了;
4 當某個節點發生故障時,CRS會把故障節點的VIP轉移到其他節點上;
5 每個節點的Listener會同時在public網卡的public IP和VIP兩個地址上監聽;
6 客戶端的tnsname.ora一般會配置指向節點的VIP;
從上面第6條可以引出一個問題。如果增加一個節點,那么客戶端的tnsname.ora需要加入新增節點的VIP。那么想象一下:多個客戶端,增加多個節點,那么維護起來特別麻煩。因此到了Oracle11gR2,引入了一個scan的概念。
scan,single client access name。簡單客戶端連接名,這是一個唯一的名稱,在整個公司網絡內部唯一,并且在DNS中可以解析為三個ip地址,客戶端連接的時候只需要知道這個名稱,并連接即可, 每個SCAN VIP對應一個scan listener,cluster內部的service在每個scan listener上都有注冊,scan listener接受客戶端的請求,并foward到不同的Local listener中去,還是由local 的listener提供服務給客戶端。
注意:scan不一定要resolve到三個ip,一個也夠了。只不過為了防止scan單點故障而推薦3個。
VIP 原理和特點
Oracle 的TAF 就是建立在VIP 技術之上的。 IP 和VIP 區別在與: IP 是利用TCP層超時, VIP 利用的是應用層的立即響應。VIP 它是浮動的IP。 當一個節點出現問題時會自動的轉到另一個節點上。
假設有一個2個節點的RAC,正常運行時每個節點上都有一個VIP。 VIP1 和VIP2. 當節點2發生故障,比如異常關系。 RAC 會做如下操作:
1). CRS 在檢測到rac2節點異常后,會觸發Clusterware 重構,最后把rac2節點剔除集群,由節點1組成新的集群。
2). RAC的Failover 機制會把節點2的VIP轉移到節點1上,這時節點1的PUBLIC 網卡上就有3個IP 地址: VIP1,VIP2, PUBLIC IP1.
3). 用戶對VIP2的連接請求會被IP層路由轉到節點1
4). 因為在節點1上有VIP2的地址,所有數據包會順利通過路由層,網絡層,傳輸層。
5). 但是,節點1上只監聽VIP1和public IP1的兩個IP地址。并沒有監聽VIP2,故應用層沒有對應的程序接收這個數據包,這個錯誤立即被捕獲。
6). 客戶段能夠立即接收到這個錯誤,然后客戶段會重新發起向VIP1的連接請求。
VIP 特點:
1). VIP 是通過VIPCA腳本創建的
2). VIP 作為Nodeapps類型的CRS Resource 注冊到OCR中,并由CRS 維護狀態。
3). VIP 會綁定到節點的public 網卡上,故public 網卡有2個地址。
4). 當某個節點發生故障時,CRS 會把故障節點的VIP 轉移到其他節點上。
5). 每個節點的Listener 會同時監聽public 網卡上的 public ip 和VIP
6). 客戶端的tnsnames.Ora 一般會配置指向節點的VIP.
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com