本文给出在Linux操作系统中如何调整RAC虚拟IP地址和虚拟主机名的方法。
在多节点RAC环境中,我们可以使用逐节点调整的策略来完成RAC环境中各节点VIP修改任务。
1.获取系统当前VIP信息
使用“ifconfig –a”命令,可以得到VIP是被绑定在eth0这个网络接口上。
1)确认rac1节点上VIP信息
[root@rac1 ~]# ifconfig -a
eth0 Link encap:Ethernet HWaddr 00:0C:29:2C:74:42
inet addr:192.168.1.100 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fe2c:7442/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:2607265 errors:0 dropped:0 overruns:0 frame.:0
TX packets:3593990 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:224517544 (214.1 MiB) TX bytes:2273656220 (2.1 GiB)
Interrupt:185 Base address:0x1480
eth0:1 Link encap:Ethernet HWaddr 00:0C:29:2C:74:42
inet addr:192.168.1.200 Bcast:192.168.1.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
Interrupt:185 Base address:0x1480
eth1 Link encap:Ethernet HWaddr 00:0C:29:2C:74:4C
inet addr:192.168.2.100 Bcast:192.168.2.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fe2c:744c/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1565284 errors:27 dropped:27 overruns:0 frame.:0
TX packets:1637772 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:753478388 (718.5 MiB) TX bytes:889262981 (848.0 MiB)
Interrupt:193 Base address:0x1800
2)确认rac2节点上VIP信息
[root@rac2 ~]# ifconfig -a
eth0 Link encap:Ethernet HWaddr 00:0C:29:8F:F1:87
inet addr:192.168.1.101 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fe8f:f187/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:3567795 errors:34 dropped:34 overruns:0 frame.:0
TX packets:2587235 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:2271730645 (2.1 GiB) TX bytes:222997239 (212.6 MiB)
Interrupt:185 Base address:0x1480
eth0:1 Link encap:Ethernet HWaddr 00:0C:29:8F:F1:87
inet addr:192.168.1.201 Bcast:192.168.1.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
Interrupt:185 Base address:0x1480
eth1 Link encap:Ethernet HWaddr 00:0C:29:8F:F1:91
inet addr:192.168.2.101 Bcast:192.168.2.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fe8f:f191/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1674459 errors:17 dropped:17 overruns:0 frame.:0
TX packets:1529165 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:894329474 (852.8 MiB) TX bytes:748919151 (714.2 MiB)
Interrupt:193 Base address:0x1800
3)在操作系统的hosts文件中同样记录了有关VIP的信息
[root@rac1 ~]# cat /etc/hosts
127.0.0.1 localhost.localdomain localhost
::1 localhost6.localdomain6 localhost6
##Public Network - (eth0)
##Private Interconnect - (eth1)
##Public Virtual IP (VIP) addresses - (eth0)
192.168.1.100 rac1
192.168.1.101 rac2
192.168.2.100 rac1-priv
192.168.2.101 rac2-priv
192.168.1.200 rac1-vip
192.168.1.201 rac2-vip
2.停掉所有与VIP相关的资源
停止顺序:①停止数据库实例;②停止ASM实例;③停止nodeapps。
1)确认集群当前状态
RACDB1@rac1 /home/oracle$ crs_stat -t
Name Type Target State Host
------------------------------------------------------------
ora....B1.inst application ONLINE ONLINE rac1
ora....B2.inst application ONLINE ONLINE rac2
ora.RACDB.db application ONLINE ONLINE rac1
ora....DB1.srv application ONLINE ONLINE rac1
ora....DB2.srv application ONLINE ONLINE rac2
ora.....taf.cs application ONLINE ONLINE rac1
ora....SM1.asm application ONLINE ONLINE rac1
ora....C1.lsnr application ONLINE ONLINE rac1
ora.rac1.gsd application ONLINE ONLINE rac1
ora.rac1.ons application ONLINE ONLINE rac1
ora.rac1.vip application ONLINE ONLINE rac1
ora....SM2.asm application ONLINE ONLINE rac2
ora....C2.lsnr application ONLINE ONLINE rac2
ora.rac2.gsd application ONLINE ONLINE rac2
ora.rac2.ons application ONLINE ONLINE rac2
ora.rac2.vip application ONLINE ONLINE rac2
2)停掉第一节点上的数据库实例
RACDB1@rac1 /home/oracle$ srvctl stop instance -d RACDB -i RACDB1
RACDB1@rac1 /home/oracle$ crs_stat -t
Name Type Target State Host
------------------------------------------------------------
ora....B1.inst application OFFLINE OFFLINE
ora....B2.inst application ONLINE ONLINE rac2
ora.RACDB.db application ONLINE ONLINE rac1
ora....DB1.srv application ONLINE OFFLINE
ora....DB2.srv application ONLINE ONLINE rac2
ora.....taf.cs application ONLINE ONLINE rac1
ora....SM1.asm application ONLINE ONLINE rac1
ora....C1.lsnr application ONLINE ONLINE rac1
ora.rac1.gsd application ONLINE ONLINE rac1
ora.rac1.ons application ONLINE ONLINE rac1
ora.rac1.vip application ONLINE ONLINE rac1
ora....SM2.asm application ONLINE ONLINE rac2
ora....C2.lsnr application ONLINE ONLINE rac2
ora.rac2.gsd application ONLINE ONLINE rac2
ora.rac2.ons application ONLINE ONLINE rac2
ora.rac2.vip application ONLINE ONLINE rac2
3)停掉第一节点上的ASM实例
RACDB1@rac1 /home/oracle$ srvctl stop asm -n rac1
RACDB1@rac1 /home/oracle$ crs_stat -t
Name Type Target State Host
------------------------------------------------------------
ora....B1.inst application OFFLINE OFFLINE
ora....B2.inst application ONLINE ONLINE rac2
ora.RACDB.db application ONLINE ONLINE rac1
ora....DB1.srv application ONLINE OFFLINE
ora....DB2.srv application ONLINE ONLINE rac2
ora.....taf.cs application ONLINE ONLINE rac1
ora....SM1.asm application OFFLINE OFFLINE
ora....C1.lsnr application ONLINE ONLINE rac1
ora.rac1.gsd application ONLINE ONLINE rac1
ora.rac1.ons application ONLINE ONLINE rac1
ora.rac1.vip application ONLINE ONLINE rac1
ora....SM2.asm application ONLINE ONLINE rac2
ora....C2.lsnr application ONLINE ONLINE rac2
ora.rac2.gsd application ONLINE ONLINE rac2
ora.rac2.ons application ONLINE ONLINE rac2
ora.rac2.vip application ONLINE ONLINE rac2
4)停掉第一节点上的nodeapps
RACDB1@rac1 /home/oracle$ srvctl stop nodeapps -n rac1
RACDB1@rac1 /home/oracle$ crs_stat -t
Name Type Target State Host
------------------------------------------------------------
ora....B1.inst application OFFLINE OFFLINE
ora....B2.inst application ONLINE ONLINE rac2
ora.RACDB.db application ONLINE ONLINE rac1
ora....DB1.srv application ONLINE OFFLINE
ora....DB2.srv application ONLINE ONLINE rac2
ora.....taf.cs application ONLINE ONLINE rac1
ora....SM1.asm application OFFLINE OFFLINE
ora....C1.lsnr application OFFLINE OFFLINE
ora.rac1.gsd application OFFLINE OFFLINE
ora.rac1.ons application OFFLINE OFFLINE
ora.rac1.vip application OFFLINE OFFLINE
ora....SM2.asm application ONLINE ONLINE rac2
ora....C2.lsnr application ONLINE ONLINE rac2
ora.rac2.gsd application ONLINE ONLINE rac2
ora.rac2.ons application ONLINE ONLINE rac2
ora.rac2.vip application ONLINE ONLINE rac2
3.再次确认VIP已停用
可以使用两种方法来确认:①使用“ifconfig -a”命令;②使用“crs_stat -t”命令
1)使用“ifconfig -a”命令确认VIP已经停用
RACDB1@rac1 /home/oracle$ ifconfig -a
eth0 Link encap:Ethernet HWaddr 00:0C:29:2C:74:42
inet addr:192.168.1.100 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fe2c:7442/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:2610383 errors:0 dropped:0 overruns:0 frame.:0
TX packets:3597024 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:224799562 (214.3 MiB) TX bytes:2273932379 (2.1 GiB)
Interrupt:185 Base address:0x1480
eth1 Link encap:Ethernet HWaddr 00:0C:29:2C:74:4C
inet addr:192.168.2.100 Bcast:192.168.2.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fe2c:744c/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1568619 errors:27 dropped:27 overruns:0 frame.:0
TX packets:1641668 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:755141636 (720.1 MiB) TX bytes:891343331 (850.0 MiB)
Interrupt:193 Base address:0x1800
可见原有的“eth0:1”信息已经不存在,表示VIP已经停止。
2)使用“crs_stat -t”命令确认VIP已经停用
RACDB1@rac1 /home/oracle$ crs_stat -t
Name Type Target State Host
------------------------------------------------------------
ora....B1.inst application OFFLINE OFFLINE
ora....B2.inst application ONLINE ONLINE rac2
ora.RACDB.db application ONLINE ONLINE rac1
ora....DB1.srv application ONLINE OFFLINE
ora....DB2.srv application ONLINE ONLINE rac2
ora.....taf.cs application ONLINE ONLINE rac1
ora....SM1.asm application OFFLINE OFFLINE
ora....C1.lsnr application OFFLINE OFFLINE
ora.rac1.gsd application OFFLINE OFFLINE
ora.rac1.ons application OFFLINE OFFLINE
ora.rac1.vip application OFFLINE OFFLINE
ora....SM2.asm application ONLINE ONLINE rac2
ora....C2.lsnr application ONLINE ONLINE rac2
ora.rac2.gsd application ONLINE ONLINE rac2
ora.rac2.ons application ONLINE ONLINE rac2
ora.rac2.vip application ONLINE ONLINE rac2
第一节点上的VIP已经停止。
4.修改“/etc/hosts”文件中有关VIP的信息
[root@rac1 ~]# vi /etc/hosts
127.0.0.1 localhost.localdomain localhost
::1 localhost6.localdomain6 localhost6
##Public Network - (eth0)
##Private Interconnect - (eth1)
##Public Virtual IP (VIP) addresses - (eth0)
192.168.1.100 rac1
192.168.1.101 rac2
192.168.2.100 rac1-priv
192.168.2.101 rac2-priv
192.168.3.100 rac1-vip
192.168.3.101 rac2-vip
这里我们将第一节点的VIP调整为“192.168.3.100”,第二节点的VIP调整为“192.168.3.101”。
BTW:如果要同时调整虚拟主机名,可以在此一并进行调整。将“rac1-vip”和“rac2-vip”修改为需要的内容,同时需要调整listener.ora、tnsnames.ora和初始化参数文件中与之有关的内容。
5.使用srvctl命令调整VIP地址
注意需要以root用户身份完成此步调整。
[root@rac1 ~]# srvctl modify nodeapps -n rac1 -A 192.168.3.100/255.255.255.0/eth0
该命令给出了新的VIP地址“192.168.3.100”、网络掩码“255.255.255.0”和VIP使用的网卡“eth0”。
6.启动与VIP相关的资源及数据库实例
1)启动nodeapps
[root@rac1 ~]# srvctl start nodeapps -n rac1
Name Type Target State Host
------------------------------------------------------------
ora....B1.inst application OFFLINE OFFLINE
ora....B2.inst application ONLINE ONLINE rac2
ora.RACDB.db application ONLINE ONLINE rac1
ora....DB1.srv application ONLINE OFFLINE
ora....DB2.srv application ONLINE ONLINE rac2
ora.....taf.cs application ONLINE ONLINE rac1
ora....SM1.asm application OFFLINE OFFLINE
ora....C1.lsnr application ONLINE ONLINE rac1
ora.rac1.gsd application ONLINE ONLINE rac1
ora.rac1.ons application ONLINE ONLINE rac1
ora.rac1.vip application ONLINE ONLINE rac1
ora....SM2.asm application ONLINE ONLINE rac2
ora....C2.lsnr application ONLINE ONLINE rac2
ora.rac2.gsd application ONLINE ONLINE rac2
ora.rac2.ons application ONLINE ONLINE rac2
ora.rac2.vip application ONLINE ONLINE rac2
2)启动ASM实例
[root@rac1 ~]# srvctl start asm -n rac1
[root@rac1 ~]# crs_stat -t
Name Type Target State Host
------------------------------------------------------------
ora....B1.inst application OFFLINE OFFLINE
ora....B2.inst application ONLINE ONLINE rac2
ora.RACDB.db application ONLINE ONLINE rac1
ora....DB1.srv application ONLINE OFFLINE
ora....DB2.srv application ONLINE ONLINE rac2
ora.....taf.cs application ONLINE ONLINE rac1
ora....SM1.asm application ONLINE ONLINE rac1
ora....C1.lsnr application ONLINE ONLINE rac1
ora.rac1.gsd application ONLINE ONLINE rac1
ora.rac1.ons application ONLINE ONLINE rac1
ora.rac1.vip application ONLINE ONLINE rac1
ora....SM2.asm application ONLINE ONLINE rac2
ora....C2.lsnr application ONLINE ONLINE rac2
ora.rac2.gsd application ONLINE ONLINE rac2
ora.rac2.ons application ONLINE ONLINE rac2
ora.rac2.vip application ONLINE ONLINE rac2
3)启动数据库实例
[root@rac1 ~]# srvctl start instance -d RACDB -i RACDB1
[root@rac1 ~]# crs_stat -t
Name Type Target State Host
------------------------------------------------------------
ora....B1.inst application ONLINE ONLINE rac1
ora....B2.inst application ONLINE ONLINE rac2
ora.RACDB.db application ONLINE ONLINE rac1
ora....DB1.srv application ONLINE ONLINE rac1
ora....DB2.srv application ONLINE ONLINE rac2
ora.....taf.cs application ONLINE ONLINE rac1
ora....SM1.asm application ONLINE ONLINE rac1
ora....C1.lsnr application ONLINE ONLINE rac1
ora.rac1.gsd application ONLINE ONLINE rac1
ora.rac1.ons application ONLINE ONLINE rac1
ora.rac1.vip application ONLINE ONLINE rac1
ora....SM2.asm application ONLINE ONLINE rac2
ora....C2.lsnr application ONLINE ONLINE rac2
ora.rac2.gsd application ONLINE ONLINE rac2
ora.rac2.ons application ONLINE ONLINE rac2
ora.rac2.vip application ONLINE ONLINE rac2
到此第一节点的VIP修改完毕。
7.确认第一个节点的VIP修改完毕
[root@rac1 ~]# ifconfig -a
eth0 Link encap:Ethernet HWaddr 00:0C:29:2C:74:42
inet addr:192.168.1.100 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fe2c:7442/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:2639780 errors:0 dropped:0 overruns:0 frame.:0
TX packets:3626218 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:227444406 (216.9 MiB) TX bytes:2276551395 (2.1 GiB)
Interrupt:185 Base address:0x1480
eth0:1 Link encap:Ethernet HWaddr 00:0C:29:2C:74:42
inet addr:192.168.3.100 Bcast:192.168.3.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
Interrupt:185 Base address:0x1480
eth1 Link encap:Ethernet HWaddr 00:0C:29:2C:74:4C
inet addr:192.168.2.100 Bcast:192.168.2.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fe2c:744c/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1598818 errors:27 dropped:27 overruns:0 frame.:0
TX packets:1661789 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:775634542 (739.7 MiB) TX bytes:897306993 (855.7 MiB)
Interrupt:193 Base address:0x1800
从“eth0:1”给出的信息看,第一节点的VIP已经调整完毕。
8.调整RAC其余节点的VIP
按照上述步骤操作后,便完成了一个节点的VIP调整,按照如上步骤依次调整其他节点的VIP信息即可实现滚动调整VIP的目的。
9.小结
调整RAC环境中各节点VIP及虚拟主机名的步骤相对比较简单。但有一些需要重点注意的地方:
1)如果listener.ora、tnsnames.ora和初始化参数文件中使用的是VIP的地址而不是虚拟主机的名字,需要将其内容调整为新的VIP地址;
2)如果在调整VIP地址过程中同时修改了虚拟主机的名字,注意需要同时修改listener.ora、tnsnames.ora和初始化参数文件;
3)需要调整客户端tnsnames.ora文件中有关VIP的配置信息。
Good luck.
secooler
10.11.16
-- The End --
在多节点RAC环境中,我们可以使用逐节点调整的策略来完成RAC环境中各节点VIP修改任务。
1.获取系统当前VIP信息
使用“ifconfig –a”命令,可以得到VIP是被绑定在eth0这个网络接口上。
1)确认rac1节点上VIP信息
[root@rac1 ~]# ifconfig -a
eth0 Link encap:Ethernet HWaddr 00:0C:29:2C:74:42
inet addr:192.168.1.100 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fe2c:7442/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:2607265 errors:0 dropped:0 overruns:0 frame.:0
TX packets:3593990 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:224517544 (214.1 MiB) TX bytes:2273656220 (2.1 GiB)
Interrupt:185 Base address:0x1480
eth0:1 Link encap:Ethernet HWaddr 00:0C:29:2C:74:42
inet addr:192.168.1.200 Bcast:192.168.1.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
Interrupt:185 Base address:0x1480
eth1 Link encap:Ethernet HWaddr 00:0C:29:2C:74:4C
inet addr:192.168.2.100 Bcast:192.168.2.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fe2c:744c/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1565284 errors:27 dropped:27 overruns:0 frame.:0
TX packets:1637772 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:753478388 (718.5 MiB) TX bytes:889262981 (848.0 MiB)
Interrupt:193 Base address:0x1800
2)确认rac2节点上VIP信息
[root@rac2 ~]# ifconfig -a
eth0 Link encap:Ethernet HWaddr 00:0C:29:8F:F1:87
inet addr:192.168.1.101 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fe8f:f187/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:3567795 errors:34 dropped:34 overruns:0 frame.:0
TX packets:2587235 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:2271730645 (2.1 GiB) TX bytes:222997239 (212.6 MiB)
Interrupt:185 Base address:0x1480
eth0:1 Link encap:Ethernet HWaddr 00:0C:29:8F:F1:87
inet addr:192.168.1.201 Bcast:192.168.1.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
Interrupt:185 Base address:0x1480
eth1 Link encap:Ethernet HWaddr 00:0C:29:8F:F1:91
inet addr:192.168.2.101 Bcast:192.168.2.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fe8f:f191/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1674459 errors:17 dropped:17 overruns:0 frame.:0
TX packets:1529165 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:894329474 (852.8 MiB) TX bytes:748919151 (714.2 MiB)
Interrupt:193 Base address:0x1800
3)在操作系统的hosts文件中同样记录了有关VIP的信息
[root@rac1 ~]# cat /etc/hosts
127.0.0.1 localhost.localdomain localhost
::1 localhost6.localdomain6 localhost6
##Public Network - (eth0)
##Private Interconnect - (eth1)
##Public Virtual IP (VIP) addresses - (eth0)
192.168.1.100 rac1
192.168.1.101 rac2
192.168.2.100 rac1-priv
192.168.2.101 rac2-priv
192.168.1.200 rac1-vip
192.168.1.201 rac2-vip
2.停掉所有与VIP相关的资源
停止顺序:①停止数据库实例;②停止ASM实例;③停止nodeapps。
1)确认集群当前状态
RACDB1@rac1 /home/oracle$ crs_stat -t
Name Type Target State Host
------------------------------------------------------------
ora....B1.inst application ONLINE ONLINE rac1
ora....B2.inst application ONLINE ONLINE rac2
ora.RACDB.db application ONLINE ONLINE rac1
ora....DB1.srv application ONLINE ONLINE rac1
ora....DB2.srv application ONLINE ONLINE rac2
ora.....taf.cs application ONLINE ONLINE rac1
ora....SM1.asm application ONLINE ONLINE rac1
ora....C1.lsnr application ONLINE ONLINE rac1
ora.rac1.gsd application ONLINE ONLINE rac1
ora.rac1.ons application ONLINE ONLINE rac1
ora.rac1.vip application ONLINE ONLINE rac1
ora....SM2.asm application ONLINE ONLINE rac2
ora....C2.lsnr application ONLINE ONLINE rac2
ora.rac2.gsd application ONLINE ONLINE rac2
ora.rac2.ons application ONLINE ONLINE rac2
ora.rac2.vip application ONLINE ONLINE rac2
2)停掉第一节点上的数据库实例
RACDB1@rac1 /home/oracle$ srvctl stop instance -d RACDB -i RACDB1
RACDB1@rac1 /home/oracle$ crs_stat -t
Name Type Target State Host
------------------------------------------------------------
ora....B1.inst application OFFLINE OFFLINE
ora....B2.inst application ONLINE ONLINE rac2
ora.RACDB.db application ONLINE ONLINE rac1
ora....DB1.srv application ONLINE OFFLINE
ora....DB2.srv application ONLINE ONLINE rac2
ora.....taf.cs application ONLINE ONLINE rac1
ora....SM1.asm application ONLINE ONLINE rac1
ora....C1.lsnr application ONLINE ONLINE rac1
ora.rac1.gsd application ONLINE ONLINE rac1
ora.rac1.ons application ONLINE ONLINE rac1
ora.rac1.vip application ONLINE ONLINE rac1
ora....SM2.asm application ONLINE ONLINE rac2
ora....C2.lsnr application ONLINE ONLINE rac2
ora.rac2.gsd application ONLINE ONLINE rac2
ora.rac2.ons application ONLINE ONLINE rac2
ora.rac2.vip application ONLINE ONLINE rac2
3)停掉第一节点上的ASM实例
RACDB1@rac1 /home/oracle$ srvctl stop asm -n rac1
RACDB1@rac1 /home/oracle$ crs_stat -t
Name Type Target State Host
------------------------------------------------------------
ora....B1.inst application OFFLINE OFFLINE
ora....B2.inst application ONLINE ONLINE rac2
ora.RACDB.db application ONLINE ONLINE rac1
ora....DB1.srv application ONLINE OFFLINE
ora....DB2.srv application ONLINE ONLINE rac2
ora.....taf.cs application ONLINE ONLINE rac1
ora....SM1.asm application OFFLINE OFFLINE
ora....C1.lsnr application ONLINE ONLINE rac1
ora.rac1.gsd application ONLINE ONLINE rac1
ora.rac1.ons application ONLINE ONLINE rac1
ora.rac1.vip application ONLINE ONLINE rac1
ora....SM2.asm application ONLINE ONLINE rac2
ora....C2.lsnr application ONLINE ONLINE rac2
ora.rac2.gsd application ONLINE ONLINE rac2
ora.rac2.ons application ONLINE ONLINE rac2
ora.rac2.vip application ONLINE ONLINE rac2
4)停掉第一节点上的nodeapps
RACDB1@rac1 /home/oracle$ srvctl stop nodeapps -n rac1
RACDB1@rac1 /home/oracle$ crs_stat -t
Name Type Target State Host
------------------------------------------------------------
ora....B1.inst application OFFLINE OFFLINE
ora....B2.inst application ONLINE ONLINE rac2
ora.RACDB.db application ONLINE ONLINE rac1
ora....DB1.srv application ONLINE OFFLINE
ora....DB2.srv application ONLINE ONLINE rac2
ora.....taf.cs application ONLINE ONLINE rac1
ora....SM1.asm application OFFLINE OFFLINE
ora....C1.lsnr application OFFLINE OFFLINE
ora.rac1.gsd application OFFLINE OFFLINE
ora.rac1.ons application OFFLINE OFFLINE
ora.rac1.vip application OFFLINE OFFLINE
ora....SM2.asm application ONLINE ONLINE rac2
ora....C2.lsnr application ONLINE ONLINE rac2
ora.rac2.gsd application ONLINE ONLINE rac2
ora.rac2.ons application ONLINE ONLINE rac2
ora.rac2.vip application ONLINE ONLINE rac2
3.再次确认VIP已停用
可以使用两种方法来确认:①使用“ifconfig -a”命令;②使用“crs_stat -t”命令
1)使用“ifconfig -a”命令确认VIP已经停用
RACDB1@rac1 /home/oracle$ ifconfig -a
eth0 Link encap:Ethernet HWaddr 00:0C:29:2C:74:42
inet addr:192.168.1.100 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fe2c:7442/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:2610383 errors:0 dropped:0 overruns:0 frame.:0
TX packets:3597024 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:224799562 (214.3 MiB) TX bytes:2273932379 (2.1 GiB)
Interrupt:185 Base address:0x1480
eth1 Link encap:Ethernet HWaddr 00:0C:29:2C:74:4C
inet addr:192.168.2.100 Bcast:192.168.2.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fe2c:744c/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1568619 errors:27 dropped:27 overruns:0 frame.:0
TX packets:1641668 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:755141636 (720.1 MiB) TX bytes:891343331 (850.0 MiB)
Interrupt:193 Base address:0x1800
可见原有的“eth0:1”信息已经不存在,表示VIP已经停止。
2)使用“crs_stat -t”命令确认VIP已经停用
RACDB1@rac1 /home/oracle$ crs_stat -t
Name Type Target State Host
------------------------------------------------------------
ora....B1.inst application OFFLINE OFFLINE
ora....B2.inst application ONLINE ONLINE rac2
ora.RACDB.db application ONLINE ONLINE rac1
ora....DB1.srv application ONLINE OFFLINE
ora....DB2.srv application ONLINE ONLINE rac2
ora.....taf.cs application ONLINE ONLINE rac1
ora....SM1.asm application OFFLINE OFFLINE
ora....C1.lsnr application OFFLINE OFFLINE
ora.rac1.gsd application OFFLINE OFFLINE
ora.rac1.ons application OFFLINE OFFLINE
ora.rac1.vip application OFFLINE OFFLINE
ora....SM2.asm application ONLINE ONLINE rac2
ora....C2.lsnr application ONLINE ONLINE rac2
ora.rac2.gsd application ONLINE ONLINE rac2
ora.rac2.ons application ONLINE ONLINE rac2
ora.rac2.vip application ONLINE ONLINE rac2
第一节点上的VIP已经停止。
4.修改“/etc/hosts”文件中有关VIP的信息
[root@rac1 ~]# vi /etc/hosts
127.0.0.1 localhost.localdomain localhost
::1 localhost6.localdomain6 localhost6
##Public Network - (eth0)
##Private Interconnect - (eth1)
##Public Virtual IP (VIP) addresses - (eth0)
192.168.1.100 rac1
192.168.1.101 rac2
192.168.2.100 rac1-priv
192.168.2.101 rac2-priv
192.168.3.100 rac1-vip
192.168.3.101 rac2-vip
这里我们将第一节点的VIP调整为“192.168.3.100”,第二节点的VIP调整为“192.168.3.101”。
BTW:如果要同时调整虚拟主机名,可以在此一并进行调整。将“rac1-vip”和“rac2-vip”修改为需要的内容,同时需要调整listener.ora、tnsnames.ora和初始化参数文件中与之有关的内容。
5.使用srvctl命令调整VIP地址
注意需要以root用户身份完成此步调整。
[root@rac1 ~]# srvctl modify nodeapps -n rac1 -A 192.168.3.100/255.255.255.0/eth0
该命令给出了新的VIP地址“192.168.3.100”、网络掩码“255.255.255.0”和VIP使用的网卡“eth0”。
6.启动与VIP相关的资源及数据库实例
1)启动nodeapps
[root@rac1 ~]# srvctl start nodeapps -n rac1
Name Type Target State Host
------------------------------------------------------------
ora....B1.inst application OFFLINE OFFLINE
ora....B2.inst application ONLINE ONLINE rac2
ora.RACDB.db application ONLINE ONLINE rac1
ora....DB1.srv application ONLINE OFFLINE
ora....DB2.srv application ONLINE ONLINE rac2
ora.....taf.cs application ONLINE ONLINE rac1
ora....SM1.asm application OFFLINE OFFLINE
ora....C1.lsnr application ONLINE ONLINE rac1
ora.rac1.gsd application ONLINE ONLINE rac1
ora.rac1.ons application ONLINE ONLINE rac1
ora.rac1.vip application ONLINE ONLINE rac1
ora....SM2.asm application ONLINE ONLINE rac2
ora....C2.lsnr application ONLINE ONLINE rac2
ora.rac2.gsd application ONLINE ONLINE rac2
ora.rac2.ons application ONLINE ONLINE rac2
ora.rac2.vip application ONLINE ONLINE rac2
2)启动ASM实例
[root@rac1 ~]# srvctl start asm -n rac1
[root@rac1 ~]# crs_stat -t
Name Type Target State Host
------------------------------------------------------------
ora....B1.inst application OFFLINE OFFLINE
ora....B2.inst application ONLINE ONLINE rac2
ora.RACDB.db application ONLINE ONLINE rac1
ora....DB1.srv application ONLINE OFFLINE
ora....DB2.srv application ONLINE ONLINE rac2
ora.....taf.cs application ONLINE ONLINE rac1
ora....SM1.asm application ONLINE ONLINE rac1
ora....C1.lsnr application ONLINE ONLINE rac1
ora.rac1.gsd application ONLINE ONLINE rac1
ora.rac1.ons application ONLINE ONLINE rac1
ora.rac1.vip application ONLINE ONLINE rac1
ora....SM2.asm application ONLINE ONLINE rac2
ora....C2.lsnr application ONLINE ONLINE rac2
ora.rac2.gsd application ONLINE ONLINE rac2
ora.rac2.ons application ONLINE ONLINE rac2
ora.rac2.vip application ONLINE ONLINE rac2
3)启动数据库实例
[root@rac1 ~]# srvctl start instance -d RACDB -i RACDB1
[root@rac1 ~]# crs_stat -t
Name Type Target State Host
------------------------------------------------------------
ora....B1.inst application ONLINE ONLINE rac1
ora....B2.inst application ONLINE ONLINE rac2
ora.RACDB.db application ONLINE ONLINE rac1
ora....DB1.srv application ONLINE ONLINE rac1
ora....DB2.srv application ONLINE ONLINE rac2
ora.....taf.cs application ONLINE ONLINE rac1
ora....SM1.asm application ONLINE ONLINE rac1
ora....C1.lsnr application ONLINE ONLINE rac1
ora.rac1.gsd application ONLINE ONLINE rac1
ora.rac1.ons application ONLINE ONLINE rac1
ora.rac1.vip application ONLINE ONLINE rac1
ora....SM2.asm application ONLINE ONLINE rac2
ora....C2.lsnr application ONLINE ONLINE rac2
ora.rac2.gsd application ONLINE ONLINE rac2
ora.rac2.ons application ONLINE ONLINE rac2
ora.rac2.vip application ONLINE ONLINE rac2
到此第一节点的VIP修改完毕。
7.确认第一个节点的VIP修改完毕
[root@rac1 ~]# ifconfig -a
eth0 Link encap:Ethernet HWaddr 00:0C:29:2C:74:42
inet addr:192.168.1.100 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fe2c:7442/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:2639780 errors:0 dropped:0 overruns:0 frame.:0
TX packets:3626218 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:227444406 (216.9 MiB) TX bytes:2276551395 (2.1 GiB)
Interrupt:185 Base address:0x1480
eth0:1 Link encap:Ethernet HWaddr 00:0C:29:2C:74:42
inet addr:192.168.3.100 Bcast:192.168.3.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
Interrupt:185 Base address:0x1480
eth1 Link encap:Ethernet HWaddr 00:0C:29:2C:74:4C
inet addr:192.168.2.100 Bcast:192.168.2.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fe2c:744c/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1598818 errors:27 dropped:27 overruns:0 frame.:0
TX packets:1661789 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:775634542 (739.7 MiB) TX bytes:897306993 (855.7 MiB)
Interrupt:193 Base address:0x1800
从“eth0:1”给出的信息看,第一节点的VIP已经调整完毕。
8.调整RAC其余节点的VIP
按照上述步骤操作后,便完成了一个节点的VIP调整,按照如上步骤依次调整其他节点的VIP信息即可实现滚动调整VIP的目的。
9.小结
调整RAC环境中各节点VIP及虚拟主机名的步骤相对比较简单。但有一些需要重点注意的地方:
1)如果listener.ora、tnsnames.ora和初始化参数文件中使用的是VIP的地址而不是虚拟主机的名字,需要将其内容调整为新的VIP地址;
2)如果在调整VIP地址过程中同时修改了虚拟主机的名字,注意需要同时修改listener.ora、tnsnames.ora和初始化参数文件;
3)需要调整客户端tnsnames.ora文件中有关VIP的配置信息。
Good luck.
secooler
10.11.16
-- The End --
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/519536/viewspace-678332/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/519536/viewspace-678332/