oracle 11gr2 rac中的4種IP解說

2021-09-05 05:16:45 字數 2531 閱讀 6658

關於在配置oracle 11gr2  rac時的4種ip,有不少朋友對此很迷惑,本文在此解說一下。

開啟乙個rac節點的/etc/hosts檔案

cat /etc/hosts

# public ip

192.168.1.138rac1.localdomain rac1

192.168.1.139rac2.localdomain rac2

#private ip

172.16.10.138rac1-priv.localdomain rac1-priv

172.16.10.139rac2-priv.localdomain rac2-priv

#virtual ip

192.168.1.140  rac1-vip.localdomain rac1-vip

192.168.1.141  rac2-vip.localdomain rac2-vip

#scan ip

192.168.1.142  rac-scan.localdomain rac-scan

這個檔案裡設計四種ip,分別有public ip、private ip、virtual ip、scan ip

private ip:即內部ip。用於節點間的通訊,通訊內容包括network heartbeat和cache fusion

public  ip:即外部ip。用於提供對外資料服務。

virtual ip:即虛擬ip。其最大作用是用於故障切換。

oracle rac中每個節點都有乙個虛擬ip,簡稱vip, 與公網public  ip在同乙個網段。vip 附屬在public網口介面。

virtual ip和public ip最主要的不同之處在於:vip是浮動的,而public ip是固定的。在所有節點都正常執行時,每個節點的vip會被分配到public nic上;在linux下ifconfig檢視,public網絡卡上是2個ip位址;如果乙個節點宕機,這個節點的vip會被轉移到還在執行的節點上。也就是倖存的節點的public nic這個網絡卡上,會有3個ip位址。

如果沒有vip,連線失敗節點的process會有乙個比較長的tcp超時等待,才能返回錯誤,有了vip後,節點失效後,由於vip漂移到其它節點,連線該vip的process很快就能返回錯誤,從而更快的嘗試連線其它活動的節點,避免客戶端反覆連線node1的例項。 如果應用程式和客戶機都配置了透明的應用程式故障轉移選項,可以在客戶端重新連線到剩餘的例項。

使用virtual ip的另乙個原因,我認為是負載均衡。客戶端在配置tnsnames.ora時,有些場合是要使用的vip,而有些場合又必須使用public ip。例如,當你在定位乙個資料庫的死鎖時,使用public ip,可以確保連到你想處理的機器。相反此時使用vip時,會出現不確定性,因為伺服器預設是開啟負載均衡的,也就是有可能你想連a機,系統卻給你分配了b機。

scan ip:在oracle 11gr2中,scan  ip是作為乙個新增ip出現的, scan ip其實是oracle在客戶端與資料庫之間,新加的乙個連線層,當有客戶端訪問時,連線到 scan ip listener, 而scan ip listener接收到連線請求時,會根據 lba 演算法將該客戶端的連線請求,**給對應的instance上的vip listener,從而完成了整個客戶端與伺服器的連線過程。簡化如下:

client -> scan listener -> local listener -> local instance

你也可以把scan理解為乙個虛擬主機名,它對應的是整個rac集群。客戶端主機只需通過這個scan name即可訪問資料庫集群的任意節點。當然訪問的節點是隨機的,oracle強烈建議通過dns server的round robin模式配置解析scan,實現負載均衡(即輪換連線scan對應的ip位址)。這有點類似通過vip和listener loadbalance配置實現負載均衡的原理。

那麼有了virtual ip後為什麼還增加了乙個scan ip呢?

在oracle 11.2之前,client鏈結資料庫的時候要用vip,假如你的oracle cluster有4個節點,那麼客戶端的tnsnames.ora中就對應有四個主機vip的乙個連線串,如果cluster增加了乙個節點,那麼對於每個連線資料庫的客戶端都需要修改這個tnsnames.ora。

引入了scan以後,就方便了客戶端連線的乙個介面,顧名思義 single client access name ,簡單客戶端連線名,這是乙個唯一的名稱,在整個公司網路內部唯一,並且在dns中可以解析為三個ip位址,客戶端連線的時候只需要知道這個名稱,並連線即可, 每個scan vip對應乙個scan listener,cluster內部的service在每個scan listener上都有註冊,scan listener接受客戶端的請求,並foward到不同的local listener中去,還是由local 的listener提供服務給客戶端。

scan ip主要是為了簡化客戶端連線,假如你的oracle 集群有20個節點,客戶端連線的時候,是不是需要配置20個vip,如果用scan,只需要乙個scan name就行了,剩下的事情,scan幫你做了。

oracle 11gR2 RAC安裝總結

這段時間都在折騰rac,在安裝過程中,確實基本把能碰到的問題都碰到了,悲催的我重複安裝了將近10次,機器效能弱 記憶體僅4g的win7 加上人品不好,練就了我鐵一般的神經,終於,儘管還有小瑕疵,但是也算安裝好了,儘管沒有什麼實用價值,練練命令還是可以的。下面就是我的安裝總結 1.linux版本的選擇...

Oracle 11G R2 RAC 新增節點

1.新增clusterware節點 在已有的節點上 cluvfy stage pre nodeadd n node3 fixup fixupdir fixup dir verbose 11.2.0.2的安裝有bug,共享磁碟檢測總是不成功,所以在確認只有磁碟檢測錯誤,並且在新節點上確定能夠訪問共磁碟...

Oracle11gR2 RAC基本管理命令

crsctl h srvctl h 2 集群狀態檢視與管理 2.1 crsctl config crs 檢視本地伺服器上ohas自動啟動設定 限於11g及以上版本 2.2 crsctl check crs 檢查ohas與crs stack狀態。2.3 crsctl status stat resou...