一、修改公网 IP或者VIP, 但是不修改网卡、子网或网络掩码信息,或者只是修改MAC地址,而不需要修改其他信息
如果只需要修改公网 IP 地址或者VIP,而且新的地址仍然在相同的子网和相同的网络接口上,或者只是修改公网IP的MAC地址,IP/interface/subnet/netmask仍旧保持不变,集群层面不需要做任何修改,所有需要的修改是在 OS 层面反映 IP 地址的变化。
1. 关闭 Oracle 集群管理软件
2. 在网络层面,DNS 和 /etc/hosts 文件中修改 IP 地址,或者直接修改MAC地址
3. 重新启动 Oracle 集群管理软件
二、修改公网网卡,子网或网络掩码信息
在vbox上主机网络管理器新建仅主机网络网卡,Oracle版本10.2.0.5
1、关闭 Oracle 集群管理软件
[root@rac101 ~]# /u01/app/oracle/product/10.2.0/crs/bin/crsctl stop crs
[root@rac102 ~]# /u01/app/oracle/product/10.2.0/crs/bin/crsctl stop crs
修改虚拟机网卡ip
192.168.56.55->192.168.14.55
192.168.56.56->192.168.14.56
mos上说可以滚动升级,稳妥起见就不滚了。
2、修改hosts为
##Public Network - (eth0)
192.168.14.55 rac101
192.168.14.66 rac102
##Private Interconnect - (eth1)
10.0.0.55 rac101-priv
10.0.0.66 rac102-priv
##Public Virtual IP (VIP) addresses - (eth0)
192.168.14.101 rac101-vip
192.168.14.102 rac102-vip
##scan IP
192.168.14.110 scan-ip
3、启动集群
[root@rac101 ~]# /u01/app/oracle/product/10.2.0/crs/bin/crsctl start crs
[root@rac102 ~]# /u01/app/oracle/product/10.2.0/crs/bin/crsctl start crs
4、修改集群网络
[root@rac101 ~]# /u01/app/oracle/product/10.2.0/crs/bin/oifcfg iflist
eth0 192.168.14.0
eth0 192.168.56.0
eth1 10.0.0.0
[root@rac101 ~]# /u01/app/oracle/product/10.2.0/crs/bin/oifcfg getif
eth0 192.168.56.0 global public
eth1 10.0.0.0 global cluster_interconnect
[root@rac101 ~]# /u01/app/oracle/product/10.2.0/crs/bin/oifcfg delif -global eth0/192.168.56.0
[root@rac101 ~]# /u01/app/oracle/product/10.2.0/crs/bin/oifcfg setif -global eth0/192.168.14.0:public
[root@rac101 ~]# /u01/app/oracle/product/10.2.0/crs/bin/oifcfg getif
eth0 192.168.14.0 global public
eth1 10.0.0.0 global cluster_interconnect
5、修改vip(只有 10.2.0.3 之前的版本需要完全的停机。从 10.2.0.3 开始,ASM 和数据库实例对 VIP 资源的依赖关系已经被删除,所以修改 VIP 不需要停止 ASM 和数据库实例)
[oracle@rac101 ~]$ srvctl config nodeapps -n rac101 -a
VIP exists.: /rac101-vip/192.168.14.101/255.255.255.0/eth0
[oracle@rac101 ~]$ srvctl config nodeapps -n rac102 -a
VIP exists.: /rac102-vip/192.168.14.102/255.255.255.0/eth0
(1)停止资源
[oracle@rac101 ~]$ srvctl stop database -d RAC10 (对于 10.2.0.3 及以上版本,可以忽略)
[oracle@rac101 ~]$ srvctl stop asm -n rac101 (对于 10.2.0.3 及以上版本,可以忽略)
[oracle@rac101 ~]$ srvctl stop asm -n rac102 (对于 10.2.0.3 及以上版本,可以忽略)
[oracle@rac101 ~]$ srvctl stop nodeapps -n rac101
[oracle@rac101 ~]$ srvctl stop nodeapps -n rac102
(2)验证vip offline且不再绑定公网网卡
[oracle@rac101 ~]$ crs_stat -t
Name Type Target State Host
------------------------------------------------------------
ora....01.inst application OFFLINE OFFLINE
ora....02.inst application OFFLINE OFFLINE
ora.RAC10.db application OFFLINE OFFLINE
ora....SM1.asm application OFFLINE OFFLINE
ora....01.lsnr application OFFLINE OFFLINE
ora.rac101.gsd application OFFLINE OFFLINE
ora.rac101.ons application OFFLINE OFFLINE
ora.rac101.vip application OFFLINE OFFLINE
ora....SM2.asm application OFFLINE OFFLINE
ora....02.lsnr application OFFLINE OFFLINE
ora.rac102.gsd application OFFLINE OFFLINE
ora.rac102.ons application OFFLINE OFFLINE
ora.rac102.vip application OFFLINE OFFLINE
[root@rac101 ~]# ifconfig -a
eth0 Link encap:Ethernet HWaddr 08:00:27:36:8F:BD
inet addr:192.168.14.55 Bcast:192.168.14.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:2299 errors:0 dropped:0 overruns:0 frame:0
TX packets:1660 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:240084 (234.4 KiB) TX bytes:211738 (206.7 KiB)
[root@rac102 ~]# ifconfig -a
eth0 Link encap:Ethernet HWaddr 08:00:27:1F:5B:C2
inet addr:192.168.14.66 Bcast:192.168.14.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1636 errors:0 dropped:0 overruns:0 frame:0
TX packets:1432 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:179923 (175.7 KiB) TX bytes:182743 (178.4 KiB)
(3)修改vip
[root@rac101 ~]# /u01/app/oracle/product/10.2.0/crs/bin/srvctl modify nodeapps -n rac101 -A 192.168.14.101/255.255.255.0/eth0
[root@rac101 ~]# /u01/app/oracle/product/10.2.0/crs/bin/srvctl modify nodeapps -n rac102 -A 192.168.14.102/255.255.255.0/eth0
(4)验证改变
[oracle@rac101 ~]$ srvctl config nodeapps -n rac101 -a
VIP exists.: /rac101-vip/192.168.14.101/255.255.255.0/eth0
[oracle@rac101 ~]$ srvctl config nodeapps -n rac102 -a
VIP exists.: /rac102-vip/192.168.14.102/255.255.255.0/eth0
6、启动 nodeapps 和其它资源
[oracle@rac101 ~]$ srvctl start nodeapps -n rac101
[oracle@rac101 ~]$ srvctl start nodeapps -n rac102
[oracle@rac101 ~]$ srvctl start asm -n rac101
[oracle@rac101 ~]$ srvctl start asm -n rac102
[oracle@rac101 ~]$ srvctl start database -d RAC10
7、如果需要,修改 listener.ora, tnsnames.ora 和 LOCAL_LISTENER/REMOTE_LISTENER 参数。
8、查看状态
[oracle@rac101 ~]$ crs_stat -t
Name Type Target State Host
------------------------------------------------------------
ora....01.inst application ONLINE ONLINE rac101
ora....02.inst application ONLINE ONLINE rac102
ora.RAC10.db application ONLINE ONLINE rac101
ora....SM1.asm application ONLINE ONLINE rac101
ora....01.lsnr application ONLINE ONLINE rac101
ora.rac101.gsd application ONLINE ONLINE rac101
ora.rac101.ons application ONLINE ONLINE rac101
ora.rac101.vip application ONLINE ONLINE rac101
ora....SM2.asm application ONLINE ONLINE rac102
ora....02.lsnr application ONLINE ONLINE rac102
ora.rac102.gsd application ONLINE ONLINE rac102
ora.rac102.ons application ONLINE ONLINE rac102
ora.rac102.vip application ONLINE ONLINE rac102
参考文献
- How to Modify Public Network Information including VIP in Oracle Clusterware (Doc ID 276434.1)
- 如何修改集群的公网信息(包括 VIP) (文档 ID 1674442.1)