博客 Oracle RAC集群部署实战:双节点配置与共享存储方案

Oracle RAC集群部署实战:双节点配置与共享存储方案

   数栈君   发表于 2026-03-28 16:35  88  0

Oracle RAC集群部署实战:双节点配置与共享存储方案

在企业级数据中台架构中,高可用性与弹性扩展能力是核心诉求。Oracle Real Application Clusters(RAC)作为Oracle数据库的集群解决方案,通过多节点共享同一数据库实例,实现负载均衡、故障自动切换与零停机维护,是构建稳定、高性能数据服务的首选架构。本文将深入解析Oracle RAC在双节点环境下的完整部署流程,涵盖硬件选型、共享存储配置、网络规划、集群软件安装与验证,为企业构建可靠的数据基础设施提供可落地的实践指南。


一、Oracle RAC架构核心原理

Oracle RAC允许多个节点(服务器)同时访问同一个数据库,所有节点共享同一组数据文件、控制文件和重做日志。这种“共享一切”的架构依赖于三个关键技术组件:

  • Clusterware(集群件):由Oracle Cluster Ready Services(CRS)和Oracle Grid Infrastructure组成,负责节点间通信、资源管理与故障检测。
  • 共享存储系统:所有节点必须能同时读写同一存储设备,通常使用SAN(存储区域网络)或NAS(网络附加存储)。
  • 私有网络(Interconnect):用于节点间心跳检测与缓存融合(Cache Fusion),确保数据一致性。

相较于单实例数据库,RAC的优势在于:

  • 高可用性:单节点故障不影响整体服务
  • 横向扩展:可通过增加节点提升并发处理能力
  • 在线维护:可在不影响业务前提下升级或重启节点

📌 适用于:金融交易系统、电信计费平台、政务数据中台等对连续性要求极高的场景。


二、部署前的硬件与网络规划

1. 节点配置要求(双节点标准)

组件推荐配置
CPU至少8核,建议16核以上(每节点)
内存32GB起步,建议64GB+(根据负载调整)
操作系统Oracle Linux 8.x / Red Hat Enterprise Linux 8.x(官方支持)
磁盘空间系统盘 ≥100GB;共享存储 ≥500GB(视数据量扩展)

⚠️ 注意:所有节点必须使用相同的操作系统版本、内核参数与补丁级别,避免兼容性问题。

2. 网络架构设计(三网分离)

Oracle RAC要求三张独立网络,物理隔离以保障性能与稳定性:

网络类型用途推荐带宽IP示例
公共网络(Public)客户端连接、应用访问1Gbps/10Gbps192.168.1.10, 192.168.1.11
私有网络(Private/Interconnect)节点间缓存同步、心跳检测10Gbps(必须)10.10.10.10, 10.10.10.11
虚拟IP(VIP)故障转移时的客户端重定向同公共网络192.168.1.100, 192.168.1.101

🔧 建议:私有网络使用专用网卡,禁用交换机端口的流量控制与节能模式,避免心跳丢包。

3. 共享存储方案选型

共享存储是RAC的基石。推荐以下两种方案:

方案说明适用场景
SAN + ASM使用光纤通道或iSCSI连接存储阵列,通过Oracle ASM管理磁盘组企业级生产环境,高IOPS需求
NFS over 10Gbps通过高速网络挂载NAS存储,需配置NFSv4与lockd服务中小型部署,成本敏感型项目

推荐方案:SAN + ASM。ASM(Automatic Storage Management)是Oracle原生的存储管理工具,支持条带化、镜像、动态扩容,是RAC的标配。

存储分区建议

  • OCR(Oracle Cluster Registry):≥10GB(用于集群配置信息)
  • Voting Disk:≥10GB(用于仲裁,防止脑裂)
  • 数据文件、控制文件、重做日志:按业务需求分配,建议使用ASM磁盘组(DATA, FRA)

三、系统环境准备(关键步骤)

1. 操作系统配置

在两个节点上执行统一配置:

# 关闭防火墙与SELinuxsystemctl stop firewalld && systemctl disable firewalldsetenforce 0sed -i 's/SELINUX=enforcing/SELINUX=permissive/g' /etc/selinux/config# 创建用户组与用户groupadd oinstallgroupadd dbauseradd -g oinstall -G dba oracleecho "oracle:password" | chpasswd# 配置内核参数(/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# 限制配置(/etc/security/limits.conf)oracle soft nofile 1024oracle hard nofile 65536oracle soft nproc 16384oracle hard nproc 16384oracle soft stack 10240oracle hard stack 32768

2. 时间同步(NTP)

所有节点必须保持时间同步,误差不得超过5秒:

yum install ntp -ysystemctl enable ntpd && systemctl start ntpdntpdate -u pool.ntp.org

✅ 推荐使用专用NTP服务器,避免公网延迟影响。

3. SSH互信配置

在两个节点间建立oracle用户无密码SSH登录:

su - oraclessh-keygen -t rsassh-copy-id oracle@node1ssh-copy-id oracle@node2

验证:ssh node1 datessh node2 date 应无需密码返回时间。


四、安装Oracle Grid Infrastructure

  1. 下载介质从Oracle官网下载 Oracle Grid Infrastructure 19c 或 21c(推荐19c长期支持版)。

  2. 解压并运行安装程序

    unzip linuxx64_193000_grid_home.zipcd grid./runInstaller
  3. 安装向导关键选项

    • 选择 “Install and Configure Oracle Grid Infrastructure for a Cluster”
    • 节点选择:勾选两个节点(node1, node2)
    • 网络接口:指定公共网卡与私有网卡(Interconnect)
    • 存储类型:选择 ASM
    • 指定OCR与Voting Disk所在磁盘(需提前在存储中划分LUN并识别为ASM磁盘)
    • 设置ASM密码(强密码,记录保存)
  4. 执行root脚本安装过程中,系统会提示在两个节点上分别执行两个脚本:

    # 在node1执行/u01/app/oraInventory/orainstRoot.sh/u01/app/19.0.0/grid/root.sh# 在node2执行/u01/app/19.0.0/grid/root.sh
  5. 验证集群状态安装完成后,执行:

    crsctl check clustercrsctl stat res -t

    输出应显示所有资源(ora.cssd, ora.crsd, ora.diskmon)为 ONLINE


五、安装Oracle Database软件

  1. 解压数据库安装包下载Oracle Database 19c/21c软件包,解压至相同路径(如 /u01/app/oracle/product/19.0.0/dbhome_1

  2. 运行安装程序

    cd database./runInstaller
  3. 关键配置项

    • 选择 “Install database software only”(不创建数据库)
    • 节点选择:勾选两个节点
    • 安装路径:与Grid Infrastructure一致(避免路径冲突)
  4. 执行root脚本在两个节点上分别执行:

    /u01/app/oracle/product/19.0.0/dbhome_1/root.sh

六、创建RAC数据库

使用DBCA(Database Configuration Assistant)图形化工具创建数据库:

  1. 启动DBCA:

    dbca
  2. 选择 “Create a Database” → “RAC Database”

  3. 设置:

    • 数据库名:ORCL
    • 全局数据库名:orcl.example.com
    • 节点选择:全部选中
    • 存储类型:ASM
    • 快速恢复区:指定FRA磁盘组
    • 启用归档模式(生产必备)
    • 设置字符集:AL32UTF8
  4. 完成创建后,验证数据库状态:

    srvctl status database -d ORCL

    输出应显示两个实例均处于 OPEN 状态。


七、高可用性测试与运维建议

✅ 故障切换测试

手动关闭一个节点的数据库服务:

srvctl stop instance -d ORCL -i ORCL1

观察客户端连接是否自动切换至另一节点,应用是否无感知。

✅ 监控建议

  • 使用 crsctl stat res -t 监控集群资源
  • 使用 asmcmd 查看ASM磁盘组使用率
  • 配置Oracle Enterprise Manager(OEM)进行集中监控

✅ 备份策略

  • 使用RMAN备份至ASM或NFS共享目录
  • 定期验证备份有效性
  • 建议每日全备 + 每小时归档日志备份

八、常见陷阱与规避方法

问题原因解决方案
OCR/Voting Disk无法识别磁盘未初始化或权限错误使用 oracleasm createdisk 初始化,确保属主为oracle:oinstall
节点间心跳超时私有网络延迟高或交换机配置不当使用10Gbps网卡,关闭Jumbo Frame冲突,启用流量优先级
DBCA创建失败DNS解析异常或主机名不一致确保 /etc/hosts 中所有节点IP与主机名正确映射
ASM磁盘组无法挂载多路径软件未配置安装multipath-tools并配置多路径策略

九、企业级建议:从RAC走向云原生演进

虽然Oracle RAC在传统数据中心仍具不可替代性,但随着云原生架构兴起,建议企业评估以下路径:

  • 短期:在本地部署RAC保障核心系统稳定
  • 中期:将非核心系统迁移至Oracle Autonomous Database
  • 长期:结合Kubernetes与容器化数据库,实现弹性伸缩

🚀 对于希望快速验证RAC架构可行性的团队,可申请试用专业云平台提供的RAC模拟环境,降低硬件投入风险。申请试用&https://www.dtstack.com/?src=bbs

💡 企业数据中台建设不应仅关注技术选型,更需匹配运维能力。RAC虽强大,但对DBA技能要求极高。建议配套培训与自动化运维工具。申请试用&https://www.dtstack.com/?src=bbs

🔧 若您的团队正在规划数字孪生系统中的实时数据引擎,Oracle RAC可作为高可靠数据源底座。结合ETL与流处理框架,构建端到端的实时分析流水线。申请试用&https://www.dtstack.com/?src=bbs


结语

Oracle RAC部署是一项系统工程,涉及硬件、网络、操作系统、集群软件与数据库的深度协同。双节点配置虽非最大规模,但足以支撑中大型企业核心业务的高可用需求。遵循本文所述步骤,结合官方文档与最佳实践,可显著降低部署风险,提升系统稳定性。

在数据驱动的时代,架构的健壮性决定业务的连续性。RAC不是终点,而是迈向智能数据中台的重要基石。

申请试用&下载资料
点击袋鼠云官网申请免费试用:https://www.dtstack.com/?src=bbs
点击袋鼠云资料中心免费下载干货资料:https://www.dtstack.com/resources/?src=bbs
《数据资产管理白皮书》下载地址:https://www.dtstack.com/resources/1073/?src=bbs
《行业指标体系白皮书》下载地址:https://www.dtstack.com/resources/1057/?src=bbs
《数据治理行业实践白皮书》下载地址:https://www.dtstack.com/resources/1001/?src=bbs
《数栈V6.0产品白皮书》下载地址:https://www.dtstack.com/resources/1004/?src=bbs

免责声明
本文内容通过AI工具匹配关键字智能整合而成,仅供参考,袋鼠云不对内容的真实、准确或完整作任何形式的承诺。如有其他问题,您可以通过联系400-002-1024进行反馈,袋鼠云收到您的反馈后将及时答复和处理。
0条评论
社区公告
  • 大数据领域最专业的产品&技术交流社区,专注于探讨与分享大数据领域有趣又火热的信息,专业又专注的数据人园地

最新活动更多
微信扫码获取数字化转型资料