RAC_網路_VIP漂移_SCAN IP

lusklusklusk發表於2016-07-04

client-->scan listenerscan ip-->local listenervip-->local instance

client-->RAC listenervippublic ip-->local instance

 

 

RAC檢視SCAN ip是多少的方法


/ect/hosts或srvctl config scan

 

RAC檢視SCAN ip在哪個機器上的方法

srvctl status scan

 

 

一般單機的lsnrctl status只有一個host資訊,而rac例項會出現兩個host資訊,一個值為127.0.0.1PUBLIC IP,另一個為VIP

出現127.0.0.1而不是PUBLIC IP原因:ping 伺服器名對應的是127.0.0.1而不是PUBLIC IP,造成這樣現象的原因是/etc/hosts檔案中伺服器名對應IP127.0.0.1的那一行放在了伺服器名對應IPPUBLIC IP的那一行的上面導致

因為動態配置時listener中預設用host=伺服器名,/ets/hosts誰在上面那就誰是伺服器名的IP/ets/hosts標準順序應該為127.0.0.1放在PUBLIC IP下面




 

 

RAC一個節點當機後,VIP會漂移

出現了這樣的情況,testdb01當機後,testdb02執行ifconfig發現兩個節點的VIPscan ip都出現在了testdb02上。但是節點2執行lsnrctl status發現還是隻有節點2自己的VIPscan ip,也就是說外部還是無法通過節點1VIP連線DB,因為節點1例項已經當機了。VIP的原理就是這樣,節點A當機後,vip會漂移到另一臺正常的節點B,但是該VIP不會出現在節點B的監聽資訊中,該VIP雖然存在但是無法對外服務了。

實驗過的:當節點沒有當機,僅僅關閉節點的監聽或僅僅關閉節點的DBVIP不會漂移。只有當機了才會漂移

 

 

 

 

SCAN IP遷移和LISTENER_SCAN1監聽器

現象1

安裝好一套RAC並完全啟動(含DBASMLISTENER都啟動了),剛開始發現只有節點1/u01/app/grid/network/admin/listener.ora中具有LISTENER_SCAN1的監聽器,節點2沒有。且root使用者下ifconfig發現節點SCAN IP在節點1下面,節點2下面沒有SCAN IP

現象2

當節點1當機後,發現節點2下面

/u01/app/grid/network/admin/listener.ora自動修改了,裡面有了LISTENER_SCAN1的監聽器的資訊,且節點2root使用者下ifconfig發現SCAN IP的資訊了

 

結論:通過以上現象瞭解到,SCAN IP會漂移,且哪個節點有了SCAN IP,則其grid使用者下的/u01/app/grid/network/admin/listener.ora檔案中就有LISTENER_SCAN1的監聽器,當下次SCAN IP漂移到了其他節點,原來節點上的/u01/app/grid/network/admin/listener.ora檔案中的LISTENER_SCAN1的監聽器還在,不會自動刪除,也就是說雖然SCAN IP漂移了,但是/u01/app/grid/network/admin/listener.ora檔案中的LISTENER_SCAN1資訊還在

 

 

 

 

深入理解

其實RAC中每臺節點伺服器只有一個網路卡也可以實現RAC,在這些網路卡上虛擬出多個網路卡,只要這樣網路卡連線的交換機有多個網段,不同的網段分配給不同的虛擬網路卡,這樣就實現了private ippublic ipvip之間的通訊,而現實環境中交換機上是可以配置有多個網段的



RACIP是否都可以用來建立連線的案例

 

客戶端tns的配置如下

MIOA =

  (DESCRIPTION =

    (ADDRESS = (PROTOCOL = TCP)(HOST = 10.98.20.202)(PORT = 1521))

    (ADDRESS = (PROTOCOL = TCP)(HOST = 10.98.20.204)(PORT = 1521))

    (LOAD_BALANCE = yes)

    (CONNECT_DATA =

      (SERVER = DEDICATED)

      (SERVICE_NAME = MIOA)

       (FAILOVER_MODE=

         (TYPE = session)

         (METHOD = basic)

         (RETRIES = 180)

         (DELAY = 5)

    )

    )

  )

 

服務端/etc/hosts配置如下

#Public ip  eth0

10.98.20.202 node1

10.98.20.204 node2

#Private ip  eth1

150.150.1.3 node1-priv

150.150.1.4 node2-priv

#Virtual ip

10.98.20.205 node1-vip

10.98.20.206 node2-vip

#Scan ip

10.98.20.207 rac-scan

 

伺服器端兩個例項lsnrctl status顯示IPservice名稱是MIOA

例項1

(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=10.98.20.202)(PORT=1521)))

(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=10.98.20.205)(PORT=1521)))

例項2

(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=10.98.20.204)(PORT=1521)))

(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=10.98.20.206)(PORT=1521)))

 

SCAN IP顯示在第一個節點

[oracle@node1 ~]$ srvctl status scan

SCAN VIP scan1 is enabled

SCAN VIP scan1 is running on node node1

[oracle@node1 ~]$ ssh mdsdb04

Last login: Fri Aug 12 09:41:55 2016 from node1

[oracle@node2 ~]$ srvctl status scan

SCAN VIP scan1 is enabled

SCAN VIP scan1 is running on node node1

 

客戶端通過TNS連線情況

第一次

sqlplus system/123456@MIOA

select instance_nameshow parameter instance_name都是第個節點的例項名

 

第二次,不關閉第一次的連線,再開一個連結

sqlplus system/123456@MIOA

select instance_nameshow parameter instance_name都是第個節點的例項名

 

第三次

sqlplus system/m1oa_+14@10.98.20.202:1521/MIOA

select instance_nameshow parameter instance_name都是第個節點的例項名

 

第四次

sqlplus system/m1oa_+14@10.98.20.204:1521/MIOA

select instance_nameshow parameter instance_name都是第個節點的例項名

 

第五次

sqlplus system/m1oa_+14@10.98.20.205:1521/MIOA

select instance_nameshow parameter instance_name都是第個節點的例項名

 

第六次

sqlplus system/m1oa_+14@10.98.20.206:1521/MIOA

select instance_nameshow parameter instance_name都是第個節點的例項名

 

第七次

sqlplus system/m1oa_+14@10.98.20.207:1521/MIOA

ORA-12545: 因目標主機或物件不存在, 連線失敗

 

結論:TNS配置負載均衡模式時,會自動分配到不同的節點,SCAN IP雖然存在,按個人安裝RAC不使用DNS的方法,發現SCAN IP並不能被使用,因為lsnrctl status並沒有出現SCAN IP


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/30126024/viewspace-2121425/,如需轉載,請註明出處,否則將追究法律責任。

相關文章