生产环境修改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 delifoifcfg 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 delifoifcfg 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相关的信息修改过来。

4 参考文档

posted @ 2023-07-14 10:28  寻梦99  阅读(532)  评论(0)    收藏  举报