主要实施步骤如下:
环境说明:服务器操作系统centos7.3、oracle RAC 11.2.0.4
说明:服务器实际ip变动,虚拟ip不变
#pub 80.150.20.101 msrkzyk1 80.150.20.102 msrkzyk2 #pri 172.168.1.1 msrkzyk1p 172.168.1.2 msrkzyk2p #vip 80.150.20.103 msrkzyk1v 80.150.20.104 msrkzyk2v #scan 80.150.20.105 msrkscan ----- --改后 #pub 80.150.22.101 msrkzyk1 80.150.22.102 msrkzyk2 #pri 172.168.1.1 msrkzyk1p 172.168.1.2 msrkzyk2p #vip 80.150.22.103 msrkzyk1v 80.150.22.104 msrkzyk2v #scan 80.150.22.105 msrkscan
1、[root@node-1 ~]# crs_stop -all
[root@node-1 ~]# crsctl stop crs -f #强制停止
2、修改服务器的物理ip
3、然后再vi修改/etc/hosts文件
4、重新配置免密ssh
su - grid ssh-keygen ssh-copy-id grid@80.150.22.101 ssh-copy-id grid@80.150.22.102 ssh-copy-id grid@172.168.1.1 ssh-copy-id grid@172.168.1.2 ssh grid@172.168.1.1 date ssh grid@172.168.1.2 date ssh grid@80.150.22.101 date ssh grid@80.150.22.102 date ssh grid@msrkzyk1 date ssh grid@msrkzyk2 date ssh grid@msrkzyk1p date ssh grid@msrkzyk2p date su - oracle ssh-keygen ssh-copy-id oracle@80.150.22.101 ssh-copy-id oracle@80.150.22.102 ssh-copy-id oracle@172.168.1.1 ssh-copy-id oracle@172.168.1.2 ssh oracle@172.168.1.1 date ssh oracle@172.168.1.2 date ssh oracle@80.150.22.101 date ssh oracle@80.150.22.102 date ssh oracle@msrkzyk1 date ssh oracle@msrkzyk2 date ssh oracle@msrkzyk1p date ssh oracle@msrkzyk2p date
5、启动crs
[root@msrkzyk2 ~]# /u01/grid/11.2/bin/crsctl start crs
注意:这里如果是按照我上面关闭crs的操作,正常数据库和监听是没有启动的,对应target和state都应该是offline:
ora.LISTENER.lsnr OFFLINE OFFLINE msrkzyk1 OFFLINE OFFLINE msrkzyk2 ora.msrkzyk.db 1 OFFLINE OFFLINE Instance Shutdown 2 OFFLINE OFFLINE Instance Shutdown
6、修改Public IP,VIP,SCAN VIP
6.1 修改Public IP
[root@msrkzyk1 ~]# find / -name oifcfg #查找命令 /u01/grid/11.2/bin/oifcfg getif [root@msrkzyk1 ~]# /u01/grid/11.2/bin/oifcfg getif #查看ip eno1 80.150.20.0 global public eno2 172.168.1.0 global cluster_interconnect #节点一设置ip,删除ip 设置ip [root@msrkzyk1 ~]# /u01/grid/11.2/bin/oifcfg delif -global eno1 #删除原public ip [root@msrkzyk1 ~]# /u01/grid/11.2/bin/oifcfg setif -global eno1/80.150.22.0:public #设置新public ip #两个节点查看ip [root@msrkzyk1 ~]# /u01/grid/11.2/bin/oifcfg getif eno2 172.168.1.0 global cluster_interconnect eno1 80.150.22.0 global public [root@msrkzyk2 ~]# /u01/grid/11.2/bin/oifcfg getif eno2 172.168.1.0 global cluster_interconnect eno1 80.150.22.0 global public
6.2 修改VIP
需要停止数据库、监听和vip,目前数据库和监听、vip都是停止的查看命令grid用户
srvctl stop vip -n msrkzyk1 #停止命令
#单独查看
[grid@msrkzyk1 ~]$ srvctl status vip -n msrkzyk1 VIP msrkzyk1v is enabled VIP msrkzyk1v is not running [grid@msrkzyk1 ~]$ srvctl status vip -n msrkzyk2 VIP msrkzyk2v is enabled VIP msrkzyk2v is not running [grid@msrkzyk1 ~]$ srvctl status database -d msrkzyk Instance msrkzyk1 is not running on node msrkzyk1 Instance msrkzyk2 is not running on node msrkzyk2 [grid@msrkzyk1 ~]$ srvctl status LISTENER -n msrkzyk1 Listener LISTENER is enabled on node(s): msrkzyk1 Listener LISTENER is not running on node(s): msrkzyk1 [grid@msrkzyk1 ~]$ srvctl status LISTENER -n msrkzyk2 Listener LISTENER is enabled on node(s): msrkzyk2 Listener LISTENER is not running on node(s): msrkzyk2
#或者
[grid@msrkzyk1 ~]$ crsctl stat res -t -------------------------------------------------------------------------------- NAME TARGET STATE SERVER STATE_DETAILS -------------------------------------------------------------------------------- Local Resources -------------------------------------------------------------------------------- ora.CRS.dg ONLINE ONLINE msrkzyk1 ONLINE ONLINE msrkzyk2 ora.DATA.dg ONLINE ONLINE msrkzyk1 ONLINE ONLINE msrkzyk2 ora.FRA.dg ONLINE ONLINE msrkzyk1 ONLINE ONLINE msrkzyk2 ora.LISTENER.lsnr OFFLINE OFFLINE msrkzyk1 OFFLINE OFFLINE msrkzyk2 ora.PIC.dg ONLINE ONLINE msrkzyk1 ONLINE ONLINE msrkzyk2 ora.asm ONLINE ONLINE msrkzyk1 Started ONLINE ONLINE msrkzyk2 Started ora.gsd OFFLINE OFFLINE msrkzyk1 OFFLINE OFFLINE msrkzyk2 ora.net1.network ONLINE OFFLINE msrkzyk1 ONLINE OFFLINE msrkzyk2 ora.ons ONLINE OFFLINE msrkzyk1 ONLINE OFFLINE msrkzyk2 -------------------------------------------------------------------------------- Cluster Resources -------------------------------------------------------------------------------- ora.LISTENER_SCAN1.lsnr 1 OFFLINE OFFLINE ora.cvu 1 OFFLINE OFFLINE ora.msrkzyk.db 1 OFFLINE OFFLINE Instance Shutdown 2 OFFLINE OFFLINE Instance Shutdown ora.msrkzyk1.vip 1 OFFLINE OFFLINE ora.msrkzyk2.vip 1 OFFLINE OFFLINE ora.oc4j 1 OFFLINE OFFLINE ora.scan1.vip 1 OFFLINE OFFLINE
查看当前vip设置 grid用户
[grid@msrkzyk1 ~]$ olsnodes -s msrkzyk1 Active msrkzyk2 Active [grid@msrkzyk1 ~]$ srvctl config vip -n msrkzyk1 VIP exists: /msrkzyk1v/80.150.22.103/80.150.20.0/255.255.255.0/eno1, hosting node msrkzyk1 [grid@msrkzyk1 ~]$ srvctl config vip -n msrkzyk2 VIP exists: /msrkzyk2v/80.150.22.104/80.150.20.0/255.255.255.0/eno1, hosting node msrkzyk2
修改vip设置 root 用户
[root@msrkzyk1 ~]# find / -name srvctl /u01/grid/11.2/bin/srvctl [root@msrkzyk1 ~]# /u01/grid/11.2/bin/srvctl modify nodeapps -n msrkzyk1 -A 80.150.22.103/255.255.255.0/eno1 [root@msrkzyk1 ~]# /u01/grid/11.2/bin/srvctl modify nodeapps -n msrkzyk2 -A 80.150.22.104/255.255.255.0/eno1
再次验证vip设置
[root@msrkzyk1 ~]# /u01/grid/11.2/bin/srvctl config vip -n msrkzyk1 VIP exists: /msrkzyk1v/80.150.22.103/80.150.22.0/255.255.255.0/eno1, hosting node msrkzyk1 [root@msrkzyk1 ~]# /u01/grid/11.2/bin/srvctl config vip -n msrkzyk2 VIP exists: /msrkzyk2v/80.150.22.104/80.150.22.0/255.255.255.0/eno1, hosting node msrkzyk2
启动vip、grid用户
[root@msrkzyk1 ~]# su - grid Last login: Tue Sep 7 14:52:57 CST 2021 on pts/1 [grid@msrkzyk1 ~]$ srvctl start vip -n msrkzyk1 [grid@msrkzyk1 ~]$ srvctl start vip -n msrkzyk2 [grid@msrkzyk1 ~]$ srvctl status vip -n msrkzyk1 VIP msrkzyk1v is enabled VIP msrkzyk1v is running on node: msrkzyk1 [grid@msrkzyk1 ~]$ srvctl status vip -n msrkzyk2 VIP msrkzyk2v is enabled VIP msrkzyk2v is running on node: msrkzyk2
启动监听
[grid@msrkzyk1 ~]$ srvctl start listener [grid@msrkzyk1 ~]$ srvctl status LISTENER Listener LISTENER is enabled Listener LISTENER is running on node(s): msrkzyk2,msrkzyk1
启动数据库
[grid@msrkzyk1 ~]$ srvctl start database -d msrkzyk [grid@msrkzyk1 ~]$ srvctl status database -d msrkzyk Instance msrkzyk1 is running on node msrkzyk1 Instance msrkzyk2 is running on node msrkzyk2
4、检查local_listener信息,不正确就需要修改(我这儿对的不用修改)
[oracle@msrkzyk1 ~]$ sqlplus / as sysdba SQL> show parameter local_listener NAME TYPE VALUE -------- --------- ---------------- local_listener string (ADDRESS=(PROTOCOL=TCP)(HOST=80.150.22.103)(PORT=1521)) #修改的命令 alter system set local_listenner='(ADDRESS=(PROTOCOL=TCP)(HOST=80.150.22.103)(PORT=1521))' sid='msrkzyk1'; alter system set local_listenner='(ADDRESS=(PROTOCOL=TCP)(HOST=80.150.22.104)(PORT=1521))' sid='msrkzyk2';
5、修改scan vip
查看scan vip的配置 grid用户
[root@msrkzyk1 ~]# su - grid [grid@msrkzyk1 ~]$ srvctl config scan SCAN name: msrkscan, Network: 1/80.150.22.0/255.255.255.0/eno1 SCAN VIP name: scan1, IP: /msrkscan/80.150.20.105
停止scan_listener和scan资源
[grid@msrkzyk1 ~]$ srvctl stop scan_listener [grid@msrkzyk1 ~]$ srvctl stop scan
--确认已经停止
[grid@msrkzyk1 ~]$ srvctl status scan_listener SCAN Listener LISTENER_SCAN1 is enabled SCAN listener LISTENER_SCAN1 is not running [grid@msrkzyk1 ~]$ srvctl status scan SCAN VIP scan1 is enabled SCAN VIP scan1 is not running
使用root用户修改scan vip
[root@msrkzyk1 ~]# /u01/grid/11.2/bin/srvctl modify scan -n msrkscan
注意:root用户执行修改,且确认/etc/hosts映射关系已经修改为新的scan VIP。
修改并启动资源库 grid用户
[grid@msrkzyk1 ~]$ srvctl modify scan_listener -u [grid@msrkzyk1 ~]$ srvctl start scan_listener
注意:执行后确认scan_listener和scan都已经启动
[grid@msrkzyk1 ~]$ srvctl status scan_listener SCAN Listener LISTENER_SCAN1 is enabled SCAN listener LISTENER_SCAN1 is running on node msrkzyk1 [grid@msrkzyk1 ~]$ srvctl status scan SCAN VIP scan1 is enabled SCAN VIP scan1 is running on node msrkzyk1
确认修改成功
[grid@msrkzyk1 ~]$ srvctl config scan SCAN name: msrkscan, Network: 1/80.150.22.0/255.255.255.0/eno1 SCAN VIP name: scan1, IP: /msrkscan/80.150.22.105 [grid@msrkzyk1 ~]$ srvctl config scan_listener SCAN Listener LISTENER_SCAN1 exists. Port: TCP:1521
6、验证整个集群
[grid@msrkzyk1 ~]$ crsctl stat res -t -------------------------------------------------------------------------------- NAME TARGET STATE SERVER STATE_DETAILS -------------------------------------------------------------------------------- Local Resources -------------------------------------------------------------------------------- ora.CRS.dg ONLINE ONLINE msrkzyk1 ONLINE ONLINE msrkzyk2 ora.DATA.dg ONLINE ONLINE msrkzyk1 ONLINE ONLINE msrkzyk2 ora.FRA.dg ONLINE ONLINE msrkzyk1 ONLINE ONLINE msrkzyk2 ora.LISTENER.lsnr ONLINE ONLINE msrkzyk1 ONLINE ONLINE msrkzyk2 ora.PIC.dg ONLINE ONLINE msrkzyk1 ONLINE ONLINE msrkzyk2 ora.asm ONLINE ONLINE msrkzyk1 Started ONLINE ONLINE msrkzyk2 Started ora.gsd OFFLINE OFFLINE msrkzyk1 OFFLINE OFFLINE msrkzyk2 ora.net1.network ONLINE ONLINE msrkzyk1 ONLINE ONLINE msrkzyk2 ora.ons ONLINE ONLINE msrkzyk1 ONLINE ONLINE msrkzyk2 -------------------------------------------------------------------------------- Cluster Resources -------------------------------------------------------------------------------- ora.LISTENER_SCAN1.lsnr 1 ONLINE ONLINE msrkzyk1 ora.cvu 1 OFFLINE OFFLINE ora.msrkzyk.db 1 ONLINE ONLINE msrkzyk1 Open 2 ONLINE ONLINE msrkzyk2 Open ora.msrkzyk1.vip 1 ONLINE ONLINE msrkzyk1 ora.msrkzyk2.vip 1 ONLINE ONLINE msrkzyk2 ora.oc4j 1 OFFLINE OFFLINE ora.scan1.vip 1 ONLINE ONLINE msrkzyk1