Oracle RAC集群部署实战:双节点配置与共享存储设置
在企业级数据中台架构中,高可用性与负载均衡是保障业务连续性的核心诉求。Oracle Real Application Clusters(RAC)作为Oracle官方提供的集群解决方案,允许多个节点共享同一数据库实例,实现故障自动切换与性能横向扩展。本文将深入解析Oracle RAC双节点部署的完整流程,重点聚焦共享存储配置、网络规划、集群软件安装与验证,为企业构建稳定、可扩展的数据库基础设施提供可落地的技术指南。
在开始部署前,必须明确Oracle RAC的三大基础依赖:
✅ 建议:在部署前使用
ntpdate或chronyc sources验证时间偏差,确保误差小于1秒。
共享存储是RAC的命脉。以下是典型配置步骤:
在两个节点上执行以下命令,确认存储设备是否被正确识别:
lsblk# 或fdisk -l假设您已通过SAN挂载了3个LUN,分别为 /dev/sdb, /dev/sdc, /dev/sdd,每个LUN大小不低于50GB。
为确保设备名称在重启后保持一致,必须配置udev规则:
vi /etc/udev/rules.d/99-oracle-asm.rules写入如下内容(根据实际设备WWID调整):
KERNEL=="sdb", SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name", RESULT=="36000c29b8a5a1a4d7e5f4d7e5f4d7e5f", SYMLINK+="asm-disk1", OWNER="grid", GROUP="oinstall", MODE="0660"KERNEL=="sdc", SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name", RESULT=="36000c29b8a5a1a4d7e5f4d7e5f4d7e5g", SYMLINK+="asm-disk2", OWNER="grid", GROUP="oinstall", MODE="0660"KERNEL=="sdd", SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name", RESULT=="36000c29b8a5a1a4d7e5f4d7e5f4d7e5h", SYMLINK+="asm-disk3", OWNER="grid", GROUP="oinstall", MODE="0660"保存后执行:
udevadm control --reload-rulesudevadm triggerls -l /dev/asm-*📌 注意:
scsi_id输出的WWID必须在两个节点上完全一致,否则ASM无法识别共享磁盘。
使用Oracle Grid Infrastructure安装程序(GI)配置ASM。在安装过程中,选择“Configure Oracle ASM”选项,并将上述三个设备分别分配为:
+DATA:存放数据文件、控制文件、重做日志(建议使用NORMAL冗余)+FRA:快速恢复区,用于归档日志与备份(建议使用EXTERNAL冗余)+OCR:存放集群注册表与投票磁盘(建议使用EXTERNAL冗余,至少3个磁盘)⚠️ 禁止使用文件系统(如ext4、xfs)存放Oracle RAC核心文件。必须通过ASM管理,否则无法实现缓存融合。
确保每个节点的主机名唯一,且在/etc/hosts中配置所有节点的公共IP、私有IP与虚拟IP(VIP):
192.168.1.10 rac1.example.com rac1192.168.1.11 rac2.example.com rac2192.168.2.10 rac1-priv.example.com rac1-priv192.168.2.11 rac2-priv.example.com rac2-priv192.168.1.101 rac1-vip.example.com rac1-vip192.168.1.102 rac2-vip.example.com rac2-vip✅ 公共IP用于客户端连接,VIP用于故障切换,私有IP仅用于节点间通信,禁止公网访问。
关闭防火墙或开放必要端口:
systemctl stop firewalldsystemctl disable firewalld禁用SELinux(推荐):
vi /etc/selinux/config# 修改为:SELINUX=disabled重启生效。
创建统一的用户与组:
groupadd -g 1000 oinstallgroupadd -g 1200 dbagroupadd -g 1201 opergroupadd -g 1202 asmadmingroupadd -g 1203 asmdbagroupadd -g 1204 asmoperuseradd -u 1100 -g oinstall -G dba,asmdba,oper griduseradd -u 1101 -g oinstall -G dba,asmdba,oper oracle设置密码并确保grid用户拥有GI安装权限,oracle用户拥有数据库安装权限。
下载并解压软件包从Oracle官网下载对应版本的Grid Infrastructure(如19c或21c),解压至/u01/app/19.0.0/grid。
运行安装程序切换至grid用户,执行:
cd /u01/app/19.0.0/grid./runInstaller安装选项选择
192.168.2.0/24执行root脚本安装程序会提示在两个节点上依次执行:
/u01/app/oraInventory/orainstRoot.sh/u01/app/19.0.0/grid/root.sh执行后,集群服务(CRS)将自动启动。
安装完成后,验证集群状态:
crsctl check clustercrsctl stat res -tocrcheck预期输出应为:
oracle用户安装数据库软件(不创建数据库)。RACDB)+DATA完成创建后,执行:
srvctl status database -d RACDB若显示两个节点均为“OPEN”,则部署成功。
ASM磁盘组冗余策略:生产环境建议使用NORMAL冗余(双副本),避免单点故障;测试环境可使用EXTERNAL。
网络带宽监控:使用iftop或nethogs监控私网流量,确保无拥塞。
心跳超时设置:默认10秒,若网络延迟高,可调整为15秒(需谨慎):
ocrconfig -local -manualbackupcrsctl set css misscount 15定期备份OCR与Voting Disk:
ocrconfig -showbackupocrconfig -export /backup/ocr_export.dmp| 问题现象 | 可能原因 | 解决方案 |
|---|---|---|
| CRS服务无法启动 | 时间不同步 | 使用chronyc sources校准时间 |
| ASM无法识别磁盘 | udev规则未生效 | 重新加载规则并检查WWID |
| 节点被驱逐 | 私网丢包 | 检查交换机配置、网卡绑定、MTU设置 |
| DBCA创建失败 | 权限不足 | 确保grid与oracle用户组权限正确 |
Oracle RAC不仅提供高可用性,更支持动态负载均衡与在线扩容。当业务量增长时,可平滑添加新节点(最多100+),无需停机。结合数据中台架构,RAC可作为核心交易数据库支撑实时分析、数字孪生仿真与可视化仪表盘的数据源,确保每秒数千笔事务的稳定写入。
🔧 推荐架构:RAC集群 → 数据抽取层(OGG)→ 数据湖 → 可视化平台(非DataV)通过RAC保障源端数据一致性,再通过ETL分发至分析层,实现“稳源、活用、智显”的闭环。
Oracle RAC部署不是一次性任务,而是持续运维的起点。从共享存储的精确配置,到网络隔离的严谨设计,再到集群健康监控的自动化脚本,每一个环节都直接影响系统可用性。企业若希望在数字孪生、实时决策等场景中实现“零中断”目标,RAC是经过验证的工业级选择。
✅ 立即行动:如需专业部署支持或自动化脚本模板,申请试用&https://www.dtstack.com/?src=bbs 获取企业级RAC部署工具包。✅ 资源推荐:申请试用&https://www.dtstack.com/?src=bbs 获取Oracle RAC最佳实践白皮书。✅ 技术支援:申请试用&https://www.dtstack.com/?src=bbs 获取专属架构师1对1咨询通道。
附录:推荐工具清单
crsctl:集群状态管理ocrcheck:OCR完整性检查cluvfy:集群验证工具(安装前必用)asmcmd:ASM文件系统管理dmesg | grep -i error:硬件层故障排查申请试用&下载资料本文内容基于Oracle 19c Linux x86_64环境编写,适用于CentOS 7.9 / RHEL 7.9 / Oracle Linux 7.9。请根据实际版本调整路径与参数。