如何修改叢集的公網資訊(包括 VIP) (文件 ID 1674442.1)

mosdoc發表於2016-12-13

文件內容


用途

適用範圍

詳細資訊
  情況1.   修改公網對應的主機名
  情況2.  只修改公網 IP, 但是不修改網路卡、子網或網路掩碼資訊,或者只是修改MAC地址,而不需要修改其他資訊
  情況3. 修改公網網路卡,子網或網路掩碼資訊
  情況4. 修改 VIP 相關的公網資訊
  準備修改VIP
  獲得當前的 VIP 配置
  停止資源
  修改 VIP 和相關屬性
  重新啟動資源
  其它
  情況5:修改 SCAN VIP 相關的公網資訊

參考


適用於:

Oracle Database - Enterprise Edition - 版本 10.1.0.2 到 12.1.0.2 [發行版 10.1 到 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, 但是不修改網路卡、子網或網路掩碼資訊,或者只是修改MAC地址,而不需要修改其他資訊

如果只需要修改公網 IP 地址,而且新的地址仍然在相同的子網,或者只是修改公網IP的MAC地址,IP/interface/subnet/netmask仍舊保持不變,叢集層面不需要做任何修改,所有需要的修改是在 OS 層面反映 IP 地址的變化。

1. 關閉 Oracle 叢集管理軟體
2. 在網路層面,DNS 和 /etc/hosts 檔案中修改 IP 地址,或者直接修改MAC地址
3. 重新啟動 Oracle 叢集管理軟體

以上的修改可以使用滾動的方式完成,例如:每次修改一個節點。

 

情況3. 修改公網網路卡,子網或網路掩碼資訊

如果修改涉及到了不同的子網(網路掩碼)或者網路卡,需要將 OCR 中已經存在的網路卡資訊刪除並重新新增新的資訊。在以下的示例中子網從 10.2.156.0 被修改為 10.2.166.0,需要執行兩個步驟 –首先‘delif’,接下來 ‘setif’:

% $CRS_HOME/bin/oifcfg/oifcfg delif -global <if_name>[/<subnet>]
% $CRS_HOME/bin/oifcfg/oifcfg setif -global <if_name>/<subnet>: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。

注意:對於11gR2,上面命令要求叢集在所有節點執行,否則報錯PRIF-33 和 PRIF-32,比如:
[grid@racnode1 bin]$ ./oifcfg delif -global eth0/192.168.1.0
PRIF-33: Failed to set or delete interface because hosts could not be discovered
CRS-02307: No GPnP services on requested remote hosts.
PRIF-32: Error in checking for profile availability for host racnode2
CRS-02306: GPnP service on host "racnode2" not found.

 

情況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 <node> -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 <db_name> -i <inst_name>   (對於 10.2.0.3 及以上版本,可以忽略)
$ srvctl stop asm -n <node_name>                     (對於 10.2.0.3 及以上版本,可以忽略)
$ srvctl stop nodeapps -n <node_name>

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


對於版本 11gR2, 使用 Grid Infrastructure 的擁有者執行下面的命令:

$ srvctl stop instance -d <db_name> -n <node_name>   (可以忽略)
$ srvctl stop vip -n <node_name> -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 <node> -A <new_vip_address or new_vip_hostname>/<netmask>/<[if1[if2...]]>

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

 

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

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

使用 root 使用者:
# srvctl modify network -k <network_number>] [-S <subnet>/<netmask>[/if1[|if2...]]

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

如果其他屬性沒有變化,不需要修改 VIP 或 SCAN VIP。

注意 2:在12.1.0.1的版本上由於Bug 16608577 - CANNOT ADD SECOND PUBLIC INTERFACE IN ORACLE 12.1 ,srvctl modify network 的命令會失敗並提示:

# srvctl modify network -k 1 -S 110.11.70.0/255.255.255.0/eth2
PRCT-1305 : The specified interface name "eth2" does not match the existing network interface name "eth1"

需要透過以下workaround來解決:

# srvctl modify network -k 1 -S 110.11.70.0/255.255.255.0
# srvctl modify network -k 1 -S 110.11.70.0/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

 

注意:對於 Windows 平臺,如果網路卡名中包含了空格,那麼網路卡名需要包含在雙引號(")中。例如:
使用管理員使用者或者軟體安裝使用者:
> srvctl modify nodeapps -n racnode1 -A 110.11.70.11/255.255.255.0/"Local Area Connection 1"

 
7. 驗證改變

$ srvctl config nodeapps -n <node> -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 <node_name>      
$ srvctl start asm -n <node_name>               (對於 10.2.0.3 及以上版本,可以忽略)
$ srvctl start instance -d <dbanme> -i <inst>   (對於 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 <node_name>
$ srvctl start listener -n <node_name>
$ srvctl start instance -d <db_name> -n <node_name> (可以忽略)

例如:

$ srvctl start vip -n racnode1
$ srvctl start listener -n racnode1
$ srvctl start instance -d RACDB -n racnode1

注意:如果網路的屬性做了修改,比如netmask 等做了修改,需要重新啟動nodeapps

 


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 的改變。

注意: ASM和DB例項的LOCAL_LISTENER引數,是GI自動設定的。VIP的改變,LOCAL_LISTENER會自動識別,並生效。但是由於Bug 22824602,一些特定情況下。 LOCAL_LISTENER引數沒有反應 VIP 的改變。workaround解決方法是重啟受影響的節點的叢集軟體。

 

情況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<n>.vip)
Note 972500.1 How to Modify SCAN Setting or SCAN Listener Port after Installation

注意:如果需要回退修改,那麼用原始值替換新值,然後重新執行命令。

 

參考

NOTE:283684.1 - How to Modify Private Network Information in Oracle Clusterware
NOTE:952903.1 - How to update the IP address of the SCAN VIP resources (ora.scan{n}.vip)

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

相關文章