生产环境修改Oracle RAC IP
原文地址:https://mp.weixin.qq.com/s/nPs3vK0K0EPh5rOYhhvi3Q
目 录
1 实施目的
2 环境介绍
3 目标端Oracle RAC IP调整方法
3.1 更改PUBLIC IP
3.2 更改PRIVATE IP
3.3 更改VIP
3.4 更改SCAN IP
3.5 更改监听文件
3.6 重启RAC
1 实施目的
为了减少生产环境升级带来的风险,采用ADG的方式,先搭建主库的备库,同步数据后,备库FAILOVER,然后升级数据库后,关闭主库,将备库的IP改为主库的。 等升级成功了,修改备库IP为主库的。如果实际失败,主库继续提供服务,备库回滚后继续同步。
2 环境介绍
当前主备库的数据库版本信息:
OS版本:CENTOS 7.9
ORACLE版本:11.2.0.4 RAC
| 生产环境主库IP | 生产环境备库IP |
|---|---|
| 10.20.18.12 wego1 | 10.20.17.146 wewin1 |
| 10.20.18.10 wego2 | 10.20.17.147 wewin2 |
| 10.20.18.18 wego1-vip | 10.20.17.148 wewin1-vip |
| 10.20.18.16 wego2-vip | 10.20.17.149 wewin2-vip |
| 1.1.1.12 wego1-priv | 192.168.1.130 wewin1-priv |
| 1.1.1.10 wego2-priv | 192.168.1.131 wewin2-priv |
| 10.20.18.17 wego-scan | 10.20.17.143 wewin-scan |
说明:主备库的网段是不一样的。
3 目标端Oracle RAC IP调整方法
先把主库服务器关闭,防止IP冲突。
RAC 修改IP 的操作本身只有几个步骤, 因为涉及到OCR,所以要格外小心。
Public/Private对应的的主机名不能更改,如果需要更改主机名,11G RAC需要重新安装CRS。
修改PUBLIC IP,PRIVATE,VIP,SCAN IP时,CRS都是启动状态。
3.1 更改PUBLIC IP
--查看收集集群相关信息
#crsctl stat res -t
更改hosts(两个节点)
先不要修改私网IP
cp /etc/hosts /etc/hosts.bak
vi /etc/hosts
10.20.18.12 wego1
10.20.18.10 wego2
10.20.18.18 wego1-vip
10.20.18.16 wego2-vip
192.168.1.130 wewin1-priv - 注意私网IP还是原IP
192.168.1.131 wewin2-priv - 注意私网IP还是原IP
10.20.18.17 wego-scan
更改网卡设置(节点1和节点2) 注意:两节点都要进行更改
- 节点1
#vi /etc/sysconfig/network-scripts/ifcfg-eth0
IP 10.20.18.12
NETMASK 255.255.255.0
GATEWAY 10.20.18.254
- 修改网卡后,重启网卡
#systemctl restart network
- 节点2
#vi /etc/sysconfig/network-scripts/ifcfg-eth0
IP 10.20.18.10
NETMASK 255.255.255.0
GATEWAY 10.20.18.254
- 修改网卡后,重启网卡
#systemctl restart network
查看RAC IP原配置信息
grid@wewin1~$ oifcfg getif
eth0 10.20.17.0 global public
eth1 1.1.1.0 global cluster_interconnect
更改RAC PUBLIC IP设置(核心操作点)
注意eth0是公网网卡,eth1是私网网卡。
如果网段没有修改,这一步不需要执行。(oifcfg delif 和 oifcfg setif)
说明:oifcfg修改网卡设置
grid@wewin1~$ oifcfg delif -global eth0/10.20.17.0:public
grid@wewin1~$ oifcfg setif -global eth0/10.20.18.0:public
核实RAC IP信息更改结果
grid@wewin1~$ oifcfg getif
eth0 10.20.18.0 global public
eth1 1.1.1.0 global cluster_interconnect
3.2 更改PRIVATE IP
更改hosts(两个节点)
先不要修改私网IP
vi /etc/hosts
10.20.18.12 wego1
10.20.18.10 wego2
10.20.18.18 wego1-vip
10.20.18.16 wego2-vip
192.168.1.130 wewin1-priv - 注意这一步改私网IP
192.168.1.131 wewin2-priv - 注意这一步改私网IP
10.20.18.17 wego-scan
--备份配置文件
grid@wewin1 ~$ ls /oracle/app/11.2.0/grid/gpnp/wewin1/profiles/peer/
profile.old profile_orig.xml profile.xml
grid@wewin1 peer$ cp profile.xml /home/grid/profile.xml_bak20230708
--备份OCR (Oracle Cluster Registry)
- 查看ocr备份情况
grid@wewin1 ~$ ocrconfig -showbackup
wewin2 2023/07/08 15:17:24 /oracle/app/11.2.0/grid/cdata/app-cluster/backup00.ocr
wewin2 2023/07/08 11:17:24 /oracle/app/11.2.0/grid/cdata/app-cluster/backup01.ocr
wewin2 2023/07/08 07:17:24 /oracle/app/11.2.0/grid/cdata/app-cluster/backup02.ocr
wewin1 2023/06/28 13:00:53 /oracle/app/11.2.0/grid/cdata/app-cluster/day.ocr
wewin1 2023/06/19 05:05:31 /oracle/app/11.2.0/grid/cdata/app-cluster/week.ocr
- 备份OCR
su – root
cd /oracle/app/11.2.0/grid/bin
mkdir -p /tmp/bak
chmod -R 777 /tmp/bak
./ocrconfig -local -export /tmp/bak/ocr-backup20230708.bak
--查看网络配置信息:
ifconfig -a
netstat -in
--数据库集群私有网络变更
注意:如果是网段没有修改,这一步不需要执行。(oifcfg delif 和 oifcfg setif)
olsnodes -s
#active是正常情况
##相同的网段不需要修改
grid@wewin1 ~$ oifcfg getif
eth0 10.20.18.0 global public
eth1 192.168.1.0 global cluster_interconnect
grid@wewin1 ~$ oifcfg delif -global eth1/192.168.1.0
grid@wewin1 ~$ oifcfg setif -global eth1/1.1.1.0:cluster_interconnect
grid@wewin1 ~$ oifcfg getif
eth0 10.20.18.0 global public
eth1 1.1.1.0 global cluster_interconnect
--修改私网网卡设置:
- 节点1
#vi /etc/sysconfig/network-scripts/ifcfg-eth0
IPADDR=1.1.1.12
ifdown eth1
ifup eth1
- 节点2
#vi /etc/sysconfig/network-scripts/ifcfg-eth0
IPADDR=1.1.1.10
--重启集群
注意:先关闭DB再重启CRS。
- 先正常关闭数据库
- 看看数据库环境有几个实例
su - oracle
ps -ef|grep pmon
例如我只有一个数据库是orcl
srvctl stop database -d orcl
- 两个节点
#crsctl stop crs
- 两个节点
#crsctl start crs
说明:集群启动后,可以先不检查DB的状态,等IP全部修改完后再检查
3.3 更改VIP
VIP不需要修改,因为CRS重启后VIP会自动更新。
srvctl config vip -n wewin1
srvctl config vip -n wewin2
说明:-n 是主机名
如果VIP没有自动被更新,就需要手动修改。
- 查看当前VIP设置
#srvctl config nodeapps -a -g -s
Network exists: 1/10.20.18.0/255.255.255.0/eth0, type static
VIP exists: /wewin1-vip/10.20.17.148/10.20.18.0/255.255.255.0/eth0, hosting node wewin1
VIP exists: /wewin2-vip/10.20.17.149/10.20.18.0/255.255.255.0/eth0, hosting node wewin2
GSD exists
ONS exists: Local port 6100, remote port 6200, EM port 2016
关闭相关资源
grid@wewin1 ~$ srvctl stop nodeapps -f
更改VIP设置 注意:这里以$GRID_HOME/bin代替srvctl的绝对路径
- 节点1:
#$GRID_HOME/bin/srvctl modify nodeapps -n wewin1 -A wewin1-vip/255.255.255.0/eth0
- 节点2:
#$GRID_HOME/bin/srvctl modify nodeapps -n wewin2 -A wewin2-vip/255.255.255.0/eth0
核实VIP变更结果
grid@wewin1 ~$ srvctl config nodeapps -a -g -s
Network exists: 1/10.20.18.0/255.255.255.0/eth0, type static
VIP exists: /wewin1-vip/10.20.18.18/10.20.18.0/255.255.255.0/eth0, hosting node wewin1
VIP exists: /wewin2-vip/10.20.18.16/10.20.18.0/255.255.255.0/eth0, hosting node wewin2
GSD exists
ONS exists: Local port 6100, remote port 6200, EM port 2016
3.4 更改SCAN IP
说明:说明修改SCAN IP不需要指定SCAN IP,写scan name即可。
如果RAC使用的是域名解析,需要在域名解析服务器上修改为你要改的RAC IP,因为我的生产环境未使用域名解析,不做修改演示。 查看SCAN IP设置
grid@wewin1 ~$ srvctl config scan
SCAN name: wewin-scan, Network: 1/10.20.18.0/255.255.255.0/eth0
SCAN VIP name: scan1, IP: /wewin-scan/10.20.17.143
更改SCAN IP设置
注意:这里以$GRID_HOME/bin代替srvctl的绝对路径
- 停止SCAN监听
#$GRID_HOME/bin/srvctl stop scan_listener
#$GRID_HOME/bin/srvctl stop scan
#$GRID_HOME/bin/srvctl modify scan -n wewin-scan
查看SCAN IP变更结果
#srvctl config scan
SCAN name: wewin-scan, Network: 1/10.20.18.0/255.255.255.0/eth0
SCAN VIP name: scan1, IP: /scan/10.20.18.17
- 启动SCAN监听
#$GRID_HOME/bin/srvctl start scan_listener
#$GRID_HOME/bin/srvctl start scan
3.5 更改监听文件
注意:两节点均更改,由于更改过程一致,两个节点都要修改
--节点1
su - grid
vi $ORACLE_HOME/network/admin/endpoints_listener.ora
#注意修改与IP有关的地方
-原来的
LISTENER_wewin1=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=wewin1-vip)(PORT=1521))(ADDRESS=(PROTOCOL=TCP)(HOST=10.20.17.146)(PORT=1521)(IP=FIRST))))
修改后的
LISTENER_wewin1=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=wewin1-vip)(PORT=1521))(ADDRESS=(PROTOCOL=TCP)(HOST=10.20.18.12)(PORT=1521)(IP=FIRST))))
节点2
-原来的
LISTENER_wewin2=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=wewin2-vip)(PORT=1521))(ADDRESS=(PROTOCOL=TCP)(HOST=10.20.17.147)(PORT=1521)(IP=FIRST))))
-修改后的
LISTENER_wewin2=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=wewin2-vip)(PORT=1521))(ADDRESS=(PROTOCOL=TCP)(HOST=10.20.18.10)(PORT=1521)(IP=FIRST))))
3.6 重启RAC和检查监听配置
注意:两节点均重启
- 两个节点
su - oracle
srvctl stop database -d orcl
#crsctl stop crs
- 两个节点
#crsctl start crs
su - oracle
srvctl start database -d orcl
检查监听配置
sqlplus / sysdba
show parameter listener
- 检查local_listener和remote_listener是否已经为修改后的IP信息
3.7 其他要处理的问题
su - oracle
vi $ORACLE_HOME/network/admin/tnsnames.ora
将IP相关的信息修改过来。
浙公网安备 33010602011771号