Oracle 19C RAC Public IP单网卡改为bond模式操作指南
- 一、操作背景与原理说明
- 二、操作前准备工作
-
- [2.1 查看当前IP信息](#2.1 查看当前IP信息)
- [2.2 备份OCR磁盘组](#2.2 备份OCR磁盘组)
- [2.3 检查当前集群状态](#2.3 检查当前集群状态)
- 三、操作步骤详解
-
- [3.1 停止数据库实例](#3.1 停止数据库实例)
- [3.2 停止SCAN和SCAN监听器](#3.2 停止SCAN和SCAN监听器)
- [3.3 停止节点监听器和VIP](#3.3 停止节点监听器和VIP)
- [3.4 验证资源停止状态](#3.4 验证资源停止状态)
- [3.5 节点一网卡配置Bond](#3.5 节点一网卡配置Bond)
- [3.6 节点二网卡Bond配置](#3.6 节点二网卡Bond配置)
- [3.7 重新注册网卡信息到OCR(集群注册表)](#3.7 重新注册网卡信息到OCR(集群注册表))
- [3.8 检查VIP配置](#3.8 检查VIP配置)
- [3.9 重启网络相关资源](#3.9 重启网络相关资源)
- [3.10 启动数据库实例](#3.10 启动数据库实例)
- 四、操作后验证
-
- [4.1 全面检查集群资源状态](#4.1 全面检查集群资源状态)
- [4.3 网络连通性测试](#4.3 网络连通性测试)
- 五、总结
一、操作背景与原理说明
在Oracle RAC(Real Application Clusters)环境中,网络配置对于集群的稳定性和高可用性至关重要。将单网卡配置修改为Bond(链路聚合)配置可以:
- 提高网络冗余:Bond模式(active-backup)在主网卡故障时自动切换到备用网卡。
- 增强网络可靠性:避免单点故障,确保集群通信不中断。
- 简化管理:多个物理网卡逻辑上作为一个接口管理。
重要前提: 操作前需确保所有节点间的网络连接正常,且修改过程中集群处于维护状态。
二、操作前准备工作
2.1 查看当前IP信息
sql
##当前IP信息
[root@lemon01:/root]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
#OracleBegin
#Public IP
192.168.127.11 lemon01
192.168.127.12 lemon02
#Virtual IP
192.168.127.13 lemon01-vip
192.168.127.14 lemon02-vip
#Private IP
192.168.23.11 lemon01-priv
192.168.23.12 lemon02-priv
#SCAN IP
192.168.127.15 lemon-scan
#DG IP
192.168.127.16 lemondg
[root@lemon01:/root]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 00:0c:29:a9:08:56 brd ff:ff:ff:ff:ff:ff
altname enp3s0
inet 192.168.127.11/24 brd 192.168.127.255 scope global noprefixroute ens160
valid_lft forever preferred_lft forever
inet 192.168.127.15/24 brd 192.168.127.255 scope global secondary ens160:1
valid_lft forever preferred_lft forever
inet 192.168.127.13/24 brd 192.168.127.255 scope global secondary ens160:3
valid_lft forever preferred_lft forever
inet6 fe80::20c:29ff:fea9:856/64 scope link noprefixroute
valid_lft forever preferred_lft forever
3: ens192: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 00:0c:29:a9:08:60 brd ff:ff:ff:ff:ff:ff
altname enp11s0
inet 192.168.23.11/24 brd 192.168.23.255 scope global noprefixroute ens192
valid_lft forever preferred_lft forever
inet 169.254.21.81/19 brd 169.254.31.255 scope global ens192
valid_lft forever preferred_lft forever
inet6 fe80::20c:29ff:fea9:860/64 scope link noprefixroute
valid_lft forever preferred_lft forever
4: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000
link/ether 52:54:00:80:d1:7c brd ff:ff:ff:ff:ff:ff
inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
valid_lft forever preferred_lft forever
5: ens256: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 00:0c:29:a9:08:6a brd ff:ff:ff:ff:ff:ff
altname enp27s0
2.2 备份OCR磁盘组
sql
##物理备份
[root@lemon01:/root]# /u01/app/19.3.0/grid/bin/ocrconfig -manualbackup
[root@lemon01:/root]# /u01/app/19.3.0/grid/bin/ocrconfig -showbackup
lemon01 2025/11/24 17:33:46 +OCR:/lemon-cluster/OCRBACKUP/backup00.ocr.261.1218044025 880628325
lemon01 2025/11/19 17:34:37 +OCR:/lemon-cluster/OCRBACKUP/backup01.ocr.258.1217612077 880628325
lemon01 2025/11/24 17:33:46 +OCR:/lemon-cluster/OCRBACKUP/day.ocr.259.1218044027 880628325
lemon01 2025/11/19 17:34:37 +OCR:/lemon-cluster/OCRBACKUP/week.ocr.260.1217612079 880628325
lemon01 2025/12/29 10:50:29 +OCR:/lemon-cluster/OCRBACKUP/backup_20251229_105029.ocr.262.1221130231 880628325
[grid@lemon01:/home/grid]$ asmcmd
ASMCMD> cp +OCR/lemon-cluster/OCRBACKUP/backup_20251229_105029.ocr.262.1221130231 /backup/orc_bak
copying +OCR/lemon-cluster/OCRBACKUP/backup_20251229_105029.ocr.262.1221130231 -> /backup/orc_bak/backup_20251229_105029.ocr.262.1221130231
##逻辑备份
[root@lemon01:/root]# /u01/app/19.3.0/grid/bin/ocrconfig -export /tmp/ocr_bak
PROT-58: successfully exported the Oracle Cluster Registry contents to file '/tmp/ocr_bak'
[root@lemon01:/root]# ll /tmp/ocr_bak
-rw------- 1 root root 208896 Dec 30 10:55 /tmp/ocr_bak
##备份GPNP profile
cd /u01/app/19.3.0/grid/gpnp/jay-r1/profiles/peer
cp -p profile.xml peofile.xml.bak
2.3 检查当前集群状态
sql
[root@lemon01:/root]# crsctl status res -t
--------------------------------------------------------------------------------
Name Target State Server State details
--------------------------------------------------------------------------------
Local Resources
--------------------------------------------------------------------------------
ora.LISTENER.lsnr
ONLINE ONLINE lemon01 STABLE
ONLINE ONLINE lemon02 STABLE
ora.chad
ONLINE ONLINE lemon01 STABLE
ONLINE ONLINE lemon02 STABLE
ora.net1.network
ONLINE ONLINE lemon01 STABLE
ONLINE ONLINE lemon02 STABLE
ora.ons
ONLINE ONLINE lemon01 STABLE
ONLINE ONLINE lemon02 STABLE
ora.proxy_advm
OFFLINE OFFLINE lemon01 STABLE
OFFLINE OFFLINE lemon02 STABLE
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.ASMNET1LSNR_ASM.lsnr(ora.asmgroup)
1 ONLINE ONLINE lemon01 STABLE
2 ONLINE ONLINE lemon02 STABLE
ora.DATA.dg(ora.asmgroup)
1 ONLINE ONLINE lemon01 STABLE
2 ONLINE ONLINE lemon02 STABLE
ora.FRA.dg(ora.asmgroup)
1 ONLINE ONLINE lemon01 STABLE
2 ONLINE ONLINE lemon02 STABLE
ora.LISTENER_SCAN1.lsnr
1 ONLINE ONLINE lemon01 STABLE
ora.OCR.dg(ora.asmgroup)
1 ONLINE ONLINE lemon01 STABLE
2 ONLINE ONLINE lemon02 STABLE
ora.asm(ora.asmgroup)
1 ONLINE ONLINE lemon01 Started,STABLE
2 ONLINE ONLINE lemon02 Started,STABLE
ora.asmnet1.asmnetwork(ora.asmgroup)
1 ONLINE ONLINE lemon01 STABLE
2 ONLINE ONLINE lemon02 STABLE
ora.cvu
1 OFFLINE OFFLINE STABLE
ora.lemon.db
1 OFFLINE ONLINE lemon01 Open,HOME=/u01/app/o
racle/product/19.3.0
/db,STOPPING
2 OFFLINE ONLINE lemon02 Open,HOME=/u01/app/o
racle/product/19.3.0
/db,STOPPING
ora.lemon01.vip
1 ONLINE ONLINE lemon01 STABLE
ora.lemon02.vip
1 ONLINE ONLINE lemon02 STABLE
ora.qosmserver
1 OFFLINE OFFLINE STABLE
ora.scan1.vip
1 ONLINE ONLINE lemon01 STABLE
--------------------------------------------------------------------------------
说明: 记录当前资源状态,确认数据库实例正在运行,所有网络资源在线。
三、操作步骤详解
3.1 停止数据库实例
sql
# 停止整个数据库
srvctl stop database -d lemon
原理: 修改网络配置可能导致数据库实例通信中断,为确保数据一致性,需先关闭数据库。
3.2 停止SCAN和SCAN监听器
sql
# 停止SCAN监听器
srvctl stop scan_listener
# 停止SCAN IP资源
srvctl stop scan
原理: SCAN(Single Client Access Name)是RAC客户端访问的统一入口,需要停止以便重新配置网络绑定。
3.3 停止节点监听器和VIP
sql
# 停止节点监听器
srvctl stop listener
# 停止节点VIP(Virtual IP)
srvctl stop vip -n lemon01
srvctl stop vip -n lemon02
原理:
- 监听器:用于接受客户端连接请求。
- VIP:故障转移时提供透明连接迁移。
- 停止这些资源防止网络切换时的连接异常。
3.4 验证资源停止状态
sql
# 再次检查集群资源状态
crsctl status res -t
--------------------------------------------------------------------------------
Name Target State Server State details
--------------------------------------------------------------------------------
Local Resources
--------------------------------------------------------------------------------
ora.LISTENER.lsnr
OFFLINE OFFLINE lemon01 STABLE
OFFLINE OFFLINE lemon02 STABLE
ora.chad
ONLINE ONLINE lemon01 STABLE
ONLINE ONLINE lemon02 STABLE
ora.net1.network
ONLINE ONLINE lemon01 STABLE
ONLINE ONLINE lemon02 STABLE
ora.ons
ONLINE ONLINE lemon01 STABLE
ONLINE ONLINE lemon02 STABLE
ora.proxy_advm
OFFLINE OFFLINE lemon01 STABLE
OFFLINE OFFLINE lemon02 STABLE
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.ASMNET1LSNR_ASM.lsnr(ora.asmgroup)
1 ONLINE ONLINE lemon01 STABLE
2 ONLINE ONLINE lemon02 STABLE
ora.DATA.dg(ora.asmgroup)
1 ONLINE ONLINE lemon01 STABLE
2 ONLINE ONLINE lemon02 STABLE
ora.FRA.dg(ora.asmgroup)
1 ONLINE ONLINE lemon01 STABLE
2 ONLINE ONLINE lemon02 STABLE
ora.LISTENER_SCAN1.lsnr
1 OFFLINE OFFLINE STABLE
ora.OCR.dg(ora.asmgroup)
1 ONLINE ONLINE lemon01 STABLE
2 ONLINE ONLINE lemon02 STABLE
ora.asm(ora.asmgroup)
1 ONLINE ONLINE lemon01 Started,STABLE
2 ONLINE ONLINE lemon02 Started,STABLE
ora.asmnet1.asmnetwork(ora.asmgroup)
1 ONLINE ONLINE lemon01 STABLE
2 ONLINE ONLINE lemon02 STABLE
ora.cvu
1 OFFLINE OFFLINE STABLE
ora.lemon.db
1 OFFLINE OFFLINE Instance Shutdown,ST
ABLE
2 OFFLINE OFFLINE Instance Shutdown,ST
ABLE
ora.lemon01.vip
1 OFFLINE OFFLINE STABLE
ora.lemon02.vip
1 OFFLINE OFFLINE STABLE
ora.qosmserver
1 OFFLINE OFFLINE STABLE
ora.scan1.vip
1 OFFLINE OFFLINE STABLE
--------------------------------------------------------------------------------
3.5 节点一网卡配置Bond
操作原理: 将原有单网卡ens160和备用网卡ens256绑定为bond0,使用active-backup模式(模式1),实现主备自动切换。
sql
# 创建bond0接口(active-backup模式)
nmcli connection add type bond con-name bond0 ifname bond0 mode active-backup
# 添加ens256作为bond的从属接口
nmcli connection add type bond-slave con-name bond-slave-ens256 ifname ens256 master bond0
# 停用并删除原有的ens160配置
nmcli connection down ens160
nmcli connection delete ens160
# 将ens160添加为bond的从属接口
nmcli connection add type bond-slave con-name bond-slave-ens160 ifname ens160 master bond0
# 配置bond0的IP地址、网关等网络参数
nmcli connection modify bond0 ipv4.addresses 192.168.127.11/24 ipv4.gateway 192.168.127.254 ipv4.method manual autoconnect yes
# 重启bond0接口使配置生效
nmcli connection down bond0 && nmcli connection up bond0
3.6 节点二网卡Bond配置
sql
# 创建bond0接口(active-backup模式)
nmcli connection add type bond con-name bond0 ifname bond0 mode active-backup
# 添加ens256作为bond的从属接口
nmcli connection add type bond-slave con-name bond-slave-ens256 ifname ens256 master bond0
# 停用并删除原有的ens160配置
nmcli connection down ens160
nmcli connection delete ens160
# 将ens160添加为bond的从属接口
nmcli connection add type bond-slave con-name bond-slave-ens160 ifname ens160 master bond0
# 配置bond0的IP地址、网关等网络参数
nmcli connection modify bond0 ipv4.addresses 192.168.127.12/24 ipv4.gateway 192.168.127.254 ipv4.method manual autoconnect yes
# 重启bond0接口使配置生效
nmcli connection down bond0 && nmcli connection up bond0
3.7 重新注册网卡信息到OCR(集群注册表)
原理: OCR存储集群配置信息,需要更新网络接口配置以反映新的bond设置。
sql
# 查看当前集群网络接口配置
oifcfg getif
# 删除原有的ens160接口配置(全局)
oifcfg delif -global ens160
# 再次确认配置已删除
oifcfg getif
# 添加新的bond0接口配置到OCR
oifcfg setif -global bond0/192.168.127.0:public
# 验证接口配置
oifcfg getif
# 查看当前节点应用配置
srvctl config nodeapps -a
# 修改集群网络配置,指定子网和接口
srvctl modify network -k 1 -S 192.168.127.0/255.255.255.0/bond0
# 或者分别修改每个节点的网络配置(等效于上述命令)
/u01/app/19.3.0/grid/bin/srvctl modify nodeapps -n lemon01 -A 192.168.127.13/255.255.255.0/bond0
/u01/app/19.3.0/grid/bin/srvctl modify nodeapps -n lemon02 -A 192.168.127.14/255.255.255.0/bond0
# 再次验证节点应用配置
srvctl config nodeapps -a
3.8 检查VIP配置
sql
# 检查节点一的VIP配置
srvctl config vip -n lemon01
# 检查节点二的VIP配置
srvctl config vip -n lemon02
预期: VIP应绑定到bond0接口,IP地址分别为192.168.127.13(lemon01)和192.168.127.14(lemon02)。
3.9 重启网络相关资源
sql
# 启动节点VIP
srvctl start vip -n lemon01
srvctl start vip -n lemon02
# 启动SCAN IP
srvctl start scan
# 启动节点监听器
srvctl start listener
# 启动SCAN监听器
srvctl start scan_listener
启动顺序原理:
先启动VIP:为监听器提供绑定的IP地址
再启动SCAN:确保客户端访问入口可用
最后启动监听器:在VIP和SCAN就绪后提供服务
3.10 启动数据库实例
sql
# 启动数据库
srvctl start database -d lemon
四、操作后验证
4.1 全面检查集群资源状态
sql
crsctl status res -t
--------------------------------------------------------------------------------
Name Target State Server State details
--------------------------------------------------------------------------------
Local Resources
--------------------------------------------------------------------------------
ora.LISTENER.lsnr
ONLINE ONLINE lemon01 STABLE
ONLINE ONLINE lemon02 STABLE
ora.chad
ONLINE ONLINE lemon01 STABLE
ONLINE ONLINE lemon02 STABLE
ora.net1.network
ONLINE ONLINE lemon01 STABLE
ONLINE ONLINE lemon02 STABLE
ora.ons
ONLINE ONLINE lemon01 STABLE
ONLINE ONLINE lemon02 STABLE
ora.proxy_advm
OFFLINE OFFLINE lemon01 STABLE
OFFLINE OFFLINE lemon02 STABLE
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.ASMNET1LSNR_ASM.lsnr(ora.asmgroup)
1 ONLINE ONLINE lemon01 STABLE
2 ONLINE ONLINE lemon02 STABLE
ora.DATA.dg(ora.asmgroup)
1 ONLINE ONLINE lemon01 STABLE
2 ONLINE ONLINE lemon02 STABLE
ora.FRA.dg(ora.asmgroup)
1 ONLINE ONLINE lemon01 STABLE
2 ONLINE ONLINE lemon02 STABLE
ora.LISTENER_SCAN1.lsnr
1 ONLINE ONLINE lemon02 STABLE
ora.OCR.dg(ora.asmgroup)
1 ONLINE ONLINE lemon01 STABLE
2 ONLINE ONLINE lemon02 STABLE
ora.asm(ora.asmgroup)
1 ONLINE ONLINE lemon01 Started,STABLE
2 ONLINE ONLINE lemon02 Started,STABLE
ora.asmnet1.asmnetwork(ora.asmgroup)
1 ONLINE ONLINE lemon01 STABLE
2 ONLINE ONLINE lemon02 STABLE
ora.cvu
1 OFFLINE OFFLINE STABLE
ora.lemon.db
1 ONLINE ONLINE lemon01 Open,HOME=/u01/app/o
racle/product/19.3.0
/db,STABLE
2 ONLINE ONLINE lemon02 Open,HOME=/u01/app/o
racle/product/19.3.0
/db,STABLE
ora.lemon01.vip
1 ONLINE ONLINE lemon01 STABLE
ora.lemon02.vip
1 ONLINE ONLINE lemon02 STABLE
ora.qosmserver
1 OFFLINE OFFLINE STABLE
ora.scan1.vip
1 ONLINE ONLINE lemon02 STABLE
--------------------------------------------------------------------------------
- 所有资源状态应为ONLINE
- 数据库实例在两个节点上均为OPEN状态
- 监听器、VIP、SCAN等网络资源均在线
- 网络接口已从ens160更改为bond0
4.3 网络连通性测试
sql
# 测试节点间网络连通性
ping -c 4 192.168.127.11 # 节点一bond IP
ping -c 4 192.168.127.12 # 节点二bond IP
ping -c 4 192.168.127.13 # 节点一VIP
ping -c 4 192.168.127.14 # 节点二VIP
# 测试SCAN连通性
nslookup lemon-scan # 解析SCAN名称
ping -c 4 <scan-ip> # 测试SCAN IP连通性
五、总结
本次操作成功将Oracle 19C RAC环境的单网卡配置修改为Bond配置,主要优势包括:
- 提高了网络冗余性: 通过active-backup模式实现网卡故障自动切换
- 增强了集群稳定性: 消除了单网卡的单点故障风险
- 保持了配置一致性: 通过OCR更新确保集群所有节点配置同步
- 操作过程可控: 按照标准流程逐步操作,风险可控
- Bond配置的RAC环境现在具备更高的网络可用性: 为业务系统提供了更可靠的底层基础设施支持。