Oracle RAC集群部署实战:双节点配置与共享存储设置
在现代企业数据架构中,高可用性与负载均衡是保障核心业务连续性的基石。Oracle Real Application Clusters(RAC)作为Oracle数据库的集群解决方案,允许多个节点共享同一数据库实例,实现故障自动切换与横向扩展。对于构建数据中台、支撑数字孪生系统或实现高性能数字可视化平台的企业而言,部署一套稳定可靠的Oracle RAC集群,是提升系统韧性与响应效率的关键一步。
本文将聚焦于双节点Oracle RAC部署的完整实战流程,涵盖操作系统配置、共享存储设置、网络规划、集群软件安装与数据库创建,确保每一步都具备可复现性与生产环境适用性。
Oracle RAC对底层基础设施有严格要求,尤其在双节点架构中,必须确保以下组件满足规范:
✅ 最佳实践:私网与公网应使用不同VLAN或物理交换机,防止广播风暴影响集群心跳。
网络IP规划示例:
| 角色 | 节点1 | 节点2 |
|---|---|---|
| Public IP | 192.168.1.10 | 192.168.1.11 |
| Private IP | 10.10.10.10 | 10.10.10.11 |
| Virtual IP (VIP) | 192.168.1.12 | 192.168.1.13 |
| Scan IP | 192.168.1.14(DNS解析) | — |
DNS或/etc/hosts配置必须确保所有节点能通过主机名互相解析,建议使用DNS而非静态hosts,便于后期扩展。
Oracle RAC的核心是共享存储,所有节点必须能同时访问同一套数据文件、控制文件与重做日志。推荐使用ASM(Automatic Storage Management)管理存储,其优势在于无需第三方LVM,内置冗余与负载均衡。
| 类型 | 适用场景 | 推荐度 |
|---|---|---|
| FC SAN | 高性能、低延迟,企业级首选 | ⭐⭐⭐⭐⭐ |
| iSCSI over dedicated network | 成本较低,适合中等负载 | ⭐⭐⭐⭐ |
| NFS(仅限Oracle 19c+) | 简化部署,但性能受限 | ⭐⭐ |
⚠️ 注意:NFS不支持ASM的冗余模式(如NORMAL或HIGH),仅支持EXTERNAL,不推荐用于生产。
为避免单路径故障,必须配置多路径软件(如Linux的multipathd):
# 安装multipath-toolsyum install -y device-mapper-multipath# 生成配置文件mpathconf --enable --with_multipathd y# 扫描存储设备multipath -ll# 编辑 /etc/multipath.conf,设置别名与策略defaults { user_friendly_names yes path_grouping_policy multibus}配置完成后,重启服务并验证:
systemctl restart multipathdmultipath -ll输出应显示每个LUN有多个路径,例如:
mpatha (36006016077702d005e3d9f8a8b1e3d11) dm-0 DELL,MD3220size=100G features='1 queue_if_no_path' hwhandler='1 alua' wp=rw|-+- policy='service-time 0' prio=50 status=active| |- 3:0:0:0 sdb 8:16 active ready running| `- 4:0:0:0 sdc 8:32 active ready running`-+- policy='service-time 0' prio=10 status=enabled |- 3:0:1:0 sdd 8:48 active ready running `- 4:0:1:0 sde 8:64 active ready running使用oracleasm工具标记共享磁盘:
# 标记磁盘(需在所有节点执行)oracleasm createdisk DATA1 /dev/mapper/mpatha1oracleasm createdisk FRA1 /dev/mapper/mpathb1# 查看磁盘oracleasm listdisks确保所有节点都能看到相同磁盘列表,这是集群部署成功的关键前提。
Oracle RAC对操作系统有明确要求,以下为RHEL/CentOS 7/8的必要配置:
groupadd oinstallgroupadd dbauseradd -g oinstall -G dba oracleecho "oracle:password" | chpasswdfs.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 -poracle soft nofile 1024oracle hard nofile 65536oracle soft nproc 16384oracle hard nproc 16384oracle soft stack 10240oracle hard stack 32768oracle soft memlock 3145728oracle hard memlock 3145728集群节点间时间偏差不得超过1秒:
timedatectl set-ntp truechronyc sources -v在两个节点上分别执行以下步骤:
unzip linuxx64_193000_grid_home.zip -d /u01/app/19.0.0/gridcd /u01/app/19.0.0/grid./runInstaller安装向导中选择:
✅ 安装过程中,脚本会自动调用
root.sh,需在每个节点以root身份执行,顺序为:先主节点,后从节点。
安装完成后,执行:
crsctl check clustercrsctl stat res -t输出应显示所有资源为ONLINE,包括ora.cssd、ora.diskmon、ora.cluster_interconnect.haip等。
在Grid Infrastructure安装完成后,切换至oracle用户,启动DBCA:
export ORACLE_HOME=/u01/app/oracle/product/19.0.0/dbhome_1export PATH=$ORACLE_HOME/bin:$PATHdbca配置选项:
RACDB完成创建后,数据库将自动在两个节点上启动,并注册到OCR中。
验证数据库状态:
srvctl status database -d RACDB输出示例:
Instance RACDB1 is running on node1Instance RACDB2 is running on node2部署完成后,必须进行压力测试与故障模拟:
shutdown -h now,观察node2是否自动接管服务。tnsnames.ora中的SCAN地址连接,验证请求是否均匀分发。监控工具推荐:
crsctl stat res -tdmesg | grep -i ora 查看内核级错误🔧 重要提醒:RAC集群的复杂性远超单机数据库,建议团队配备专职DBA,并定期演练灾难恢复流程。
Oracle RAC部署不仅是技术实现,更是企业数字化转型的基础设施保障。无论是支撑实时数据中台的高并发查询,还是为数字孪生系统提供稳定的数据源,一个健壮的RAC集群都能显著降低系统中断风险,提升SLA水平。
在部署过程中,任何一步的疏忽——如网络延迟超标、共享存储未正确识别、时间不同步——都可能导致集群启动失败或数据不一致。因此,建议在生产环境上线前,先在测试环境中完整模拟部署流程。
如需获取更详细的部署脚本、配置模板或自动化Ansible Playbook,可申请专业支持服务:申请试用&https://www.dtstack.com/?src=bbs
此外,我们提供企业级RAC健康检查工具包,帮助您快速诊断集群潜在风险:申请试用&https://www.dtstack.com/?src=bbs
若您正在规划下一代数据平台架构,欢迎联系我们的技术顾问,获取定制化RAC部署方案:申请试用&https://www.dtstack.com/?src=bbs
申请试用&下载资料