1. 程式人生 > >Oracle10g RAC Public IP and VIP修改

Oracle10g RAC Public IP and VIP修改

一客戶的核心Oracle10g RAC架構的資料庫要進行IP的修改,原因為目前public ip和virtual ip均是用的公網IP,因此基於安全的考慮,將這2類IP均修改為公司區域網內私網IP。

出於對客戶資訊的保密,因此不能將真實的IP寫出來,不過我會描述清楚,若有疑問,歡迎留言指出。

IP型別

節點1(原IP)

節點1(改後IP)

節點2(原IP)

節點2(改後IP)

Public IP

202.85.219.x

192.168.0.214

202.85.219.x

192.168.0.215

Virtual IP

202.85.219.x

192.168.0.216

202.85.219.x

192.168.0.217

Private IP

192.168.0.214

10.0.1.8

192.168.0.214

10.0.1.9

有些情況下,如果僅僅是變更Public IP,而不變更subnet或netmask(如192.168.1.112 變更為 192.168.1.113)的話,就不需要在Oracle Clusterware層面做任何事情,只需要在OS上更改網絡卡上的IP配置和/etc/hosts檔案中的IP資訊。

具體的操作步驟就是:

1、Shutdown Oracle Clusterware Stack

2、Modify the IP address at network layer,DNS and /etc/hosts file to reflect the change.

3、Restart Oracle Clusterware Stack

【以上操作僅在一個節點上操作即可】

如果要更變的Public IP與之前Public IP的subnet(netmask)不一樣了,那麼需要在Oracle Clusterware 層面刪除舊的IP配置並緊接著新增新的IP配置(比如我們這個案例)。

[[email protected] ~]$ oifcfg delif -global eth0/202.85.219.0
[[email protected] ~]$ oifcfg setif -global eth0/192.168.0.0:public
[[email protected]
~]$ oifcfg getif eth0 192.168.0.0 global public eth1 10.0.1.0 global cluster_interconnect


上面命令執行完成後,需要在OS層面修改/etc/hosts和網絡卡的IP配置,最後重啟Oracle Clusterware.

我們知道Public IP和VIP 是相同網段的IP,既然Public IP發生了變更,VIP必然也需要進行調整,下面接著執行VIP的調整。

收集當前VIP的配置資訊:

oracle3:[email protected]/oracle/product/10.2.0/crs/bin>./srvctl config nodeapps -n oracle3 -a
VIP 已存在。: /oracle3-vip/192.168.0.216/255.255.255.0/eth0
oracle3:[email protected]/oracle/product/10.2.0/crs/bin>./srvctl config nodeapps -n oracle4 -a
VIP 已存在。: /oracle4-vip/192.168.0.217/255.255.255.0/eth0


驗證VIP的狀態

[[email protected] ~]$ crs_stat -t
Name           Type           Target    State     Host        
------------------------------------------------------------
ora....l1.inst application    ONLINE    ONLINE    oracle3     
ora....l2.inst application    ONLINE    ONLINE    oracle4     
ora.cbl.db     application    ONLINE    ONLINE    oracle3     
ora....bl1.srv application    ONLINE    ONLINE    oracle3     
ora....bl2.srv application    ONLINE    ONLINE    oracle4     
ora...._cbl.cs application    ONLINE    ONLINE    oracle3     
ora....E3.lsnr application    ONLINE    ONLINE    oracle3     
ora....le3.gsd application    ONLINE    ONLINE    oracle3     
ora....le3.ons application    ONLINE    ONLINE    oracle3     
ora....le3.vip application    ONLINE    ONLINE    oracle3     
ora....E4.lsnr application    ONLINE    ONLINE    oracle4     
ora....le4.gsd application    ONLINE    ONLINE    oracle4     
ora....le4.ons application    ONLINE    ONLINE    oracle4               
ora....le4.vip application    ONLINE    ONLINE    oracle4     

VIP顯示為ONLINE。

停止相關服務

srvctl stop instance -d <db_name> -i <inst_name>
srvctl stop asm -n <node_name>
srvctl stop nodeapps -n <node_name>

上面命令是停止資料庫例項,asm和nodeapps,VIP服務也會隨之被停止。

修改VIP地址(此步執行前,首先需要在OS層面進行修改,如/etc/hosts)

使用root身份執行如下命令:

oracle3:[email protected]/oracle/product/10.2.0/crs/bin>./srvctl modify nodeapps -n oracle3 -A oracle3-vip/255.255.255.0/eth0
oracle3:[email protected]/oracle/product/10.2.0/crs/bin>./srvctl modify nodeapps -n oracle4 -A oracle4-vip/255.255.255.0/eth0


驗證更變結果

oracle3:[email protected]/oracle/product/10.2.0/crs/bin>./srvctl config nodeapps -n oracle3 -a
VIP 已存在。: /oracle3-vip/192.168.0.216/255.255.255.0/eth0
oracle3:[email protected]/oracle/product/10.2.0/crs/bin>./srvctl config nodeapps -n oracle4 -a
VIP 已存在。: /oracle4-vip/192.168.0.217/255.255.255.0/eth0


重啟動叢集資源

啟動CRS,和資料庫即可。

注:如果listener.ora檔案和引數LOCAL_LISTENER/REMOTE_LISTENER中引用了IP地址,也要進行修改。