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地址,也要進行修改。