说明:
版本:Oracle 11.2.0.4.0 RAC
将Oracle RAC节点VIP2地址从100.1.0.106改成100.1.0.108(相同网段)。
注意:
1.一般来说,只有在10.2.0.3版本之前的版本中才需要完全停机。
2.从10.2.0.3开始,ASM/数据库实例对VIP资源的依赖关系将被删除,因此可以不关闭ASM/数据库实例的情况下修改VIP,当VIP关闭时,只有到数据库的客户端连接将受到影响。
3.如果修改是特定于节点的,那么在更改期间,只有与该节点的连接才会受到影响。
1.查看集群状态和IP
crsctl stat res -t
查看IP
ip a
3: ens192: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 00:50:56:b1:03:db brd ff:ff:ff:ff:ff:ff
inet 100.1.0.45/24 brd 100.1.0.255 scope global ens192
valid_lft forever preferred_lft forever
inet 100.1.0.107/24 brd 100.1.0.255 scope global secondary ens192:1
valid_lft forever preferred_lft forever
inet 100.1.0.106/24 brd 100.1.0.255 scope global secondary ens192:2
valid_lft forever preferred_lft forever
inet6 fe80::250:56ff:feb1:3db/64 scope link
valid_lft forever preferred_lft forever
2.备份OCR
su - root
cd /oracle/grid/product/11.2/bin
./ocrconfig -manualbackup
日志如下:
cjc-db-06 2023/04/21 17:13:11 /oracle/grid/product/11.2/cdata/test-clu/backup_20230421_171311.ocr
3.备份profile(双节点、grid用户备份)
su - grid
cd $ORACLE_HOME/gpnp/profiles/peer
cp profile.xml profile.xml_20230421bak
cp profile_orig.xml profile_orig.xml_20230421bak
4.修改VIP
查看
srvctl config nodeapps
日志如下:
Network exists: 1/100.1.0.0/255.255.255.0/ens192, type static
VIP exists: /cjc-db-05-vip/100.1.0.105/100.1.0.0/255.255.255.0/ens192, hosting node cjc-db-05
VIP exists: /cjc-db-06-vip/100.1.0.106/100.1.0.0/255.255.255.0/ens192, hosting node cjc-db-06
GSD exists
ONS exists: Local port 6100, remote port 6200, EM port 2016
修改
su - root
cd /oracle/grid/product/11.2/bin
./srvctl modify nodeapps -n cjc-db-06 -A 100.1.0.108/255.255.255.0/ens192
./srvctl config nodeapps
日志
Network exists: 1/100.1.0.0/255.255.255.0/ens192, type static
VIP exists: /cjc-db-05-vip/100.1.0.105/100.1.0.0/255.255.255.0/ens192, hosting node cjc-db-05
VIP exists: /100.1.0.108/100.1.0.108/100.1.0.0/255.255.255.0/ens192, hosting node cjc-db-06
GSD exists
ONS exists: Local port 6100, remote port 6200, EM port 2016
5.查询并修改local_listener、remote_listener参数
show parameter local_listener;
local_listener string (ADDRESS=(PROTOCOL=TCP)(HOST=100.1.0.106)(PORT=1521))
修改
alter system set local_listener="(ADDRESS=(PROTOCOL=TCP)(HOST=100.1.0.108)(PORT=1521))";
show parameter remote_listener;
如果涉及VIP地址,需要修改对应的参数
6.检查并修改listener.ora和tnsnames.ora文件
cd $ORACLE_HOME/network/admin
cat listener.ora
cat tnsnames.ora
如果文件中涉及VIP地址,需要修改对应的信息。
7.停用crs
su - root
cd /oracle/grid/product/11.2/bin
./crsctl stop crs
8.修改 /etc/hosts 文件
vi /etc/hosts
......
# Virtual
100.1.0.105 cjc-db-05-vip
#100.1.0.106 cjc-db-06-vip
100.1.0.108 cjc-db-06-vip
......
9.启动集群
cd /oracle/grid/product/11.2/bin
./crsctl start crs
10.检查
oifcfg getif -global
root@cjc-db-06:/oracle/grid/product/11.2/bin#su - grid
Last login: Fri Apr 21 17:19:30 CST 2023 on pts/0
grid@cjc-db-06:/home/grid$oifcfg getif -global
ens192 100.1.0.0 global public
ens161 100.1.7.0 global cluster_interconnect
srvctl config nodeapps
grid@cjc-db-06:/home/grid$srvctl config nodeapps
Network exists: 1/100.1.0.0/255.255.255.0/ens192, type static
VIP exists: /cjc-db-05-vip/100.1.0.105/100.1.0.0/255.255.255.0/ens192, hosting node cjc-db-05
VIP exists: /100.1.0.108/100.1.0.108/100.1.0.0/255.255.255.0/ens192, hosting node cjc-db-06
GSD exists
ONS exists: Local port 6100, remote port 6200, EM port 2016
如果非同一网段,重启集群之前还需要修改其他配置
–查看当前配置:
oifcfg getif -global
日志如下:
ens192 100.1.0.0 global public
ens161 100.1.7.0 global cluster_interconnect
–删除当前配置
./oifcfg delif -global eth0
–添加当前配置
./oifcfg setif -global eth0/100.16.0.0:public
./oifcfg setif -global eth1/192.168.0.0:cluster_interconnect
–查看当前配置:
oifcfg getif -global
eth0 100.16.0.0 global public
eth1 192.168.0.0 global cluster_interconnect
###chenjuchao 20230422###
欢迎关注我的公众号《IT小Chen》