Oracle RAC集群部署实战:双节点配置与共享存储设置
在现代企业数据架构中,高可用性与弹性扩展已成为核心诉求。对于需要7×24小时持续运行的关键业务系统——如金融交易、电力调度、物流追踪等——单点故障意味着巨大的经济损失与品牌风险。Oracle Real Application Clusters(RAC)作为Oracle官方提供的集群解决方案,允许多个节点共享同一数据库实例,实现负载均衡与故障自动切换。本文将深入解析Oracle RAC在双节点环境下的完整部署流程,重点聚焦共享存储配置、网络规划、集群软件安装与验证,为企业构建稳定、可扩展的数据库基础设施提供可落地的技术指南。
Oracle RAC并非简单的多服务器堆叠,而是一个由多个关键组件协同工作的精密系统:
📌 关键提示:Oracle RAC要求所有节点操作系统版本、内核参数、用户组、环境变量完全一致,任何微小差异都可能导致集群启动失败。
| 组件 | 推荐配置 |
|---|---|
| CPU | 至少8核,建议16核以上(支持并行处理) |
| 内存 | 64GB起步,建议128GB+(缓存融合依赖内存) |
| 磁盘 | 至少5块独立磁盘:系统盘(200GB)、OCR/Voting(50GB×2)、ASM数据盘(≥1TB) |
| 网卡 | 至少双网卡:1个用于公共网络,1个用于私有网络(建议绑定为bond0) |
节点1 (node1): Public IP: 192.168.1.10 Private IP: 10.10.10.1 VIP: 192.168.1.100节点2 (node2): Public IP: 192.168.1.11 Private IP: 10.10.10.2 VIP: 192.168.1.101共享存储:NFS 或 iSCSI SAN,挂载路径:/u01/oradata⚠️ 重要限制:私有网络必须与公共网络隔离,禁止使用同一网段。建议启用Jumbo Frames(MTU=9000)以提升缓存融合效率。
Oracle RAC的核心是“共享”。若存储配置不当,集群将无法启动。
# 安装multipath-toolsyum install -y device-mapper-multipath# 生成配置文件mpathconf --enable --with_multipathd y# 查看识别的磁盘multipath -ll# 编辑 /etc/multipath.conf,添加如下内容:defaults { user_friendly_names yes find_multipaths yes}devices { device { vendor "DELL" product "PowerVault" path_grouping_policy multibus path_checker directio hardware_handler "0" failback immediate }}重启服务并验证:
systemctl restart multipathdmultipath -ll输出应显示多个路径指向同一LUN,如:
mpatha (3600605b00e1f4f401c3d7e7e7e7e7e7) dm-0 DELL,PowerVaultsize=100G features='1 queue_if_no_path' hwhandler='0' wp=rw|-+- policy='round-robin 0' prio=1 status=active| `- 2:0:0:1 sdb 8:16 active ready running`-+- policy='round-robin 0' prio=1 status=enabled `- 3:0:0:1 sdc 8:32 active ready running使用Oracle ASMCA工具创建磁盘组:
/dev/mapper/mpatha1(OCR)、/dev/mapper/mpatha2(Voting)、/dev/mapper/mpatha3(DATA)OCR_DG、VOTE_DG、DATA_DG✅ 最佳实践:OCR与Voting Disk必须位于独立磁盘,且至少3个Voting Disk(三节点以上),双节点可配置2个Voting Disk + 1个仲裁磁盘。
groupadd oinstallgroupadd dbagroupadd operuseradd -g oinstall -G dba,oper oraclepasswd oraclefs.aio-max-nr = 1048576fs.file-max = 6815744kernel.shmall = 2097152kernel.shmmax = 10737418240kernel.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所有节点必须使用相同NTP服务器:
yum install -y ntpsystemctl enable ntpdntpq -p📌 注意:Oracle RAC对时间同步精度要求极高,偏差超过100ms将导致节点被驱逐。
/u01/app/oracle/product/19.0.0/grid 和 /u01/app/oracle/product/19.0.0/dbhome_1export ORACLE_BASE=/u01/app/oracleexport ORACLE_HOME=/u01/app/oracle/product/19.0.0/gridexport PATH=$ORACLE_HOME/bin:$PATHexport LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/libcd /u01/app/oracle/product/19.0.0/grid./runInstaller安装向导关键步骤:
/u01/app/oracle/product/19.0.0/grid/root.shcrsctl check clusterocrcheckcrsctl stat res -t预期输出:
Cluster is healthyConfiguration for OCR is validNAME STATE SERVER STATE_DETAILS--------------------------- ------------------- -------------------ora.cluster_interconnect.haip ONLINE node1ora.cssd ONLINE node1ora.cssd ONLINE node2在任一节点运行:
cd /u01/app/oracle/product/19.0.0/dbhome_1./runInstaller选择“Install database software only”,不创建数据库。
dbca -silent -createDatabase \ -templateName General_Purpose.dbc \ -gdbname RACDB \ -sid RACDB \ -responseFile NO_VALUE \ -characterSet AL32UTF8 \ -nationalCharacterSet AL16UTF16 \ -databaseType OLTP \ -nodeinfo node1,node2 \ -storageType ASM \ -diskGroupName DATA_DG \ -recoveryAreaDestination FRA_DG \ -memoryPercentage 40 \ -emConfiguration NONE完成部署后,执行以下测试:
节点故障模拟在node1上执行:shutdown -h now观察node2是否自动接管VIP与数据库实例,客户端连接是否无中断。
负载均衡测试使用SQL*Plus从多个客户端并发连接,查看v$active_session_history中会话是否均匀分布。
缓存融合监控查询:SELECT * FROM v$gcspfstat;若GCS SHADOWS值持续增长,说明缓存争用严重,需优化应用SQL或增加内存。
日志审计检查$ORACLE_BASE/diag/crs/下的alert日志,排查心跳超时、网络丢包等潜在风险。
ocrconfig -export /backup/ocr_backup_$(date +%Y%m%d)asmcmd lsdg,避免磁盘组满导致实例宕机🔧 企业级建议:部署RAC后,建议结合自动化运维平台(如Ansible或Terraform)实现配置标准化。对于希望降低运维复杂度的企业,可考虑申请试用&https://www.dtstack.com/?src=bbs 的云原生数据库托管服务,实现RAC架构的弹性伸缩与智能监控。
| 问题 | 原因 | 解决方案 |
|---|---|---|
| CRS启动失败 | 时间不同步 | 使用chrony同步,确保偏差<50ms |
| ASM磁盘无法识别 | 权限错误 | chown oracle:oinstall /dev/mapper/mpath* + chmod 660 |
| VIP无法浮动 | DNS未配置 | 在DNS或hosts中绑定VIP到主机名 |
| 安装卡在“Linking”阶段 | 编译器缺失 | 安装gcc-c++、libaio-devel、elfutils-libelf-devel |
Oracle RAC部署虽复杂,但其带来的高可用性、负载均衡与零停机维护能力,是支撑核心业务系统的关键技术。在数据驱动的时代,数据库的稳定性直接决定企业运营的连续性。通过本文的详细步骤,您已掌握双节点RAC的完整部署流程。下一步,建议结合监控工具(如Enterprise Manager)实现自动化告警,并持续优化SQL与存储I/O。
对于希望进一步降低运维成本、提升部署效率的企业,不妨探索申请试用&https://www.dtstack.com/?src=bbs 提供的智能运维解决方案,让RAC集群从“手动维护”走向“自主运行”。
最终,技术的价值不在于复杂性,而在于可靠性。当您的系统在凌晨三点自动完成节点切换,而业务无感知时,您将真正体会到Oracle RAC的价值。申请试用&https://www.dtstack.com/?src=bbs,开启您的高可用数据库之旅。
申请试用&下载资料