Oracle RAC 私有互联网络协议迁移指南:IPv4 至 IPv6 转换实践
前言与版本支持说明
自 Oracle Grid Infrastructure 12.2.0.1 版本起,RAC 集群的私有互联心跳网络已正式支持 IPv6 协议。本文将详细阐述在该架构版本下,如何将现有的私有网络通信协议从 IPv4 平滑切换至 IPv6,同时也涵盖反向回退的操作逻辑。
基础环境准备
软件与系统规格
| 组件名称 | 版本号/路径 |
|---|---|
| Grid Infrastructure | 12.2.0.1 |
| RDBMS Database | 12.2.0.1 |
| GRID 安装目录 | /oracle/app/grid_home |
| DB 安装目录 | /oracle/app/oracle/product/12.2/db_1 |
| 操作系统 | Red Hat Enterprise Linux Server 6.7 |
网络地址规划示例
在实施变更前,需明确现有 IPv4 与目标 IPv6 地址的映射关系:
| 节点标识 | 物理网卡 | 原有 IPv4 地址 | 目标 IPv6 地址 |
|---|---|---|---|
| RAC_Node1 | eth1-private | 192.168.2.10 | 2001:0db8:85a3:0002::10/64 |
| RAC_Node2 | rac2-priv | 192.168.2.20 | 2001:0db8:85a3:0002::20/64 |
系统级前置检查
在修改集群配置前,必须确保底层操作系统已正确启用并支持 IPv6 协议栈。
内核参数验证
检查 sysctl 配置,确保未全局禁用 IPv6。若值为 1 则需修正为 0:
[root@rac1 ~]# grep disable_ipv6 /proc/sys/net/ipv6/conf/*/disable_ipv6
net.ipv6.conf.all.disable_ipv6 = 0
net.ipv6.conf.default.disable_ipv6 = 0
# 确保所有网卡对应的配置项均为 0
接口能力确认
使用 ip 命令查看物理链路是否已分配 Link-Local 或 Global IPv6 地址:
[root@rac1 ~]# ip addr show eth1
...
inet6 2001:db8:85a3:1::201/64 global # 确认存在有效 IPv6 地址
valid_lft forever preferred_lft forever
安全策略审查
排查防火墙状态,确保 IPv6 数据包不被拦截:
[root@rac1 ~]# service ip6tables status
# 预期输出:Firewall is not running.
实施步骤:从 IPv4 迁移至 IPv6
本过程采用滚动维护模式,确保集群高可用性不受单点故障影响。
阶段一:配置备份与安全快照
在执行任何变更之前,必须保留关键注册表及配置文件副本:
# 保存 GPnP 配置文件
sudo cp -f $ORACLE_HOME/gpnp/rac1/profiles/peer/profile.xml ~/profile_xml_bak_rac1
sudo cp -f $ORACLE_HOME/gpnp/rac2/profiles/peer/profile.xml ~/profile_xml_bak_rac2
# 生成 OCR 手动备份集
su - root
$GRID_HOME/bin/ocrconfig -manualbackup
阶段二:停止非活跃节点服务
为避免网络切换期间触发驱逐机制(Split-brain),首先关闭备用节点的 CRS 服务:
# 在节点二执行
$GRID_HOME/bin/crsctl stop crs -all
# 等待进程完全退出后继续
阶段三:调整互联网络识别
利用 oifcfg 工具重新定义集群对私网的认知:
# 查询当前绑定情况
oifcfg getif
# 移除旧的 IPv4 关联并添加 IPv6(视具体需求操作)
oifcfg delif -global eth1/192.168.2.0
oifcfg setif -global eth1/2001:0db8:85a3:0002::0/cluster_interconnect,asm
阶段四:监听器网络适配
更新 ASM 监听器的网络依赖配置,确保存储层能识别新协议:
# 停止监听器以应用更改
lsnrctl stop asm
# 修改 tnsnames.ora 及相关监听配置文件中的 IP 引用
# 启动监听器
lsnrctl start asm
阶段五:主机节点配置与重启
当节点二准备好后,重复上述流程处理节点一。核心在于操作系统层面的网卡重配:
- 修改网卡配置文件(如/etc/sysconfig/network-scripts/ifcfg-eth1),将 BOOTPROTO 设为 static 或 dhcpv6,指定 IPv6ADDR。
- 刷新 /etc/hosts 解析表,替换旧版 Private IP 条目为新版 IPv6 格式。
# /etc/hosts 示例
2001:0db8:85a3:0002::10 rac1-priv
2001:0db8:85a3:0002::20 rac2-priv
阶段六:集群恢复与服务验证
在所有节点完成网络重配后,依次启动 CRS 服务:
$GRID_HOME/bin/crsctl start crs
# 验证集群状态
crsctl check cluster -all
# 再次检查互联接口
oifcfg getif | grep cluster_interconnect
此时应确认 Cluster Interconnect 列出的地址已变更为 IPv6 前缀。
反向迁移:IPv6 回退至 IPv4
若业务需要返回传统 IPv4 环境,操作流程与上述步骤互为镜像:
- 数据保护:同样先执行 OCR 及 Profile 备份。
- 滚动关停:按顺序停止各节点 CRS 服务。
- 接口还原:通过 oifcfg 工具将网络接口指回 IPv4 子网段。
- 系统重置:修改 OS 网卡配置及 hosts 文件指向原 IPv4 地址。
- 服务恢复:逐一重启集群并验证公共互联功能正常。