溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

細說oracle 11g rac 的ip地址

發(fā)布時間:2020-07-22 01:49:31 來源:網(wǎng)絡(luò) 閱讀:1759 作者:honeylarry 欄目:數(shù)據(jù)庫

        oracle11g開始,設(shè)置了SCAN ip,除此之外還有public ip,virtual ip,private ip,容易讓人犯暈。

下面逐一解釋:

public ip

    類似與單實例的oracle數(shù)據(jù)庫ip,主要用于管理\訪問。

virtual ip(vip):

   oracle在rac架構(gòu)中專用,這個vip用于實現(xiàn)故障轉(zhuǎn)移,當(dāng)一個節(jié)點發(fā)生故障時,其vip會“浮動”到另外一個正常的節(jié)點,也即該正常節(jié)點對應(yīng)著兩個vip了。

SCAN

    SingleClient Access Name,單一客戶訪問名稱,意思是客戶端(如jdbc,pl/sql等)訪問數(shù)據(jù)庫時的公共域名,由于rac是多節(jié)點的,客戶端要訪問數(shù)據(jù)庫,通過scan機制,只需要提供一個訪問名稱,oracle rac會自動為客戶端分配一個節(jié)點,這對客戶端來說是透明的。

 

private ip:私有ip,oracle 內(nèi)部用于節(jié)點間通訊的ip,不對外開放。

 

public ip:

       必須是專用ip,必須在安裝oracle rac前配置好,能與網(wǎng)絡(luò)連通。public ip,vip,scan ip必須在同一個網(wǎng)絡(luò)網(wǎng)段內(nèi)。

vip

      必須是專用ip,必須安裝oracle rac前配置好,能與網(wǎng)絡(luò)連通,public ip,vip,scan ip必須在同一個網(wǎng)絡(luò)網(wǎng)段內(nèi)。該ip及域名雖然配置,但必須保持不能使用(不能被訪問,如ping)。

scan

      建議通過dns配置三個專用ip,在安裝前必須配置好,當(dāng)有請求者時,由dns隨機分配。暫不使用。scan ip需要給出唯一的名字,也即三個ip對應(yīng)一個域名。名字只能是字符和'-'。oracle不推薦通過hosts文件來配置,那樣只能得到一個scan ip。

     scan也是一個虛擬ip名,類似與虛擬ip名,但不同的是,虛擬ip是一個節(jié)點一個ip地址一個域名,scan是針對整個cluster的,一個域名對應(yīng)著多個節(jié)點,多個ip地址。

 

private ip

       必須是專用ip,必須在安裝前配置好,必須在一個專用私有網(wǎng)絡(luò)中,只能被另外的rac節(jié)點解析,不能被其它網(wǎng)絡(luò)解析。從11.2.0.2開始,oracle可以自動使用至多4塊私有網(wǎng)卡,以實現(xiàn)內(nèi)部節(jié)點的負載均衡及冗余。

 

 

GNS:Grid Naming Service。

 

以下是網(wǎng)上的資料

 

    在Oracle RAC環(huán)境下,每個節(jié)點都會有多個IP地址,分別為Public/Private/Vip,這三個IP到底有啥區(qū)別呢?分別用在那些場合呢?來看看老外的回答。
1. private IP address is used only for internal clustering processing (CacheFusion)
    私有IP用于心跳同步,這個對于用戶層面,可以直接忽略,簡單理解,這個Ip用來保證兩臺服務(wù)器同步數(shù)據(jù)用的私網(wǎng)IP。
2. virtual IP is used by database applications to enable fail over when onecluster node fails
    虛擬IP用于客戶端應(yīng)用,以支持失效轉(zhuǎn)移,通俗說就是一臺掛了,另一臺自動接管,客戶端沒有任何感覺。
    這也是為什么要使用RAC的原因之一,另一個原因,我認為是負載均衡。
3. public IP adress is the normal IP address typically used by DBA and SA tomanage storage, system and database.
    公有IP一般用于管理員,用來確保可以操作到正確的機器,我更愿意叫他真實IP

    通過上述解釋,不難理解作為一個DBA,在配置tnsnames.ora時,有些場合是要使用的vip,而有些場合又必須使用public IP。例如,當(dāng)你在定位一個數(shù)據(jù)庫的死鎖時,使用public ip,可以確保連到你想處理的機器,相反此時使用虛擬ip時,會出現(xiàn)不確定性,因為服務(wù)器默認是開啟負載均衡的,也就是有可能你想連A機,系統(tǒng)卻給你分配了B機。
  
例如:


1.   下面的例子就是使用的VIP


infodb8 =

(DESCRIPTION=

(ADDRESS=(PROTOCOL= TCP)(HOST=138.*.1.81)(PORT= 1521))

 (ADDRESS=(PROTOCOL= TCP)(HOST=138.*.1.82)(PORT= 1521))

 (LOAD_BALANCE= yes)

     (FAILOVER= ON)

     (CONNECT_DATA=

        (SERVER= DEDICATED)
             (SERVICE_NAME= infodb)

                (FAILOVER_MODE=

                     (TYPE=SELECT)

                     (METHOD= BASIC)

                (RETRIES= 30)

            (DELAY= 5)

         )

      ))


 

1.   下面的例子就是使用的Public IP,指定連接1機,注意紅色字體infodb1進一步限制連接的實例。

2.   INFODB83 =

3.     (DESCRIPTION=

4.       (ADDRESS_LIST=

5.         (ADDRESS=(PROTOCOL= TCP)(HOST=138.*.1.83)(PORT= 1521))

6.       )

7.       (CONNECT_DATA=

8.         (SERVICE_NAME= infodb)

9.         (INSTANCE_NAME= infodb1)

10.      )

11.      (HS = OK)

12.    )

Oracle RAC中每個節(jié)點都有一個虛擬IP,簡稱VIP,與公網(wǎng)IP在同一個網(wǎng)段。

 沒有VIP時,Oracle客戶端是靠“TCP/IP協(xié)議棧超時來判斷服務(wù)器故障。而TCP/IP協(xié)議棧是作為OS Kernel的一部分來實現(xiàn),不同的OS有不同的閥值,用戶獲悉數(shù)據(jù)庫異常的時間完全取決于OS Kernel的實現(xiàn),雖然有些OS允許修改這個閥值,但是會對其它程序產(chǎn)生未知影響。因此,oracle RAC引入了VIP,從而避開對TCP協(xié)議棧超時的依賴。

VIPIP最主要的不同之處在于:VIP是浮動的,而IP是固定的。在所有節(jié)點都正常運行時,每個節(jié)點的VIP會被分配到public NIC上;在linuxifconfig查看,public網(wǎng)卡上是2IP地址;如果一個節(jié)點宕機,這個節(jié)點的VIP會被轉(zhuǎn)移到還在運行的節(jié)點上。也就是幸存的節(jié)點的public NIC這個網(wǎng)卡上,會有3IP地址。

當(dāng)一個節(jié)點宕機,這個節(jié)點真實IP就連接不上了,但是這個節(jié)點的虛擬IP是可以連接的,他會自動把客戶端的連接請求轉(zhuǎn)接給存活的節(jié)點。
tnsname.ora文件里,指定Address列表,客戶端會隨機選擇一個節(jié)點來連接數(shù)據(jù)庫,而不是順序選擇的。
    
VIP
特點:
1 VIP
是在clusterware安裝最后階段,通過腳本VIPCA創(chuàng)建的;
2 VIP
作為一個Nodeapps類型的CRS Resource注冊到OCR中,并由CRS維護狀態(tài);
3 VIP
會綁定到節(jié)點的public 網(wǎng)卡上;那么public網(wǎng)卡就有兩個地址了;
4
當(dāng)某個節(jié)點發(fā)生故障時,CRS會把故障節(jié)點的VIP轉(zhuǎn)移到其他節(jié)點上;
5
每個節(jié)點的Listener會同時在public網(wǎng)卡的public IPVIP兩個地址上監(jiān)聽;
6
客戶端的tnsname.ora一般會配置指向節(jié)點的VIP;

從上面第6條可以引出一個問題。如果增加一個節(jié)點,那么客戶端的tnsname.ora需要加入新增節(jié)點的VIP。那么想象一下:多個客戶端,增加多個節(jié)點,那么維護起來特別麻煩。因此到了Oracle11gR2,引入了一個scan的概念。

 scan,single client access name。簡單客戶端連接名,這是一個唯一的名稱,在整個公司網(wǎng)絡(luò)內(nèi)部唯一,并且在DNS中可以解析為三個ip地址,客戶端連接的時候只需要知道這個名稱,并連接即可,每個SCAN VIP對應(yīng)一個scan listener,cluster內(nèi)部的service在每個scan listener上都有注冊,scan listener接受客戶端的請求,并foward到不同的Local listener中去,還是由local listener提供服務(wù)給客戶端。  

注意:scan不一定要resolve到三個ip,一個也夠了。只不過為了防止scan單點故障而推薦3個。
VIP 原理和特點

Oracle TAF 就是建立在VIP 技術(shù)之上的。 IP VIP 區(qū)別在與: IP 是利用TCP層超時, VIP 利用的是應(yīng)用層的立即響應(yīng)。VIP 它是浮動的IP。 當(dāng)一個節(jié)點出現(xiàn)問題時會自動的轉(zhuǎn)到另一個節(jié)點上。

假設(shè)有一個2個節(jié)點的RAC,正常運行時每個節(jié)點上都有一個VIP。 VIP1 VIP2. 當(dāng)節(jié)點2發(fā)生故障,比如異常關(guān)系。 RAC 會做如下操作:

1). CRS 在檢測到rac2節(jié)點異常后,會觸發(fā)Clusterware 重構(gòu),最后把rac2節(jié)點剔除集群,由節(jié)點1組成新的集群。

2). RACFailover 機制會把節(jié)點2VIP轉(zhuǎn)移到節(jié)點1上,這時節(jié)點1PUBLIC 網(wǎng)卡上就有3IP 地址: VIP1,VIP2, PUBLIC IP1.

3). 用戶對VIP2的連接請求會被IP層路由轉(zhuǎn)到節(jié)點1

4). 因為在節(jié)點1上有VIP2的地址,所有數(shù)據(jù)包會順利通過路由層,網(wǎng)絡(luò)層,傳輸層。

5). 但是,節(jié)點1上只監(jiān)聽VIP1public IP1的兩個IP地址。并沒有監(jiān)聽VIP2,故應(yīng)用層沒有對應(yīng)的程序接收這個數(shù)據(jù)包,這個錯誤立即被捕獲。

6). 客戶段能夠立即接收到這個錯誤,然后客戶段會重新發(fā)起向VIP1的連接請求。

 VIP 特點:

1). VIP 是通過VIPCA腳本創(chuàng)建的

2). VIP 作為Nodeapps類型的CRS Resource 注冊到OCR中,并由CRS 維護狀態(tài)。

3). VIP 會綁定到節(jié)點的public 網(wǎng)卡上,故public 網(wǎng)卡有2個地址。

4). 當(dāng)某個節(jié)點發(fā)生故障時,CRS 會把故障節(jié)點的VIP 轉(zhuǎn)移到其他節(jié)點上。

5). 每個節(jié)點的Listener 會同時監(jiān)聽public 網(wǎng)卡上的 public ip VIP

6). 客戶端的tnsnames.Ora 一般會配置指向節(jié)點的VIP.


向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI