rac下修改ip

fei890910發表於2014-06-25
今天rac雙節點進行了修改ip的操作,中間遇到一個問題,記錄如下
1,rac下修改ip可以有兩種方式,一種是在停庫的情況下操作,另外一種是在不挺庫的情況一個節點一個節點的修改ip
二、具體操作如下
  1,檢視ocr盤的備份情況,並停止應用。
  2,修改crs中的公網網路卡,註冊到crs中
  3,停crs叢集軟體  crsctl stop crs
  4,修改etc/hosts 檔案 、修改網路卡ip,閘道器
  5,啟動crs 並在crs中修改vip資訊
  6,修改監聽
  7,所有的操作完成後,啟動叢集軟體。正常後在到另外一個節點進行操作。
三、問題總結
   在進行到第二個節點的時候,完成以後,ifconfig -a 檢視vip資訊的時候發現舊的vip 也在網路卡下面。檢視ocr中的資訊 發現vip已經修改為新的vip
  現場嘗試從新啟動網路卡來解決問題,將網路卡Dispatch 後從新啟動crs,發現vip無法啟動。最後看vip日誌發現是閘道器沒了。設定正確的閘道器後。vip啟動正常。

四、oracle文件
何修改叢集的公網資訊(包括 VIP) (文件 ID 1674442.1)
________________________________________
修改時間:2014-5-22 型別:BULLETIN
 
文件內容
 用途
 適用範圍
 詳細資訊
  情況1. 修改公網對應的主機名
  情況2. 只修改公網 IP, 但是不修改網路卡、子網或網路掩碼資訊
  情況3. 修改公網網路卡,子網或網路掩碼資訊
  情況4. 修改 VIP 相關的公網資訊
  準備修改VIP
  獲得當前的 VIP 配置
  停止資源
  修改 VIP 和相關屬性
  重新啟動資源
  其它
  情況5:修改 SCAN VIP 相關的公網資訊
 參考
________________________________________
適用於:
Oracle Database - Enterprise Edition - 版本 11.2.0.3 到 12.1.0.1 [發行版 11.2 到 12.1]
本文件所含資訊適用於所有平臺
用途
本文的目標是透過舉例說明的方式說明在 Oracle 叢集/GI 環境下如何修改公網對應的主機名,公網 IP、VIP、VIP 對應的主機名或者其他 VIP 相關的屬性。
適用範圍
客戶端使用 VIP(虛擬 IP)連線 Oracle 資料庫的版本為 10g 和 11g 的叢集環境。這些虛擬 IP 是和虛擬主機名對應的靜態 IP 地址並且透過 DNS 解析(除非您使用了 11gR2 GNS)。

在安裝 Oracle 叢集管理軟體時,使用者會被要求為叢集中的每一個節點輸入一個虛擬 IP 和虛擬主機名。這些資訊會被記錄在 OCR (Oracle Cluster Registry)中,而且 HA 框架中的不同元件會依賴於這些 VIP。如果出於某種原因,需要修改 VIP、VIP 對應的主機名或者公網的子網、網路掩碼等資訊,請按照本文介紹的過程。
如果修改涉及到叢集私網,請參考 Note 283684.1
詳細資訊
情況1. 修改公網對應的主機名
叢集公網對應的主機名是在安裝時輸入的,並且被記錄在 OCR 中。這個主機名在安裝之後是不能修改的。唯一的修改方法是刪除節點,修改主機名,之後將節點重新新增到叢集,或者直接重新安裝叢集。
 
情況2. 只修改公網 IP, 但是不修改網路卡、子網或網路掩碼資訊
如果只需要修改公網 IP 地址,而且新的地址仍然在相同的子網,叢集層面不需要做任何修改,所有需要的修改是在 OS 層面反映 IP 地址的變化。
1. 關閉 Oracle 叢集管理軟體
2. 在網路層面,DNS 和 /etc/hosts 檔案中修改 IP 地址
3. 重新啟動 Oracle 叢集管理軟體
以上的修改可以使用滾動的方式完成,例如:每次修改一個節點。
 
情況3. 修改公網網路卡,子網或網路掩碼資訊
如果修改涉及到了不同的子網(網路掩碼)或者網路卡,需要將 OCR 中已經存在的網路卡資訊刪除並重新新增新的資訊。在以下的示例中子網從 10.2.156.0 被修改為 10.2.166.0,需要執行兩個步驟 –首先‘delif’,接下來 ‘setif’:
% $CRS_HOME/bin/oifcfg/oifcfg delif -global [/]
% $CRS_HOME/bin/oifcfg/oifcfg setif -global /:public

例如:
% $CRS_HOME/bin/oifcfg delif -global eth0/10.2.156.0
% $CRS_HOME/bin/oifcfg setif -global eth0/10.2.166.0:public
然後,在作業系統層面進行修改。除非 OS 層面的修改需要重新啟動節點,否則不需要重啟 Oracle 叢集管理軟體。修改可以使用滾動的方式完成。
一旦公網資訊被修改,與其相關的 VIP 和 SCAN VIP 也需要修改,請參考情況4和情況5。
 
情況4. 修改 VIP 相關的公網資訊
準備修改VIP
一般而言,只有 10.2.0.3 之前的版本需要完全的停機。從 10.2.0.3 開始,ASM 和資料庫例項對 VIP 資源的依賴關係已經被刪除,所以修改 VIP 不需要停止 ASM 和資料庫例項,只有當修改 VIP 時產生的客戶端連線會受影響。如果修改只涉及到特定的節點,那麼只有連線到對應節點的客戶端連結在修改時會受影響。
首先,請參考情況3以確保公網資訊被修改。如果在 OS 層面的網路修改後發生了節點或者叢集管理軟體重啟,VIP 將不會被啟動,請跳過步驟“修改 VIP 和相關屬性”。
獲得當前的 VIP 配置
1. 獲取當前設定
對於版本 10g 和 11gR1, 使用 Oracle 叢集管理軟體的擁有者執行下面的命令:
$ srvctl config nodeapps -n -a

例如:
$ srvctl config nodeapps -n racnode1 -a
VIP exists.: /racnode1-vip/101.17.80.184/255.255.254.0/eth1

對於版本 11gR2, 使用 Grid Infrastructure 的擁有者執行下面的命令:
$ srvctl config nodeapps -a

例如:
$ srvctl config nodeapps -a
Network exists: 1/101.17.80.0/255.255.254.0/eth1, type static
VIP exists: /racnode1-vip/101.17.80.184/101.17.80.0/255.255.254.0/eth1, hosting node racnode1
VIP exists: /racnode2-vip/101.17.80.186/101.17.80.0/255.255.254.0/eth1, hosting node racnode2

2. 驗證 VIP 狀態
版本 10.2 和 11.1:
$ crs_stat -t

版本 11.2:
$ crsctl stat res -t
- 以上命令應該顯示 VIPs 狀態為 ONLINE

$ ifconfig -a
(HP 平臺請使用 netstat –in, Windows 平臺請使用 ipconfig /all)
- VIP 邏輯網路卡對應公網網路卡
 
停止資源
3. 停止 nodeapps 資源 (如果有必要的話,停止存在依賴關係的 ASM 和資料庫資源):

對於版本 10g 和 11gR1, 使用 Oracle 叢集管理軟體的擁有者執行下面的命令:
$ srvctl stop instance -d -i (對於 10.2.0.3 及以上版本,可以忽略)
$ srvctl stop asm -n (對於 10.2.0.3 及以上版本,可以忽略)
$ srvctl stop nodeapps -n

例如:
$ srvctl stop instance -d RACDB -i RACDB1
$ srvctl stop asm -n racnode1
$ srvctl stop nodeapps -n racnode1

對於版本 11gR2, 使用 Grid Infrastructure 的擁有者執行下面的命令:
$ srvctl stop instance -d -n (可以忽略)
$ srvctl stop vip -n -f

例如:
$ srvctl stop instance -d RACDB -n racnode1
$ srvctl stop vip -n racnode1 -f
 
注意1: 對於版本 11gR2,需要使用 -f 選項停止 listener 資源,否則會報以下錯誤:
PRCR-1014 : Failed to stop resource ora.racnode1.vip
PRCR-1065 : Failed to stop resource ora.racnode1.vip
CRS-2529: Unable to act on 'ora.racnode1.vip' because that would require stopping or relocating 'ora.LISTENER.lsnr', but the force option was not specified
...

4. 驗證 VIP 現在處於 OFFLINE 狀態,並且 VIP 不再繫結到公網網路卡
$ crs_stat -t (對於版本 11gR2,使用命令 $ crsctl stat res –t)

$ ifconfig -a
(HP 平臺請使用 netstat –in, Windows 平臺請使用 ipconfig /all)
 
修改 VIP 和相關屬性
5. 確定新的 VIP 地址/子網/網路掩碼或者 VIP 對應的主機名,在 OS 層面修改網路配置資訊,確認新的 VIP 地址應經註冊到 DNS 或者確認 /etc/hosts 檔案(Unix/Linux 平臺),\WINDOWS\System32\drivers\etc\hosts 檔案(Windows平臺)已經被修改。如果網路卡資訊被修改,確認在修改之前新的網路卡在伺服器上已經可用。
例如:
新VIP 地址:110.11.70.11 racnode1-nvip
新子網資訊:110.11.70.0
新網路掩碼:255.255.255.0
新網路卡:eth2

6. 使用 root 使用者修改 VIP 資源:
# srvctl modify nodeapps -n -A //

例如:
# srvctl modify nodeapps -n racnode1 -A racnode1-nvip/255.255.255.0/eth2

* 一個 11gR2 修改 VIP 主機名,但是不修改 IP 地址的例子。
例如:只把 VIP 主機名從 racnode1-vip 修改為 racnode1-nvip,IP 地址和其他屬性保持不變。

如果 IP 地址保持不變,以上的命令將不會改變命令‘crsctl stat res ora.racnode1.vip -p’的輸出中專案 USR_ORA_VIP 的值。請使用下面的命令:
# crsctl modify res ora.racnode1.vip -attr USR_ORA_VIP=racnode1-nvip

驗證專案 USR_ORA_VIP 的改變:
# crsctl stat res ora.racnode1.vip -p |grep USR_ORA_VIP
 
注意1:對於 Windows 平臺,如果網路卡名中包含了空格,那麼網路卡名需要包含在雙引號(")中。例如:
使用管理員使用者或者軟體安裝使用者:
> srvctl modify nodeapps -n racnode1 -A 110.11.70.11/255.255.255.0/"Local Area Connection 1"

注意2:從版本 11.2 開始,VIP 依賴於 network 資源(ora.net1.network),OCR 只記錄 VIP 主機名或者 VIP 資源相關的 IP 地址。叢集公網的屬性(子網/網路掩碼)透過網路資源記錄。

從 11.2.0.2 開始,如果只修改子網/網路掩碼資訊,網路資源可以透過以下的 srvctl modify network 命令直接修改。

使用 root 使用者:
# srvctl modify network -k ] [-S /[/if1[|if2...]]

例如:
# srvctl modify network -k 1 -S 110.11.70.0/255.255.255.0/eth2

如果其他屬性沒有變化,不需要修改 VIP 或 SCAN VIP。
 
7. 驗證改變
$ srvctl config nodeapps -n -a (10g and 11gR1)
$ srvctl config nodeapps -a (11gR2)

例如:
$ srvctl config nodeapps -n racnode1 -a
VIP exists.: /racnode1-nvip/110.11.70.11/255.255.255.0/eth2
 
重新啟動資源
8. 啟動 nodeapps 和其它資源

對於版本 10g 和 11gR1, 使用 Oracle 叢集管理軟體的擁有者執行下面的命令:
$ srvctl start nodeapps -n
$ srvctl start asm -n (對於 10.2.0.3 及以上版本,可以忽略)
$ srvctl start instance -d -i (對於 10.2.0.3 及以上版本,可以忽略)

例如:
$ srvctl start nodeapps -n racnode1
$ srvctl start asm -n racnode1
$ srvctl start instance -d RACDB -i RACDB1
對於版本 11gR2, 使用 Grid Infrastructure 的擁有者執行下面的命令:
$ srvctl start vip -n
$ srvctl start instance -d -n (可以忽略)

例如:
$ srvctl start vip -n racnode1
$ srvctl start instance -d RACDB -n racnode1

9. 驗證新的 VIP 狀態為 ONLINE 並且已經繫結到叢集公網網路卡
$ crs_stat -t (對於版本 11gR2,使用命令 $ crsctl stat res –t)

$ ifconfig -a
(HP 平臺請使用 netstat –in, Windows 平臺請使用 ipconfig /all)

10. 如果叢集中的其它節點也需要類似的改變,請重複同樣的步驟。
其它
11. 如果需要,修改 listener.ora, tnsnames.ora 和 LOCAL_LISTENER/REMOTE_LISTENER 引數反應 VIP 的改變。 
 
情況5:修改 SCAN VIP 相關的公網資訊
對於 11gR2 Grid Infrastructure,客戶端可以透過 SCAN 和 SCAN VIP 連線資料庫。請參考下面的 Note 修改 SCAN VIP。
Note 952903.1 How to update the IP address of the SCAN VIP resources (ora.scan.vip)
Note 972500.1 How to Modify SCAN Setting or SCAN Listener Port after Installation

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

相關文章