暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle RAC 11g R2修改PUBLIC IP VIP SCAN IP全过程记录

原创 xiangjingtao 2020-12-06
944
      Oracle RAC 11g R2修改PUBLIC IP VIP SCAN IP全过程记录

最近因为公司需求,需要把公司内网机房里的几台测试服务器搬到互联机房,换机房不可避免的是IP变更(但不是绝对)。
这次搬迁也包括我的一套RAC测试库,IP的变更可能对应用来说只要更改物理IP然后重启network就可以了,但RAC并非那么简单。
下面就记录了此番我的这一套RAC修改PUBLIC IP、VIP、SCAN IP的全部过程。
在前面先介绍一下我的测试环境RAC,这我拿四台主机部署的,其中一台用于DNS服务器,一台用于SAN服务器,两台用于数据库RAC 节点。
DNS服务器、数据库两个节点全部安装OEL(Oracle Enterprise Linux) 5.5 64bit OS,SAN服务器安装了Openfiler 2.3 64bit OS(毕竟是测试库吗)。
下面是原和目标IP信息:

Node Name	Public IP	VIP	SCAN VIP	GATEWAY

原信息 rac1 192.168.77.243 192.168.77.43 192.168.77.245、192.168.77.246、192.168.77.247 192.168.77.250
同上 rac2 192.168.77.242 192.168.77.42 同上 同上
目标信息 rac1 192.168.53.1 192.168.53.3 192.168.53.5、192.168.53.6、192.168.53.7 192.168.53.254
同上 rac2 192.168.53.2 192.168.53.4 同上 同上

至于这里面为什么没有PRIVATE IP的修改,是因为搬到机房之后发现原私网IP的规划并不影响,所以保留它们不变。
如果更改,其实也不难,大概写一下步骤:
1、删除PRIVATE IP那个接口,比如在这里是eth1:

./oifcfg delif -global eth1

– 注意,这里有几个删几个,产生多个的情况是RAC采用了11.2.0.2之后新技术HAIP特性。
2、eth1接口重新配置PRIVATE IP:

./oricfg setif -global eth1/192.168.22.0:cluster_interconnect

– 假设修改后的私网IP是192.168.22.0子网。
3、查看配置情况:

./oifcfg getif

另外,如果你的机房搬迁不会更改子网信息,而是只更改IP尾号,那么这种情况相对来说操作简单很多,请查找网络资料。
好,上面一段是扩展内容,下面就进入我的实际操作过程。
修改PUBLIC IP
查看当前公共网络接口的配置信息
[root@rac1 bin]# ./oifcfg getif
eth0 192.168.77.0 global public
eth1 192.168.56.0 global cluster_interconnect
步骤1、修改Clusterware Public IP
删除PUBLIC IP那个接口:[root@rac1 bin]# ./oifcfg delif -global eth0
在该接口重新配置PUBLIC IP信息:[root@rac1 bin]# ./oifcfg setif -global eth0/192.168.53.0:public
重新查看:[root@rac2 bin]# ./oifcfg getifeth1 192.168.56.0 global cluster_interconnect
eth0 192.168.53.0 global public
步骤2、停止所有节点的资源服务
节点1:[root@rac1 bin]# ./crsctl stop hasCRS-2791: Starting shutdown of Oracle High Availability Services-managed resources on 'rac1’CRS-2673: Attempting to stop ‘ora.crsd’ on 'rac1’CRS-2790: Starting shutdown of Cluster Ready Services-managed resources on 'rac1’CRS-2673: Attempting to stop ‘ora.SVARCH.dg’ on 'rac1’CRS-2673: Attempting to stop ‘ora.SVCRS.dg’ on 'rac1’CRS-2673: Attempting to stop ‘ora.luocs.db’ on 'rac1’CRS-2673: Attempting to stop ‘ora.registry.acfs’ on 'rac1’CRS-2673: Attempting to stop ‘ora.LISTENER_SCAN3.lsnr’ on 'rac1’CRS-2673: Attempting to stop ‘ora.LISTENER_SCAN2.lsnr’ on 'rac1’CRS-2673: Attempting to stop ‘ora.LISTENER.lsnr’ on 'rac1’CRS-2677: Stop of ‘ora.LISTENER_SCAN2.lsnr’ on ‘rac1’ succeeded
CRS-2673: Attempting to stop ‘ora.scan2.vip’ on 'rac1’CRS-2677: Stop of ‘ora.scan2.vip’ on ‘rac1’ succeeded
CRS-2672: Attempting to start ‘ora.scan2.vip’ on 'rac2’CRS-2677: Stop of ‘ora.LISTENER_SCAN3.lsnr’ on ‘rac1’ succeeded
CRS-2673: Attempting to stop ‘ora.scan3.vip’ on 'rac1’CRS-2677: Stop of ‘ora.scan3.vip’ on ‘rac1’ succeeded
CRS-2672: Attempting to start ‘ora.scan3.vip’ on 'rac2’CRS-2677: Stop of ‘ora.LISTENER.lsnr’ on ‘rac1’ succeeded
CRS-2673: Attempting to stop ‘ora.rac1.vip’ on 'rac1’CRS-2677: Stop of ‘ora.rac1.vip’ on ‘rac1’ succeeded
CRS-2672: Attempting to start ‘ora.rac1.vip’ on 'rac2’CRS-2677: Stop of ‘ora.registry.acfs’ on ‘rac1’ succeeded
CRS-2676: Start of ‘ora.rac1.vip’ on ‘rac2’ succeeded
CRS-2676: Start of ‘ora.scan3.vip’ on ‘rac2’ succeeded
CRS-2676: Start of ‘ora.scan2.vip’ on ‘rac2’ succeeded
CRS-2672: Attempting to start ‘ora.LISTENER_SCAN3.lsnr’ on 'rac2’CRS-2672: Attempting to start ‘ora.LISTENER_SCAN2.lsnr’ on 'rac2’CRS-2676: Start of ‘ora.LISTENER_SCAN3.lsnr’ on ‘rac2’ succeeded
CRS-2676: Start of ‘ora.LISTENER_SCAN2.lsnr’ on ‘rac2’ succeeded
CRS-2677: Stop of ‘ora.SVCRS.dg’ on ‘rac1’ succeeded
CRS-2677: Stop of ‘ora.SVARCH.dg’ on ‘rac1’ succeeded
CRS-2677: Stop of ‘ora.luocs.db’ on ‘rac1’ succeeded
CRS-2673: Attempting to stop ‘ora.SVDATA.dg’ on 'rac1’CRS-2677: Stop of ‘ora.SVDATA.dg’ on ‘rac1’ succeeded
CRS-2673: Attempting to stop ‘ora.asm’ on 'rac1’CRS-2677: Stop of ‘ora.asm’ on ‘rac1’ succeeded
CRS-2673: Attempting to stop ‘ora.ons’ on 'rac1’CRS-2673: Attempting to stop ‘ora.eons’ on 'rac1’CRS-2677: Stop of ‘ora.ons’ on ‘rac1’ succeeded
CRS-2673: Attempting to stop ‘ora.net1.network’ on 'rac1’CRS-2677: Stop of ‘ora.net1.network’ on ‘rac1’ succeeded
CRS-2677: Stop of ‘ora.eons’ on ‘rac1’ succeeded
CRS-2792: Shutdown of Cluster Ready Services-managed resources on ‘rac1’ has completed
CRS-2677: Stop of ‘ora.crsd’ on ‘rac1’ succeeded
CRS-2673: Attempting to stop ‘ora.drivers.acfs’ on 'rac1’CRS-2673: Attempting to stop ‘ora.cssdmonitor’ on 'rac1’CRS-2673: Attempting to stop ‘ora.ctssd’ on 'rac1’CRS-2673: Attempting to stop ‘ora.evmd’ on 'rac1’CRS-2673: Attempting to stop ‘ora.asm’ on 'rac1’CRS-2673: Attempting to stop ‘ora.mdnsd’ on 'rac1’CRS-2677: Stop of ‘ora.cssdmonitor’ on ‘rac1’ succeeded
CRS-2677: Stop of ‘ora.evmd’ on ‘rac1’ succeeded
CRS-2677: Stop of ‘ora.mdnsd’ on ‘rac1’ succeeded
CRS-2677: Stop of ‘ora.ctssd’ on ‘rac1’ succeeded
CRS-2677: Stop of ‘ora.drivers.acfs’ on ‘rac1’ succeeded
CRS-2677: Stop of ‘ora.asm’ on ‘rac1’ succeeded
CRS-2673: Attempting to stop ‘ora.cssd’ on 'rac1’CRS-2677: Stop of ‘ora.cssd’ on ‘rac1’ succeeded
CRS-2673: Attempting to stop ‘ora.gpnpd’ on 'rac1’CRS-2673: Attempting to stop ‘ora.diskmon’ on 'rac1’CRS-2677: Stop of ‘ora.gpnpd’ on ‘rac1’ succeeded
CRS-2673: Attempting to stop ‘ora.gipcd’ on 'rac1’CRS-2677: Stop of ‘ora.gipcd’ on ‘rac1’ succeeded
CRS-2677: Stop of ‘ora.diskmon’ on ‘rac1’ succeeded
CRS-2793: Shutdown of Oracle High Availability Services-managed resources on ‘rac1’ has completed
CRS-4133: Oracle High Availability Services has been stopped.
节点2:[root@rac2 bin]# ./crsctl stop hasCRS-2791: Starting shutdown of Oracle High Availability Services-managed resources on 'rac2’CRS-2673: Attempting to stop ‘ora.crsd’ on 'rac2’CRS-2790: Starting shutdown of Cluster Ready Services-managed resources on 'rac2’CRS-2673: Attempting to stop ‘ora.SVARCH.dg’ on 'rac2’CRS-2673: Attempting to stop ‘ora.SVCRS.dg’ on 'rac2’CRS-2673: Attempting to stop ‘ora.luocs.db’ on 'rac2’CRS-2673: Attempting to stop ‘ora.registry.acfs’ on 'rac2’CRS-2673: Attempting to stop ‘ora.LISTENER_SCAN1.lsnr’ on 'rac2’CRS-2673: Attempting to stop ‘ora.LISTENER_SCAN2.lsnr’ on 'rac2’CRS-2673: Attempting to stop ‘ora.LISTENER_SCAN3.lsnr’ on 'rac2’CRS-2673: Attempting to stop ‘ora.rac1.vip’ on 'rac2’CRS-2673: Attempting to stop ‘ora.LISTENER.lsnr’ on 'rac2’CRS-2677: Stop of ‘ora.rac1.vip’ on ‘rac2’ succeeded
CRS-2677: Stop of ‘ora.LISTENER.lsnr’ on ‘rac2’ succeeded
CRS-2673: Attempting to stop ‘ora.rac2.vip’ on 'rac2’CRS-2677: Stop of ‘ora.rac2.vip’ on ‘rac2’ succeeded
CRS-2677: Stop of ‘ora.LISTENER_SCAN1.lsnr’ on ‘rac2’ succeeded
CRS-2673: Attempting to stop ‘ora.scan1.vip’ on 'rac2’CRS-2677: Stop of ‘ora.scan1.vip’ on ‘rac2’ succeeded
CRS-2677: Stop of ‘ora.registry.acfs’ on ‘rac2’ succeeded
CRS-2677: Stop of ‘ora.SVARCH.dg’ on ‘rac2’ succeeded
CRS-2677: Stop of ‘ora.LISTENER_SCAN3.lsnr’ on ‘rac2’ succeeded
CRS-2673: Attempting to stop ‘ora.scan3.vip’ on 'rac2’CRS-2677: Stop of ‘ora.scan3.vip’ on ‘rac2’ succeeded
CRS-2677: Stop of ‘ora.LISTENER_SCAN2.lsnr’ on ‘rac2’ succeeded
CRS-2673: Attempting to stop ‘ora.scan2.vip’ on 'rac2’CRS-2677: Stop of ‘ora.scan2.vip’ on ‘rac2’ succeeded
CRS-2677: Stop of ‘ora.luocs.db’ on ‘rac2’ succeeded
CRS-2673: Attempting to stop ‘ora.SVDATA.dg’ on 'rac2’CRS-2677: Stop of ‘ora.SVCRS.dg’ on ‘rac2’ succeeded
CRS-2677: Stop of ‘ora.SVDATA.dg’ on ‘rac2’ succeeded
CRS-2673: Attempting to stop ‘ora.asm’ on 'rac2’CRS-2677: Stop of ‘ora.asm’ on ‘rac2’ succeeded
CRS-2673: Attempting to stop ‘ora.eons’ on 'rac2’CRS-2673: Attempting to stop ‘ora.ons’ on 'rac2’CRS-2677: Stop of ‘ora.ons’ on ‘rac2’ succeeded
CRS-2673: Attempting to stop ‘ora.net1.network’ on 'rac2’CRS-2677: Stop of ‘ora.net1.network’ on ‘rac2’ succeeded
CRS-2677: Stop of ‘ora.eons’ on ‘rac2’ succeeded
CRS-2792: Shutdown of Cluster Ready Services-managed resources on ‘rac2’ has completed
CRS-2677: Stop of ‘ora.crsd’ on ‘rac2’ succeeded
CRS-2673: Attempting to stop ‘ora.gpnpd’ on 'rac2’CRS-2673: Attempting to stop ‘ora.cssdmonitor’ on 'rac2’CRS-2673: Attempting to stop ‘ora.ctssd’ on 'rac2’CRS-2673: Attempting to stop ‘ora.evmd’ on 'rac2’CRS-2673: Attempting to stop ‘ora.asm’ on 'rac2’CRS-2673: Attempting to stop ‘ora.mdnsd’ on 'rac2’CRS-2673: Attempting to stop ‘ora.drivers.acfs’ on 'rac2’CRS-2677: Stop of ‘ora.cssdmonitor’ on ‘rac2’ succeeded
CRS-2677: Stop of ‘ora.mdnsd’ on ‘rac2’ succeeded
CRS-2677: Stop of ‘ora.gpnpd’ on ‘rac2’ succeeded
CRS-2677: Stop of ‘ora.evmd’ on ‘rac2’ succeeded
CRS-2677: Stop of ‘ora.ctssd’ on ‘rac2’ succeeded
CRS-2677: Stop of ‘ora.asm’ on ‘rac2’ succeeded
CRS-2673: Attempting to stop ‘ora.cssd’ on 'rac2’CRS-2677: Stop of ‘ora.drivers.acfs’ on ‘rac2’ succeeded
CRS-2677: Stop of ‘ora.cssd’ on ‘rac2’ succeeded
CRS-2673: Attempting to stop ‘ora.diskmon’ on 'rac2’CRS-2673: Attempting to stop ‘ora.gipcd’ on 'rac2’CRS-2677: Stop of ‘ora.gipcd’ on ‘rac2’ succeeded
CRS-2677: Stop of ‘ora.diskmon’ on ‘rac2’ succeeded
CRS-2793: Shutdown of Oracle High Availability Services-managed resources on ‘rac2’ has completed
CRS-4133: Oracle High Availability Services has been stopped.
步骤3、修改物理网卡IP
节点1:[root@rac1 bin]# vi /etc/sysconfig/network-scripts/ifcfg-eth0DEVICE=eth0
BOOTPROTO=none
HWADDR=08:00:27:85:9f:e2
ONBOOT=yes
DHCP_HOSTNAME=rac1.hkrt.cn
IPADDR=192.168.53.1NETMASK=255.255.255.0GATEWAY=192.168.53.254TYPE=Ethernet-- 修改IPADDR和GATEWAY。
节点2:[root@rac2 bin]# vi /etc/sysconfig/network-scripts/ifcfg-eth0DEVICE=eth0
BOOTPROTO=none
HWADDR=08:00:27:cb:d0:46ONBOOT=yes
DHCP_HOSTNAME=rac2.hkrt.cn
IPADDR=192.168.53.2NETMASK=255.255.255.0GATEWAY=192.168.53.254TYPE=Ethernet
重启network:[root@rac1 bin]# service network restart[root@rac2 bin]# service network restart
步骤4、修改SAN服务器IP
注意这里其实不更改SAN服务器公网IP也可以,因为我们是通过私网口也就是192.168.122.48来和数据库两个node进行通信的。但为了后续还要使用SAN WEB工具,所以在这里进行修改:
[root@san ~]# ifconfig | moreeth0 Link encap:Ethernet HWaddr 08:00:27:6D:B0:47
inet addr:192.168.77.48 Bcast:192.168.77.255 Mask:255.255.255.0 inet6 addr: fe80::a00:27ff:fe6d:b047/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:511 errors:0 dropped:0 overruns:0 frame:0 TX packets:207 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000
RX bytes:32367 (31.6 Kb) TX bytes:8340 (8.1 Kb)
eth1 Link encap:Ethernet HWaddr 08:00:27:19:36:7A
inet addr:192.168.122.48 Bcast:192.168.122.255 Mask:255.255.255.0 inet6 addr: fe80::a00:27ff:fe19:367a/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:331574 errors:0 dropped:0 overruns:0 frame:0 TX packets:387167 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000
RX bytes:100010729 (95.3 Mb) TX bytes:431547258 (411.5 Mb)…
[root@san ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0
BOOTPROTO=staticIPADDR=192.168.53.9NETMASK=255.255.255.0GATEWAY=192.168.53.254HWADDR=08:00:27:6D:B0:47ONBOOT=yes
TYPE=EthernetDHCP_HOSTNAME=san.hkrt.cn

[root@san ~]# service network restart
步骤5、修改DNS服务器信息和IP
首先修改配置文件[root@dns ~]# cd /var/named/chroot/etc/[root@dns etc]# vi named.zones zone “hkrt.cn” IN { type master; file “hkrt.cn.zone”; allow-update { none; };};
zone “53.168.192.in-addr.arpa” IN { type master; file “53.168.192.local”; allow-update { none; };};
修改正向解析区域配置:[root@dns etc]# cd …/var/named/[root@dns named]# vi hkrt.cn.zone $TTL 86400@ IN SOA dns.hkrt.cn. root.hkrt.cn. ( 42 ; serial (d. adams) 3H ; refresh
15M ; retry 1W ; expiry
1D ) ; minimum
IN NS dns.hkrt.cn.scan IN A 192.168.53.5scan IN A 192.168.53.6scan IN A 192.168.53.7
修改反向解析区域配置:[root@dns named]# mv 77.168.192.local 53.168.192.local[root@dns named]# vi 53.168.192.local $TTL 86400@ IN SOA dns.hkrt.cn. root.hkrt.cn. ( 1997022700 ; Serial 28800 ; Refresh 14400 ; Retry 3600000 ; Expire 86400 ) ; Minimum IN NS dns.hkrt.cn.5 IN PTR scan.hkrt.cn.6 IN PTR scan.hkrt.cn.7 IN PTR scan.hkrt.cn.
重启服务:[root@dns named]# service named restart
验证:[root@dns named]# nslookup scan.hkrt.cnServer: 127.0.0.1Address: 127.0.0.1#53
Name: scan.hkrt.cn
Address: 192.168.53.5Name: scan.hkrt.cn
Address: 192.168.53.6Name: scan.hkrt.cn
Address: 192.168.53.7
修改DNS服务器的IP
[root@dns ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0
BOOTPROTO=none
HWADDR=08:00:27:c3:e3:f9
ONBOOT=yes
DHCP_HOSTNAME=dns.hkrt.cn
IPADDR=192.168.53.8NETMASK=255.255.255.0TYPE=EthernetGATEWAY=192.168.53.254
[root@dns ~]# service network restart
数据库所有节点修改DNS服务器IP:节点1:[root@rac1 bin]# vi /etc/resolv.conf search hkrt.cn
nameserver 192.168.53.8
测试:[root@rac1 bin]# nslookup scan.hkrt.cnServer: 192.168.53.8Address: 192.168.53.8#53
Name: scan.hkrt.cn
Address: 192.168.53.5Name: scan.hkrt.cn
Address: 192.168.53.6Name: scan.hkrt.cn
Address: 192.168.53.7
节点2:[root@rac2 bin]# vi /etc/resolv.conf search hkrt.com
nameserver 192.168.53.8
测试:[root@rac2 bin]# nslookup scan.hkrt.cnServer: 192.168.53.8Address: 192.168.53.8#53
Name: scan.hkrt.cn
Address: 192.168.53.7Name: scan.hkrt.cn
Address: 192.168.53.5Name: scan.hkrt.cn
Address: 192.168.53.6
步骤6、修改所有节点hosts文件
节点1:[root@rac1 ~]# vi /etc/hosts# Do not remove the following line, or various programs# that require network functionality will fail.127.0.0.1 localhost.localdomain localhost
::1 localhost6.localdomain6 localhost6

For Public192.168.53.1 rac1.hkrt.cn rac1

192.168.53.2 rac2.hkrt.cn rac2

For Private192.168.56.241 rac1-priv.hkrt.cn rac1-priv

192.168.56.242 rac2-priv.hkrt.cn rac2-priv

For VIP192.168.53.3 rac1-vip.hkrt.cn rac1-vip

192.168.53.4 rac2-vip.hkrt.cn rac2-vip

节点2:[root@rac2 ~]# vi /etc/hosts# Do not remove the following line, or various programs# that require network functionality will fail.127.0.0.1 localhost.localdomain localhost
::1 localhost6.localdomain6 localhost6

For Public192.168.53.1 rac1.hkrt.cn rac1

192.168.53.2 rac2.hkrt.cn rac2

For Private192.168.56.241 rac1-priv.hkrt.cn rac1-priv

192.168.56.242 rac2-priv.hkrt.cn rac2-priv

For VIP192.168.53.3 rac1-vip.hkrt.cn rac1-vip

192.168.53.4 rac2-vip.hkrt.cn rac2-vip

– 这里假如使用了GNS解析方法,那么你就无需配置/etc/hosts了,因为VIP是自动分配的。
步骤7、所有节点启动资源服务
[root@rac1 bin]# ./crsctl start hasCRS-4123: Oracle High Availability Services has been started.
[root@rac2 bin]# ./crsctl start hasCRS-4123: Oracle High Availability Services has been started.
查看资源状态:[root@rac2 bin]# ./crs_stat -tName Type Target State Host
------------------------------------------------------------ora…ER.lsnr ora…er.type ONLINE OFFLINE
ora…N1.lsnr ora…er.type ONLINE OFFLINE
ora…N2.lsnr ora…er.type ONLINE OFFLINE
ora…N3.lsnr ora…er.type ONLINE OFFLINE
ora.SVARCH.dg ora…up.type OFFLINE OFFLINE
ora.SVCRS.dg ora…up.type ONLINE ONLINE rac1
ora.SVDATA.dg ora…up.type ONLINE ONLINE rac1
ora.asm ora.asm.type ONLINE ONLINE rac1
ora.luocs.db ora…se.type ONLINE ONLINE rac1
ora.eons ora.eons.type ONLINE ONLINE rac1
ora.gsd ora.gsd.type OFFLINE OFFLINE
ora…network ora…rk.type ONLINE OFFLINE
ora.oc4j ora.oc4j.type OFFLINE OFFLINE
ora.ons ora.ons.type ONLINE OFFLINE
ora…SM1.asm application ONLINE ONLINE rac1
ora…C1.lsnr application ONLINE OFFLINE
ora.rac1.gsd application OFFLINE OFFLINE
ora.rac1.ons application ONLINE OFFLINE
ora.rac1.vip ora…t1.type ONLINE OFFLINE
ora…SM2.asm application ONLINE ONLINE rac2
ora…C2.lsnr application ONLINE OFFLINE
ora.rac2.gsd application OFFLINE OFFLINE
ora.rac2.ons application ONLINE OFFLINE
ora.rac2.vip ora…t1.type ONLINE OFFLINE
ora…ry.acfs ora…fs.type ONLINE ONLINE rac1
ora.scan1.vip ora…ip.type ONLINE OFFLINE
ora.scan2.vip ora…ip.type ONLINE OFFLINE
ora.scan3.vip ora…ip.type ONLINE OFFLINE
步骤8、修改与公共网络相关的资源信息
从上面资源状态可以看出,很多资源都是OFFLINE状态,这是因为有许多资源是和PUBLIC网络绑定的,PUBLIC网络修改,有关系的资源都无法启动,包括:network(11.2.0.2以上版本)、SCAN VIP、SCAN LISTENER、VIP、LOCAL LISTENER、GNS VIP(如果有)。
这里再次扩展一下:如果你的RAC是11.2.0.2版本以上,那么所以需要先修改network网络资源:
查看当前network配置:
[grid@pos1 ~]$ srvctl config network
Network exists: 1/192.168.1.0/255.255.255.0/bond0, type static
– 这是我另一套11.2.0.3版本的RAC,其中exists后面的第一个1就是network number
修改network网络资源配置方法:

./srvctl modify network -k 1 -S 192.168.53.0/255.255.255.0/eth0 -v

简单说明:-k指定的是network number,就是上面查询出来的。-S 指定新的子网地址/新的子网掩码/新接口。
但我当前RAC的版本为11.2.0.1,srvctl还没增强。
[root@rac2 bin]# ./srvctl config network
Usage: srvctl []
commands: enable|disable|start|stop|relocate|status|add|remove|modify|getenv|setenv|unsetenv|config
objects: database|instance|service|nodeapps|vip|asm|diskgroup|listener|srvpool|server|scan|scan_listener|oc4j|home|filesystem|gns
For detailed help on each command and object and its options use:
srvctl -h or
srvctl -h
PRKO-2011 : Invalid object specified on command line: network
1)回到正题,重新配置VIP和LOCAL LISTENER
停止VIP资源和本地[root@rac2 bin]# ./crsctl stop resource ora.rac1.vip [root@rac2 bin]# ./crsctl stop resource ora.rac2.vip
停止本地监听器[root@rac2 bin]# ./crsctl stop resource ora.rac1.LISTENER_RAC1.lsnr[root@rac2 bin]# ./crsctl stop resource ora.rac2.LISTENER_RAC2.lsnr
修改VIP资源信息:[root@rac2 bin]# ./srvctl modify nodeapps -A 192.168.53.3/255.255.255.0/eth0 -n rac1[root@rac2 bin]# ./srvctl modify nodeapps -A 192.168.53.4/255.255.255.0/eth0 -n rac2
启动VIP资源:[root@rac2 bin]# ./crsctl start resource ora.rac1.vipCRS-2672: Attempting to start ‘ora.rac1.vip’ on 'rac1’CRS-2676: Start of ‘ora.rac1.vip’ on ‘rac1’ succeeded
[root@rac2 bin]# ./crsctl start resource ora.rac2.vipCRS-2672: Attempting to start ‘ora.rac2.vip’ on 'rac2’CRS-2676: Start of ‘ora.rac2.vip’ on ‘rac2’ succeeded

启动本地监听器并查看状态:[root@rac2 bin]# ./srvctl start listener [root@rac2 bin]# ./srvctl status listenerListener LISTENER is enabled
Listener LISTENER is running on node(s): rac1,rac2

2)重新配置SCAN VIP和SCAN LISTENER
查看当前SCAN和SCAN LISTENER配置信息:[root@rac2 bin]# ./srvctl config scanSCAN name: scan.hkrt.cn, Network: 1/192.168.53.0/255.255.255.0/eth0
SCAN VIP name: scan1, IP: /192.168.77.246/192.168.77.246SCAN VIP name: scan2, IP: /192.168.77.247/192.168.77.247SCAN VIP name: scan3, IP: /192.168.77.245/192.168.77.245-- 发现还是原有的IP信息
停止SCAN和SCAN监听器:[root@rac2 bin]# ./srvctl stop scan[root@rac2 bin]# ./srvctl stop scan_listener
删除SCAN和SCAN监听器:[root@rac2 bin]# ./srvctl remove scanRemove the scan? (y/[n]) y
[root@rac2 bin]# ./srvctl remove scan_listenerRemove scan listener? (y/[n]) y

重新添加SCAN:[root@rac2 bin]# ./srvctl add scan -n scan.hkrt.cn -k 1 -S 192.168.53.0/255.255.255.0/eth0-- 这个参数设置很熟悉吧,就是上面network的时候一样,说明也一样。
重新添加SCAN监听器:[root@rac2 bin]# ./srvctl add scan_listener
启动SCAN和SCAN监听器:[root@rac2 bin]# ./srvctl start scan[root@rac2 bin]# ./srvctl start scan_listener
再次查看[root@rac2 bin]# ./srvctl config scanSCAN name: scan.hkrt.cn, Network: 1/192.168.53.0/255.255.255.0/eth0
SCAN VIP name: scan1, IP: /scan.hkrt.cn/192.168.53.7SCAN VIP name: scan2, IP: /scan.hkrt.cn/192.168.53.5SCAN VIP name: scan3, IP: /scan.hkrt.cn/192.168.53.6-- 好,已经按照我们的意思去修改了。
步骤9、修改参数(非绝对)
到这里结束了吗?没有,我们还需要确认一个地方,那就是数据库LOCAL_LISTENER参数,如果你是采用了VIP来设置的,那么需要如下方式进行修改:
SQL> alter system set local_listener=’(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.53.3)(PORT=1521))))’ scope=both sid=‘rac1’;
SQL> alter system set local_listener=’(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.53.4)(PORT=1521))))’ scope=both sid=‘rac2’;
但我这里是使用VIP名称的,所以不做更改:
SQL> show parameter local_listener
NAME TYPE VALUE
———————————— ———————- ——————————
local_listener string (DESCRIPTION=(ADDRESS_LIST=(AD
DRESS=(PROTOCOL=TCP)(HOST=rac2
-vip)(PORT=1521))))
最后我们还有必要更改客户端配置(在通过VIP连接的情况下,使用SCAN域名就不必操作)。
步骤10、检查RAC状态
好,为安全我们还是reboot system并进行检查:
1)RAC资源状态[root@rac2 bin]# ./crs_stat -tName Type Target State Host
------------------------------------------------------------ora…ER.lsnr ora…er.type ONLINE ONLINE rac1
ora…N1.lsnr ora…er.type ONLINE ONLINE rac1
ora…N2.lsnr ora…er.type ONLINE ONLINE rac2
ora…N3.lsnr ora…er.type ONLINE ONLINE rac2
ora.SVARCH.dg ora…up.type OFFLINE OFFLINE
ora.SVCRS.dg ora…up.type ONLINE ONLINE rac1
ora.SVDATA.dg ora…up.type ONLINE ONLINE rac1
ora.asm ora.asm.type ONLINE ONLINE rac1
ora.luocs.db ora…se.type ONLINE ONLINE rac2
ora.eons ora.eons.type ONLINE ONLINE rac1
ora.gsd ora.gsd.type OFFLINE OFFLINE
ora…network ora…rk.type ONLINE ONLINE rac1
ora.oc4j ora.oc4j.type OFFLINE OFFLINE
ora.ons ora.ons.type ONLINE ONLINE rac1
ora…SM1.asm application ONLINE ONLINE rac1
ora…C1.lsnr application ONLINE ONLINE rac1
ora.rac1.gsd application OFFLINE OFFLINE
ora.rac1.ons application ONLINE ONLINE rac1
ora.rac1.vip ora…t1.type ONLINE ONLINE rac1
ora…SM2.asm application ONLINE ONLINE rac2
ora…C2.lsnr application ONLINE ONLINE rac2
ora.rac2.gsd application OFFLINE OFFLINE
ora.rac2.ons application ONLINE ONLINE rac2
ora.rac2.vip ora…t1.type ONLINE ONLINE rac2
ora…ry.acfs ora…fs.type ONLINE ONLINE rac1
ora.scan1.vip ora…ip.type ONLINE ONLINE rac1
ora.scan2.vip ora…ip.type ONLINE ONLINE rac2
ora.scan3.vip ora…ip.type ONLINE ONLINE rac2

OK 正常。
2)SCAN和SCAN LISTENER、LOCAL LISTENER状态:[root@rac2 bin]# ./srvctl config scanSCAN name: scan.hkrt.cn, Network: 1/192.168.53.0/255.255.255.0/eth0
SCAN VIP name: scan1, IP: /scan.hkrt.cn/192.168.53.7SCAN VIP name: scan2, IP: /scan.hkrt.cn/192.168.53.5SCAN VIP name: scan3, IP: /scan.hkrt.cn/192.168.53.6
[root@rac2 bin]# ./srvctl config scan_listenerSCAN Listener LISTENER_SCAN1 exists. Port: TCP:1521SCAN Listener LISTENER_SCAN2 exists. Port: TCP:1521SCAN Listener LISTENER_SCAN3 exists. Port: TCP:1521
[root@rac2 bin]# ./srvctl status listenerListener LISTENER is enabled
Listener LISTENER is running on node(s): rac1,rac2

[grid@rac2 ~]$ lsnrctl status

LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 25-OCT-2012 10:50:25
Copyright © 1991, 2009, Oracle. All rights reserved.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=LISTENER)))STATUS of the LISTENER
------------------------Alias LISTENER
Version TNSLSNR for Linux: Version 11.2.0.1.0 - ProductionStart Date 25-OCT-2012 10:48:53Uptime 0 days 0 hr. 1 min. 32 sec
Trace Level off
Security ON: Local OS AuthenticationSNMP OFF
Listener Parameter File /u01/app/11.2.0/grid/network/admin/listener.ora
Listener Log File /u01/app/grid/diag/tnslsnr/rac2/listener/alert/log.xml
Listening Endpoints Summary… (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=LISTENER))) (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.53.2)(PORT=1521))) (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.53.4)(PORT=1521)))Services Summary…Service “+ASM” has 1 instance(s). Instance “+ASM2”, status READY, has 1 handler(s) for this service…Service “luocs” has 1 instance(s). Instance “luocs2”, status READY, has 1 handler(s) for this service…Service “luocsXDB” has 1 instance(s). Instance “luocs2”, status READY, has 1 handler(s) for this service…The command completed successfully

[grid@rac2 ~]$ lsnrctl status listener_scan2

LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 25-OCT-2012 10:50:34
Copyright © 1991, 2009, Oracle. All rights reserved.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=LISTENER_SCAN2)))STATUS of the LISTENER
------------------------Alias LISTENER_SCAN2
Version TNSLSNR for Linux: Version 11.2.0.1.0 - ProductionStart Date 25-OCT-2012 10:48:51Uptime 0 days 0 hr. 1 min. 43 sec
Trace Level off
Security ON: Local OS AuthenticationSNMP OFF
Listener Parameter File /u01/app/11.2.0/grid/network/admin/listener.ora
Listener Log File /u01/app/11.2.0/grid/log/diag/tnslsnr/rac2/listener_scan2/alert/log.xml
Listening Endpoints Summary… (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=LISTENER_SCAN2))) (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.53.5)(PORT=1521)))Services Summary…Service “luocs” has 2 instance(s). Instance “luocs1”, status READY, has 1 handler(s) for this service… Instance “luocs2”, status READY, has 1 handler(s) for this service…Service “luocsXDB” has 2 instance(s). Instance “luocs1”, status READY, has 1 handler(s) for this service… Instance “luocs2”, status READY, has 1 handler(s) for this service…The command completed successfully

SQL> select instance_name, status from gv$instance;
INSTANCE_NAME STATUS
-------------------------------- ------------------------luocs2 OPEN
luocs1 OPEN
到这里,我的RAC就完成了PUBLIC IP、VIP、SCAN IP的完美修改。
说在最后:此番过程我一次成功,但我不建议大家直接在生产系统中操作应用,务必要经过相同环境的测试并确定完美无误之后,经过领导的批准下再去操作。我这里因为是测试库,也有之前做过的经历,有十足的把握和出问题也无所谓的心里安慰,才放手去做的。

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论