Oracle RAC集群部署实战:双节点配置与共享存储设置
在企业级数据中台架构中,高可用性与负载均衡是保障核心业务连续性的基石。Oracle Real Application Clusters(RAC)作为Oracle官方提供的集群数据库解决方案,允许多个节点共享同一数据库实例,实现无缝故障转移与横向扩展。本文将聚焦于Oracle RAC部署的核心实践——双节点配置与共享存储设置,为数据平台架构师、数据库运维团队提供可落地的技术指南。
Oracle RAC通过将多个数据库实例(Instance)绑定到单一数据库(Database),实现以下关键能力:
在数字孪生、实时分析、金融交易等对系统稳定性要求极高的场景中,RAC是替代单机Oracle的首选方案。
在开始安装前,必须确保硬件与网络环境满足Oracle官方要求。以下是双节点RAC部署的最低配置标准:
| 组件 | 要求 |
|---|---|
| 节点数量 | 至少2台物理服务器或虚拟机(建议同构) |
| CPU | 每节点 ≥ 8核(推荐16核以上) |
| 内存 | 每节点 ≥ 32GB(推荐64GB+) |
| 磁盘 | 至少3类共享存储:OCR、Voting Disk、Data Files |
| 网络 | 至少2个独立网卡:Public Network(业务)、Private Network(心跳) |
| 操作系统 | Oracle Linux 8.x / Red Hat Enterprise Linux 8.x(64位) |
| 存储类型 | 共享存储需支持ASM或OCFS2(推荐ASM) |
⚠️ 注意:共享存储是RAC的命脉。本地磁盘无法用于RAC,必须使用SAN、NAS或iSCSI等网络存储设备,且需配置多路径(Multipath)以保障冗余。
Oracle推荐使用Automatic Storage Management (ASM) 作为RAC的存储管理器。ASM具备以下优势:
若使用OCFS2(Oracle Cluster File System 2),则需手动管理文件系统挂载,且功能受限,仅适用于小型环境。
假设您拥有4块共享LUN(来自SAN),建议按如下方式划分:
| LUN | 用途 | 大小 | 文件系统/类型 |
|---|---|---|---|
| /dev/sdb | OCR(Oracle Cluster Registry) | 10GB | ASM DiskGroup (OCR) |
| /dev/sdc | Voting Disk | 10GB | ASM DiskGroup (VOTE) |
| /dev/sdd | Redo Log + Control File | 50GB | ASM DiskGroup (REDO) |
| /dev/sde | 数据文件(DATA) | 200GB+ | ASM DiskGroup (DATA) |
✅ 每个LUN需在所有节点上可见,且权限一致(属主:oracle:oinstall)
在Linux系统中,需配置multipath避免单路径故障:
# 安装multipath-toolsyum install -y device-mapper-multipath# 生成配置文件mpathconf --enable --with_multipathd y# 扫描并识别共享磁盘multipath -ll# 编辑 /etc/multipath.conf,添加别名(推荐)defaults { user_friendly_names yes}multipaths { multipath { wwid 3600605b00a1234567890abcdef12345678 alias ocr_disk } multipath { wwid 3600605b00a1234567890abcdef12345679 alias vote_disk }}重启服务并验证:
systemctl restart multipathdmultipath -ll输出应显示类似 ocr_disk (3600605b00a1234567890abcdef12345678) 的别名。
编辑 /etc/sysctl.conf:
fs.aio-max-nr = 1048576fs.file-max = 6815744kernel.shmall = 2097152kernel.shmmax = 536870912000kernel.shmmni = 4096kernel.sem = 250 32000 100 128net.ipv4.ip_local_port_range = 9000 65500net.core.rmem_default = 262144net.core.rmem_max = 4194304net.core.wmem_default = 262144net.core.wmem_max = 1048576应用配置:
sysctl -p创建统一的用户与组(两节点一致):
groupadd -g 1000 oinstallgroupadd -g 1001 dbagroupadd -g 1002 operuseradd -u 1001 -g oinstall -G dba,oper oracleecho "oracle" | passwd --stdin oracle设置资源限制(/etc/security/limits.conf):
oracle soft nofile 1024oracle hard nofile 65536oracle soft nproc 16384oracle hard nproc 16384oracle soft stack 10240oracle hard stack 32768/etc/hosts解析所有节点主机名(必须双向解析)# /etc/hosts 示例192.168.1.101 racnode1.example.com racnode1192.168.1.102 racnode2.example.com racnode2172.16.1.101 racnode1-priv.example.com racnode1-priv172.16.1.102 racnode2-priv.example.com racnode2-privRAC对时间一致性要求极高,误差需控制在1秒内。
# 安装chronyyum install -y chrony# 编辑 /etc/chrony.conf,指定时间服务器server ntp.aliyun.com iburst# 启动服务systemctl enable --now chronydchronyc sources -v这是RAC部署的基石,包含Clusterware与ASM。
/u01/app/19.0.0/grid cd /u01/app/19.0.0/grid./runInstaller安装向导关键选项:
/dev/mapper/ocr_disk, /dev/mapper/vote_disk 等✅ 安装过程中,脚本会自动在两节点执行root.sh,需在每台节点终端依次运行。
/u01/app/oracle/product/19.0.0/dbhome_1 runInstaller,选择 Install database software only 完成后,数据库将自动在两个实例(RACDB_1、RACDB_2)上启动。
部署完成后,执行以下命令验证:
# 检查集群状态crsctl check cluster# 查看节点状态olsnodes -n# 查看ASM磁盘组asmcmd lsdg# 查看数据库实例srvctl status database -d RACDB# 模拟节点故障(测试高可用)srvctl stop nodeapps -n racnode1# 观察RACDB_2是否自动接管建议配置Oracle Enterprise Manager(OEM)进行集中监控,实时查看实例负载、ASM使用率、心跳延迟等关键指标。
| 问题 | 原因 | 解决方案 |
|---|---|---|
| 集群无法启动 | 时间不同步 | 使用chrony强制同步,检查NTP服务 |
| ASM无法识别磁盘 | 权限或multipath未配置 | 检查/dev/mapper/下设备属主为oracle:oinstall |
| DBCA卡在“创建控制文件” | 共享存储未挂载 | 确认所有节点可访问ASM磁盘 |
| 网络延迟高 | Private网络使用普通千兆网卡 | 升级至万兆网卡,启用Jumbo Frame |
ocrconfig -export /backup/ocr_bkup setenforce 0,并修改/etc/selinux/config为disabled crsctl或srvctl命令执行 🔔 重要提醒:RAC不是“万能药”。若业务无高并发需求,单实例+Data Guard可能更具成本效益。RAC适用于每秒数百笔以上事务、要求99.99%可用性的核心系统。
Oracle RAC部署虽复杂,但其带来的稳定性与扩展性,是构建企业级数据中台不可或缺的一环。无论是支撑数字孪生系统的实时仿真,还是为可视化平台提供稳定数据源,RAC都能确保底层数据库“永不掉线”。
若您正在评估RAC部署方案,或希望获得自动化部署脚本、配置模板、故障诊断手册,我们推荐您进一步了解专业级数据库运维支持服务。申请试用&https://www.dtstack.com/?src=bbs
对于希望将RAC与云原生架构融合的企业,建议同步规划容器化部署与Kubernetes集成方案。申请试用&https://www.dtstack.com/?src=bbs
如需长期运维保障、性能调优服务或灾备方案设计,欢迎联系专业团队获取定制化支持。申请试用&https://www.dtstack.com/?src=bbs
申请试用&下载资料