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

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

   数栈君   发表于 2026-03-28 19:03  60  0

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

在企业级数据中台建设中,高可用性与高性能是核心诉求。Oracle Real Application Clusters(RAC)作为Oracle官方提供的集群解决方案,允许多个节点共享同一数据库实例,实现负载均衡与故障自动切换。在数字孪生、实时分析、金融交易等对系统连续性要求严苛的场景中,Oracle RAC部署已成为保障业务不中断的关键基础设施。

本文将深入解析双节点Oracle RAC集群的完整部署流程,并重点优化共享存储架构,确保系统在高并发、低延迟环境下的稳定运行。所有操作均基于Oracle Linux 8.x与Oracle Database 19c环境,适用于生产级部署。


一、部署前的基础设施准备

Oracle RAC依赖于共享存储、网络冗余与时间同步三大基石。任何一项配置失误都将导致集群无法启动。

1.1 硬件与网络规划

  • 双节点服务器:建议使用相同型号的物理服务器,确保CPU、内存、磁盘规格一致,避免资源争用导致的性能倾斜。
  • 网络接口:至少需配置三张网卡:
    • Public Network:用于客户端连接与节点间通信(如192.168.1.0/24)
    • Private Network:用于RAC内部心跳与缓存融合(Cache Fusion),建议使用10Gbps光纤或InfiniBand,IP段独立(如10.10.10.0/24)
    • Virtual IP (VIP):每个节点分配一个浮动VIP,用于客户端连接重定向,避免单点故障
  • DNS与Hosts配置:必须为每个节点配置静态主机名与VIP解析。推荐使用DNS服务,若使用/etc/hosts,则必须在所有节点同步更新。
# /etc/hosts 示例192.168.1.10  racnode1.example.com racnode1192.168.1.11  racnode2.example.com racnode210.10.10.10   racnode1-priv.example.com racnode1-priv10.10.10.11   racnode2-priv.example.com racnode2-priv192.168.1.100 racnode1-vip.example.com racnode1-vip192.168.1.101 racnode2-vip.example.com racnode2-vip

1.2 共享存储选型与配置

共享存储是RAC的“心脏”。推荐使用以下三种方案:

方案适用场景优势风险
ASM + FC SAN中大型企业高性能、低延迟、成熟稳定成本高,依赖光纤交换机
ASM + iSCSI中小型部署成本低,基于以太网延迟较高,需优化TCP参数
NFS over 10Gbps云环境或混合架构易管理,支持快照非Oracle官方推荐,存在单点风险

推荐配置:使用两台存储控制器构建双活SAN,划分LUN并映射至两个节点。每个节点应能看到相同的LUN列表。

# 使用multipath检测共享磁盘multipath -ll# 输出示例:mpatha (3600601601bb40d001a1e3d4f8d3a8e11) dm-0 DELL,MD3220size=200G features='1 queue_if_no_path' hwhandler='1 alua' wp=rw|-+- policy='service-time 0' prio=50 status=active| |- 1:0:0:1 sdb 8:16 active ready running| `- 2:0:0:1 sdd 8:48 active ready running`-+- policy='service-time 0' prio=10 status=enabled  |- 1:0:1:1 sdc 8:32 active ready running  `- 2:0:1:1 sde 8:64 active ready running

关键点:所有共享磁盘必须设置为共享型设备,避免节点间锁冲突。使用udev规则绑定持久设备名,防止重启后设备名变更导致ASM无法识别。

# /etc/udev/rules.d/99-oracle-asm.rulesKERNEL=="sd*", SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name", RESULT=="3600601601bb40d001a1e3d4f8d3a8e11", SYMLINK+="asm-disk1", OWNER="grid", GROUP="dba", MODE="0660"

二、操作系统与软件环境配置

2.1 用户与组规划

创建专用用户与组,确保权限隔离:

groupadd -g 1000 oinstallgroupadd -g 1001 dbagroupadd -g 1002 opergroupadd -g 1003 asmadmingroupadd -g 1004 asmdbagroupadd -g 1005 asmoperuseradd -u 1100 -g oinstall -G dba,asmdba,oper griduseradd -u 1101 -g oinstall -G dba,asmdba,oper oracle

⚠️ 注意:grid用户负责CRS与ASM管理,oracle用户负责数据库实例。二者不可混淆。

2.2 内核参数调优

编辑/etc/sysctl.conf,应用以下关键参数:

fs.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 -p

2.3 资源限制设置

编辑/etc/security/limits.conf

grid soft nofile 1024grid hard nofile 65536grid soft nproc 16384grid hard nproc 16384grid soft stack 10240grid hard stack 32768oracle soft nofile 1024oracle hard nofile 65536oracle soft nproc 16384oracle hard nproc 16384oracle soft stack 10240oracle hard stack 32768

2.4 时间同步(NTP/Chrony)

RAC要求节点间时间偏差小于100毫秒。推荐使用Chrony:

yum install chrony -ysystemctl enable --now chronyd# 编辑 /etc/chrony.conf,添加NTP服务器server ntp.aliyun.com iburst

验证同步状态:

chronyc sources -v

三、Oracle Grid Infrastructure 安装

Grid Infrastructure(GI)是RAC的集群管理层,包含OCR、Voting Disk与CRS服务。

3.1 安装前检查

使用Oracle Universal Installer(OUI)的runcluvfy工具验证环境:

./runcluvfy.sh stage -pre crsinst -n racnode1,racnode2 -verbose

修复所有警告项,特别是网络连通性、共享存储可见性与权限问题。

3.2 安装步骤

  1. 挂载Oracle 19c GI安装介质
  2. 启动./runInstaller
  3. 选择“Install and Configure Oracle Grid Infrastructure for a Cluster”
  4. 设置集群名称(如rac-cluster)、SCAN名称(如rac-scan.example.com
  5. 指定公共与私有网络接口
  6. 配置ASM磁盘组:选择共享LUN,创建名为DATA的磁盘组,冗余模式选EXTERNAL(若使用RAID10)或NORMAL(双副本)
  7. 指定ASM密码,设置grid用户为管理员

重要提示:在安装过程中,系统会自动在共享存储上创建OCR与Voting Disk。确保这些文件位于独立于数据文件的磁盘上,避免I/O竞争。

安装完成后,以root身份在两个节点执行:

/u01/app/19.0.0/grid/root.sh

四、数据库实例部署与共享存储优化

4.1 使用DBCA创建RAC数据库

  1. 启动dbca
  2. 选择“Oracle Real Application Clusters database”
  3. 创建数据库,命名如RACDB
  4. 选择“General Purpose or Transaction Processing”
  5. 数据文件存储位置选择ASM磁盘组(如+DATA
  6. 启用“Enable Archive Log Mode”以支持备份与恢复
  7. 配置监听器为自动注册模式

4.2 共享存储性能优化策略

优化项实施方法
ASM条带化创建磁盘组时指定AU大小为4MB(默认1MB),提升大文件读写效率
磁盘组冗余生产环境推荐NORMAL冗余(双副本),避免单盘故障导致服务中断
I/O调度器将磁盘调度器设为deadlinenoop,避免CFQ在SSD上引入延迟
ASM预读设置_asm_readahead_multiplier=16,加速顺序读取
网络优化在私网启用Jumbo Frames(MTU=9000),减少TCP包数量
# 查看ASM参数sqlplus / as sysasmSQL> show parameter asm# 修改预读参数(需重启ASM实例)ALTER SYSTEM SET "_asm_readahead_multiplier"=16 SCOPE=SPFILE;

4.3 监控与告警配置

部署后,启用Oracle Enterprise Manager(OEM)或使用crsctl监控集群状态:

crsctl check clustercrsctl stat res -t

建议配置邮件告警,当VIP切换、ASM磁盘离线或节点宕机时自动通知运维团队。


五、高可用性验证与故障演练

模拟节点宕机测试:

# 在racnode1上强制关机shutdown -h now

观察racnode2是否自动接管VIP与服务:

srvctl status database -d RACDB# 应显示:Instance RACDB1 is not running on node racnode1#         Instance RACDB2 is running on node racnode2

验证客户端连接是否无缝切换:

tnsping rac-scansqlplus user/pass@rac-scan/RACDB

✅ 成功标准:连接时间<3秒,无报错,数据一致性完整。


六、运维建议与最佳实践

  • 定期备份OCR与Voting Disk:使用ocrconfig -export导出配置
  • 避免在ASM中存储非数据库文件:如日志、备份文件应使用文件系统存储
  • 禁用SELinux与防火墙:除非有严格合规要求,否则建议关闭以避免干扰集群通信
  • 升级前做完整快照:包括操作系统、GI与数据库

结语:构建企业级高可用数据平台

Oracle RAC部署不是一次性任务,而是持续优化的过程。在数字孪生、实时风控、智能调度等场景中,RAC提供的“零停机”能力,是保障业务连续性的基石。通过合理的共享存储设计、网络隔离与参数调优,您可构建出具备金融级可靠性的数据库集群。

如需快速验证RAC架构在您业务场景中的表现,或希望获得自动化部署脚本支持,可申请专业环境试用,降低部署门槛:申请试用&https://www.dtstack.com/?src=bbs

对于正在规划数据中台架构的企业,建议将RAC与分布式缓存、流处理引擎结合,形成“存储-计算-分析”一体化架构。我们提供从硬件选型到灾备方案的全栈咨询服务:申请试用&https://www.dtstack.com/?src=bbs

若您希望实现数据库层的弹性扩展与智能运维,欢迎进一步了解我们的自动化部署平台,加速RAC集群上线周期:申请试用&https://www.dtstack.com/?src=bbs

申请试用&下载资料
点击袋鼠云官网申请免费试用: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条评论
社区公告
  • 大数据领域最专业的产品&技术交流社区,专注于探讨与分享大数据领域有趣又火热的信息,专业又专注的数据人园地

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