1 IP 地址信息
修改之前的IP 地址:
[root@rac1 ~]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain
192.168.1.56 rac1
192.168.1.57 rac1-vip
192.168.56.100 rac1-priv
192.168.1.58 rac2
192.168.1.59 rac2-vip
192.168.56.101 rac2-priv
192.168.1.60 scan-cluster
修改后的IP 地址:
[root@rac1 ~]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain
192.168.58.56 rac1
192.168.58.57 rac1-vip
192.168.57.100 rac1-priv
192.168.58.58 rac2
192.168.58.59 rac2-vip
192.168.57.101 rac2-priv
192.168.58.60 scan-cluster
2 具体操作
2.1 备份 OCR 和 GPNP profile 文件
在我们修改 在我们修改 RACRAC 的 IP 地址之前,我们需要先备份一下 OCR 文件,因为 IP 地址信息是记录在OCR 中的,同时还要注意一点,从 Oracle 11.2.0.2之后,private network的配置除了记录在OCR中之外,还会记录在 GPNP profile里。
如果 private network不可用或者配置正确,就会导致 CRSD 进程不能启动。
因此在我们操作之前,先手工备份 GPNP profile 和 OCR:
用grid用户执行:
节点1,节点2 都要执行
[grid@rac1 peer]$ cd $ORACLE_HOME/gpnp/rac1/profiles/peer/
[grid@rac1 peer]$ cp -p profile.xml profile.xml.bak
--执行手工OCR的备份
cd 到grid_home
[root@rac1 ~]# cd /u01/app/11.2.0/grid/bin/
[root@rac1 bin]# ./ocrconfig -manualbackup
rac1 2018/05/15 09:35:04 /u01/app/11.2.0/grid/cdata/rac-cluster/backup_20180515_093504.ocr
--查看ocr的手工备份
节点1执行即可
[root@rac1 bin]# ./ocrconfig -showbackup manual
rac1 2018/05/15 09:35:04 /u01/app/11.2.0/grid/cdata/rac-cluster/backup_20180515_093504.ocr
如果操作出现问题,我们可以通过我们的OCR备份进行恢复
2.2 关闭所有的crs资源,仅保留crs的后台进程
2.2.1 查看RAC资源当前状态
[root@rac1 bin]# cd /u01/app/11.2.0/grid/bin/
[root@rac1 bin]# ./crs_stat -t
Name Type Target State Host
------------------------------------------------------------
ora.DATA.dg ora....up.type ONLINE ONLINE rac1
ora....ER.lsnr ora....er.type ONLINE ONLINE rac1
ora....N1.lsnr ora....er.type ONLINE ONLINE rac1
ora....VOTE.dg ora....up.type ONLINE ONLINE rac1
ora.asm ora.asm.type ONLINE ONLINE rac1
ora.cvu ora.cvu.type ONLINE ONLINE rac2
ora.gsd ora.gsd.type OFFLINE OFFLINE
ora....network ora....rk.type ONLINE ONLINE rac1
ora.oc4j ora.oc4j.type ONLINE ONLINE rac2
ora.ons ora.ons.type ONLINE ONLINE rac1
ora.orcl.db ora....se.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.scan1.vip ora....ip.type ONLINE ONLINE rac1
2.2.2 停止相关资源
[root@rac1 ~]# cd /u01/app/11.2.0/grid/bin
[root@rac1 bin]# ./srvctl stop database -d orcl
[root@rac1 bin]# ./srvctl stop listener
[root@rac1 bin]# ./srvctl stop scan_listener
[root@rac1 bin]# ./srvctl stop scan
[root@rac1 bin]# ./srvctl stop cvu
[root@rac1 bin]# ./srvctl stop nodeapps -n rac1
[root@rac1 bin]# ./srvctl stop nodeapps -n rac2
注:
这个ora.cvu 是oracle的一个数据库健康检查进程,他会调用cluster verification utility 工具执行检查工作,然后将日志输出到$GRID_HOME/log/nodename/cvu/cvulog/cvuxxxx.log.
如下:
[grid@rac1 cvulog]$ pwd
/u01/app/11.2.0/grid/log/rac1/cvu/cvulog
[grid@rac1 cvulog]$ ls
cvu20171024150610.log
2.2.3 再次检查资源状态
相关资源已经停止
[root@rac1 bin]# ./crs_stat -t
Name Type Target State Host
------------------------------------------------------------
ora.DATA.dg ora....up.type ONLINE ONLINE rac1
ora....ER.lsnr ora....er.type OFFLINE OFFLINE
ora....N1.lsnr ora....er.type OFFLINE OFFLINE
ora....VOTE.dg ora....up.type ONLINE ONLINE rac1
ora.asm ora.asm.type ONLINE ONLINE rac1
ora.cvu ora.cvu.type OFFLINE OFFLINE
ora.gsd ora.gsd.type OFFLINE OFFLINE
ora....network ora....rk.type OFFLINE OFFLINE
ora.oc4j ora.oc4j.type ONLINE ONLINE rac2
ora.ons ora.ons.type OFFLINE OFFLINE
ora.orcl.db ora....se.type OFFLINE OFFLINE
ora....SM1.asm application ONLINE ONLINE rac1
ora....C1.lsnr application OFFLINE OFFLINE
ora.rac1.gsd application OFFLINE OFFLINE
ora.rac1.ons application OFFLINE OFFLINE
ora.rac1.vip ora....t1.type OFFLINE OFFLINE
ora....SM2.asm application ONLINE ONLINE rac2
ora....C2.lsnr application OFFLINE OFFLINE
ora.rac2.gsd application OFFLINE OFFLINE
ora.rac2.ons application OFFLINE OFFLINE
ora.rac2.vip ora....t1.type OFFLINE OFFLINE
ora.scan1.vip ora....ip.type OFFLINE OFFLINE
注:因为11g的RAC使用ASM来存放OCR和Votingdisk , 所以要修改相关的配置信息,就不能停止ASM实例。
具体的CRS的后台进程可以通过如下命令查看,这里仅仅是示例,不要去操作:
[root@rac1 bin]# pwd
/u01/app/11.2.0/grid/bin
[root@rac1 bin]# ./crsctl stop crs -f
2.3 修改节点1,节点2 ip 地址
因为rac public,vip 地址修改为新的地址段,所以要先修改网卡为新的地址段,否则后面修改vip 地址时会报如下错误:
[root@rac1 bin]# pwd
/u01/app/11.2.0/grid/bin
[root@rac1 bin]# ./srvctl modify nodeapps -n rac1 -A 192.168.58.57/255.255.255.0/enp0s3
PRCN-2070 : Failed to validate network. No interface on localnode matches required network (subnet: 192.168.58.0, netmask: 255.255.255.0 adapters: enp0s3).
--节点1
[root@rac1 ~]# cd /etc/sysconfig/network-scripts/
[root@rac1 network-scripts]# vi ifcfg-enp0s3
[root@rac1 ~]# service network restart
[root@rac1 bin]# ifconfig
enp0s3: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.58.56 netmask 255.255.255.0 broadcast 192.168.58.255
inet6 fe80::cac8:841c:ca76:5f9c prefixlen 64 scopeid 0x20<link>
ether 08:00:27:70:72:de txqueuelen 1000 (Ethernet)
RX packets 9352 bytes 4102422 (3.9 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 5018 bytes 566138 (552.8 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
--节点2
[root@rac2 ~]# cd /etc/sysconfig/network-scripts/
[root@rac2 network-scripts]# vi ifcfg-enp0s3
[root@rac2 ~]# ifconfig
enp0s3: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.58.58 netmask 255.255.255.0 broadcast 192.168.58.255
inet6 fe80::e5db:fdc:1739:d1e4 prefixlen 64 scopeid 0x20<link>
ether 08:00:27:53:7a:7f txqueuelen 1000 (Ethernet)
RX packets 3538 bytes 522058 (509.8 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 635 bytes 95776 (93.5 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
2.4 修改public IP地址
注:如果修改的网段相同,可以不做这一步。
查看当前配置
[root@rac1 bin]# su - grid
[grid@rac1 ~]$ oifcfg getif -global
enp0s3 192.168.1.0 global public
enp0s8 192.168.56.0 global cluster_interconnect
改变public IP信息:
--删除public
[grid@rac1 ~]$ oifcfg delif -global enp0s3
--添加public
[grid@rac1 ~]$ oifcfg setif -global enp0s3/192.168.58.0:public
注意:这里IP地址最一个为0.代表的是一个网段。
修改的时候要切记。否在在启动OCR时会报如下错误:
[CRSOCR][4054413904] OCR context init failure.Error: PROC-44:网络地址和网络接口操作中出错网络地址和网络接口操作错误
--查看修改结果
[grid@rac1 ~]$ oifcfg getif -global
enp0s8 192.168.56.0 global cluster_interconnect
enp0s3 192.168.58.0 global public
2.5 用grid用户修改VIP 地址
2.5.1 查看当前的VIP 信息
[grid@rac1 ~]$ srvctl config nodeapps -a
Network exists: 1/192.168.1.0/255.255.255.0/enp0s3, type static
VIP exists: /rac1-vip/192.168.1.57/192.168.1.0/255.255.255.0/enp0s3, hosting node rac1
VIP exists: /rac2-vip/192.168.1.59/192.168.1.0/255.255.255.0/enp0s3, hosting node rac2
--验证VIP的状态
[grid@rac1 ~]$ crsctl stat res -t
-------------------------------------------------------------------------------
ora.rac1.vip
1 OFFLINE OFFLINE
ora.rac2.vip
1 OFFLINE OFFLINE
ora.scan1.vip
1 OFFLINE OFFLINE
确保相关资源已经offline,如果没有,手工stop一下:
[grid@rac1 ~]$ srvctl stop instance -d orcl -n rac1
[grid@rac1 ~]$ srvctl stop vip -n rac1 -f
2.5.2 用root用户修改VIP 信息
[root@rac1 bin]# cd /u01/app/11.2.0/grid/bin
[root@rac1 bin]# ./srvctl modify nodeapps -n rac1 -A 192.168.58.57/255.255.255.0/enp0s3
[root@rac1 bin]# ./srvctl modify nodeapps -n rac2 -A 192.168.58.59/255.255.255.0/enp0s3
2.5.3 验证VIP地址修改
[root@rac1 bin]# ./srvctl config nodeapps -a
Network exists: 1/192.168.58.0/255.255.255.0/enp0s3, type static
VIP exists: /192.168.58.57/192.168.58.57/192.168.58.0/255.255.255.0/enp0s3, hosting node rac1
VIP exists: /192.168.58.59/192.168.58.59/192.168.58.0/255.255.255.0/enp0s3, hosting node rac2
2.6 修改private IP地址
--确认网卡配置:
[root@rac1 bin]# pwd
/u01/app/11.2.0/grid/bin
[root@rac1 bin]# ./oifcfg getif -global
enp0s8 192.168.56.0 global cluster_interconnect
enp0s3 192.168.58.0 global public
--删除Private 配置
[root@rac1 bin]# ./oifcfg delif -global enp0s8
PRIF-31: Failed to delete the specified network interface because it is the last private interface
这里的private 无法删除。
在11.2.0.2 以后的版本,我们无法直接删除最后一个private IP,如果要删除,必须先添加一个。然后重启CRS,在删除旧的信息private 信息即可。
因此正确的操作步骤如下。
2.6.1 确认网卡配置
[grid@rac1 ~]$ oifcfg getif -global
enp0s8 192.168.56.0 global cluster_interconnect
enp0s3 192.168.58.0 global public
2.6.2 用grid用户添加一个新的private 配置
[grid@rac1 ~]$ oifcfg setif -global enp0s8/192.168.57.0:cluster_interconnect
这里的网卡名称若相同,则网段必须不同。
2.6.3 验证
[grid@rac1 ~]$ oifcfg getif -global
enp0s8 192.168.56.0 global cluster_interconnect
enp0s3 192.168.58.0 global public
enp0s8 192.168.57.0 global cluster_interconnect
2.7 修改RAC SCAN IP
--查看scan状态:
[grid@rac1 ~]$ srvctl config scan
SCAN name: scan-cluster, Network: 1/192.168.58.0/255.255.255.0/enp0s3
SCAN VIP name: scan1, IP: /scan-cluster/192.168.1.60
--确认scan有没有关闭,没有关闭使用以下命令关闭
[grid@rac1 ~]$ srvctl status scan
SCAN VIP scan1 is enabled
SCAN VIP scan1 is not running
[grid@rac1 ~]$ srvctl stop scan_listener
[grid@rac1 ~]$ srvctl stop scan
--修改scan ip
[root@rac1 ~]# cd /u01/app/11.2.0/grid/bin
[root@rac1 bin]# ./srvctl modify scan -n 192.168.58.60
--查看修改结果
[root@rac1 bin]# ./srvctl config scan
SCAN name: 192.168.58.60, Network: 1/192.168.58.0/255.255.255.0/enp0s3
SCAN VIP name: scan1, IP: /192.168.58.60/192.168.58.60
注意:
与修改private ip ,vip 不一样,修改scan ip 无需停止数据库实例,asm或者重启crs,相对比较简单。
2.8 修改Private IP地址
--节点1:
说明:Private IP必须要先修改然后再修改网卡的IP地址。
[root@rac1 network-scripts]# vi ifcfg-enp0s8
[root@rac1 network-scripts]# service network restart
Restarting network (via systemctl): [ OK ]
[root@rac1 network-scripts]# ifconfig
enp0s8: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.57.100 netmask 255.255.255.0 broadcast 192.168.57.255
inet6 fe80::9826:ab12:7992:dc8a prefixlen 64 scopeid 0x20<link>
ether 08:00:27:68:4f:f5 txqueuelen 1000 (Ethernet)
RX packets 113467 bytes 79270817 (75.5 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 98994 bytes 62098367 (59.2 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
--节点2
[root@rac2 network-scripts]# vi ifcfg-enp0s8
[root@rac2 network-scripts]# service network restart
Restarting network (via systemctl): [ OK ]
[root@rac2 network-scripts]# ifconfig
enp0s8: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.57.101 netmask 255.255.255.0 broadcast 192.168.57.255
inet6 fe80::48a7:b0cb:fcde:7f57 prefixlen 64 scopeid 0x20<link>
ether 08:00:27:f6:34:73 txqueuelen 1000 (Ethernet)
RX packets 100653 bytes 59236192 (56.4 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 113659 bytes 86089535 (82.1 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
2.9 用root停止所有节点上的clusterware并禁止其自启动
所有的节点执行
[root@rac1 bin]# cd /u01/app/11.2.0/grid/bin
[root@rac1 bin]# ./crsctl stop crs
[root@rac1 bin]# ./crsctl disable crs
[root@rac2 bin]# cd /u01/app/11.2.0/grid/bin
[root@rac2 bin]# ./crsctl disable crs
2.10 修改/etc/hosts
所有节点都执行
[root@rac1 bin]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain
192.168.58.56 rac1
192.168.58.57 rac1-vip
192.168.57.100 rac1-priv
192.168.58.58 rac2
192.168.58.59 rac2-vip
192.168.57.101 rac2-priv
192.168.58.60 scan-cluster
2.11 在所有节点用root用户enable并启动clusterware
--节点1
[root@rac1 bin]# ./crsctl enable crs
CRS-4622: Oracle High Availability Services autostart is enabled.
[root@rac1 bin]# ./crsctl start crs
--节点2
[root@rac2 bin]# ./crsctl enable crs
CRS-4622: Oracle High Availability Services autostart is enabled.
[root@rac2 bin]# ./crsctl start crs
2.12 删除旧的Private 配置信息并确认Private 修改成功
[grid@rac1 ~]$ oifcfg delif -global enp0s8/192.168.56.0:cluster_interconnect
--确认添加 成功
[grid@rac1 ~]$ oifcfg getif -global
enp0s3 192.168.58.0 global public
enp0s8 192.168.57.0 global cluster_interconnect
2.13 检查所有进程状态
[root@rac1 bin]# ./srvctl start listener
[root@rac1 bin]# ./srvctl start scan
[root@rac1 bin]# ./srvctl start cvu
[root@rac1 bin]# ./srvctl start database -d orcl
[root@rac1 bin]# ./crs_stat -t
Name Type Target State Host
------------------------------------------------------------
ora.DATA.dg ora....up.type ONLINE ONLINE rac1
ora....ER.lsnr ora....er.type ONLINE ONLINE rac1
ora....N1.lsnr ora....er.type ONLINE ONLINE rac2
ora....VOTE.dg ora....up.type ONLINE ONLINE rac1
ora.asm ora.asm.type ONLINE ONLINE rac1
ora.cvu ora.cvu.type ONLINE ONLINE rac2
ora.gsd ora.gsd.type OFFLINE OFFLINE
ora....network ora....rk.type ONLINE ONLINE rac1
ora.oc4j ora.oc4j.type ONLINE ONLINE rac1
ora.ons ora.ons.type ONLINE ONLINE rac1
ora.orcl.db ora....se.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.scan1.vip ora....ip.type ONLINE ONLINE rac2
个人博客地址:
http://www.cndba.cn/leo1990
版权声明:本文为博主原创文章,未经博主允许不得转载。