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

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

   数栈君   发表于 2026-03-28 13:38  32  0

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

在现代企业数据架构中,高可用性与弹性扩展已成为核心需求。对于需要7×24小时持续运行的关键业务系统,如金融交易、供应链管理、实时分析平台等,单点故障是不可接受的。Oracle Real Application Clusters(RAC)作为Oracle官方提供的集群解决方案,允许多个节点共享同一数据库实例,实现负载均衡与故障自动切换。本文将深入解析Oracle RAC在双节点环境下的完整部署流程,重点聚焦共享存储配置、网络规划、集群软件安装与验证,为数据中台建设提供坚实底层支撑。


一、Oracle RAC部署的核心前提

Oracle RAC不是简单的多机部署,而是依赖于底层硬件与网络架构的精密协同。部署前必须满足以下硬性条件:

  • 双节点服务器:建议使用相同型号、相同配置的物理服务器(或虚拟机),确保性能对称。CPU核心数、内存容量、磁盘I/O能力需一致,避免因资源不均导致负载倾斜。
  • 共享存储系统:RAC要求所有节点访问同一套存储设备。推荐使用SAN(存储区域网络)或NAS(网络附加存储),并配置为ASM(Automatic Storage Management)可识别的裸设备或ASM磁盘组。不支持本地磁盘作为共享存储。
  • 网络架构:需配置至少三张网卡:
    • 公共网络(Public Network):用于客户端连接与管理,分配静态IP。
    • 私有网络(Private Network):用于节点间心跳通信与缓存融合(Cache Fusion),必须为专用网络,禁止与公共网络混用,推荐使用10Gbps以太网。
    • 虚拟IP(VIP):由Oracle Clusterware自动管理,用于故障转移时的客户端重定向。

关键提示:私有网络延迟必须低于1ms,丢包率趋近于0。任何网络抖动都可能导致“脑裂”(Split-Brain)现象,引发集群崩溃。


二、共享存储的配置与ASM磁盘组创建

共享存储是RAC的“心脏”。在双节点环境中,必须确保两个节点都能同时读写同一份数据文件、控制文件与重做日志。

2.1 存储设备准备

在SAN环境中,通常通过光纤通道或iSCSI将LUN(逻辑单元号)映射至两个节点。使用lsblkfdisk -l确认设备是否可见:

lsblk | grep -E "(sdb|sdc|sdd)"

输出示例:

sdb      8:16   0   50G  0 disk sdc      8:32   0   50G  0 disk sdd      8:48   0   20G  0 disk 

其中:

  • sdb:用于OCR(Oracle Cluster Registry)与Voting Disk
  • sdc:用于数据库数据文件
  • sdd:用于快速恢复区(FRA)

2.2 配置udev规则(避免设备名漂移)

Linux系统重启后,设备名称可能变化。为确保ASM稳定识别,需配置udev规则:

vim /etc/udev/rules.d/99-oracle-asm.rules

添加如下内容(根据实际WWID调整):

KERNEL=="sdb", SUBSYSTEM=="block", PROGRAM="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name", RESULT=="36000c29b1a8e4d1a2b3c4d5e6f7a8b9c", SYMLINK+="asm-ocr", OWNER="grid", GROUP="asmadmin", MODE="0660"KERNEL=="sdc", SUBSYSTEM=="block", PROGRAM="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name", RESULT=="36000c29b1a8e4d1a2b3c4d5e6f7a8b9d", SYMLINK+="asm-data", OWNER="grid", GROUP="asmadmin", MODE="0660"KERNEL=="sdd", SUBSYSTEM=="block", PROGRAM="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name", RESULT=="36000c29b1a8e4d1a2b3c4d5e6f7a8b9e", SYMLINK+="asm-fra", OWNER="grid", GROUP="asmadmin", MODE="0660"

重载规则并验证:

udevadm control --reload-rulesudevadm triggerls -l /dev/asm-*

2.3 使用ASMCA创建磁盘组

登录grid用户,启动ASM配置助手:

asmca

在图形界面中:

  • 创建名为DATA的磁盘组,冗余类型选择EXTERNAL(若存储本身提供RAID保护)
  • 添加asm-data设备
  • 创建名为FRA的磁盘组,用于归档日志与备份
  • 创建名为OCR的磁盘组,仅添加asm-ocr,冗余类型选择EXTERNAL

⚠️ 注意:OCR与Voting Disk必须位于独立磁盘组,且不能与数据文件共用。Oracle官方建议OCR使用至少3个磁盘以支持高可用,但在双节点环境中,若存储层已具备冗余,单磁盘也可接受。


三、集群软件安装与配置(Oracle Grid Infrastructure)

在两个节点上分别执行以下步骤:

3.1 安装前系统准备

  • 关闭防火墙与SELinux:

    systemctl stop firewalld && systemctl disable firewalldsetenforce 0sed -i 's/SELINUX=enforcing/SELINUX=permissive/g' /etc/selinux/config
  • 配置主机名与DNS解析:

    hostnamectl set-hostname racnode1echo "192.168.1.10 racnode1 racnode1.example.com" >> /etc/hostsecho "192.168.1.11 racnode2 racnode2.example.com" >> /etc/hostsecho "192.168.2.10 racnode1-priv racnode1-priv.example.com" >> /etc/hostsecho "192.168.2.11 racnode2-priv racnode2-priv.example.com" >> /etc/hosts
  • 安装依赖包:

    yum install -y binutils compat-libcap1 compat-libstdc++-33 gcc gcc-c++ glibc glibc-devel ksh libgcc libstdc++ libstdc++-devel libaio libaio-devel make sysstat libxcb libX11 libXau libXi libXtst libXrender libXext

3.2 创建用户与组

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,asmadmin,asmdba,oper griduseradd -u 1101 -g oinstall -G dba,oper,asmdba oracle

3.3 安装Grid Infrastructure

挂载Oracle Grid Infrastructure 19c或21c安装介质,执行:

cd /media/oracle/grid./runInstaller

选择“Install and Configure Oracle Grid Infrastructure for a Cluster”,点击“Next”。

  • 输入集群名称(如rac-cluster
  • 设置SCAN名称(如rac-scan.example.com),DNS需解析为3个IP(建议使用DNS轮询)
  • 配置网络接口:绑定公共网卡与私有网卡
  • 指定ASM磁盘组路径(/dev/asm-*
  • 设置ASM密码(建议与数据库密码不同)
  • 执行root脚本:在两个节点依次执行/u01/app/oraInventory/orainstRoot.sh/u01/app/19.0.0/grid/root.sh

安装完成后,验证集群状态:

crsctl check clustercrsctl stat res -t

输出应显示所有资源为ONLINE,包括ora.cluster_interconnect.haipora.cssdora.diskmon等。


四、数据库实例部署与验证

在Grid Infrastructure安装完成后,使用DBCA(Database Configuration Assistant)创建RAC数据库:

dbca

选择“Create a Database” → “Oracle Real Application Clusters database” → “General Purpose or Transaction Processing”

  • 数据库名:RACDB
  • 全局数据库名:racdb.example.com
  • 勾选所有节点(racnode1, racnode2)
  • 存储类型:选择ASM,指定DATA与FRA磁盘组
  • 配置监听器:自动创建
  • 设置字符集:建议使用AL32UTF8
  • 启用归档模式(生产环境必须)

安装完成后,验证数据库实例状态:

srvctl status database -d RACDB

应输出:

Instance RACDB1 is running on node racnode1Instance RACDB2 is running on node racnode2

连接测试:

sqlplus sys@rac-scan:1521/racdb.example.com as sysdba

成功连接后执行:

SELECT instance_name, host_name FROM v$instance;

输出应显示两个实例分别运行在不同节点,证明负载均衡与高可用机制已生效。


五、性能优化与运维建议

  • 监控心跳网络:使用ping -c 100 racnode1-priv持续检测延迟,若平均延迟>2ms,需排查交换机或网卡配置。
  • 定期备份OCR与Voting Disk
    ocrconfig -showbackupocrconfig -manualbackup
  • 启用自动存储管理(ASM)快照:利用ASM快照功能实现零停机备份。
  • 日志集中分析:使用adrci工具统一收集alert.logtrace文件,便于故障追溯。

六、常见错误与解决方案

错误现象原因解决方案
CRS-4535: Cannot communicate with cluster ready services时间不同步使用chrony同步所有节点时间,确保误差<1秒
ASM磁盘无法识别udev规则未生效重新执行udevadm trigger,检查设备权限
DBCA卡在“Creating database”共享存储权限错误确保grid:asmadmin对ASM设备有读写权限
VIP无法浮动网络子网配置错误检查公共网络与VIP是否在同一子网

七、结语:为数据中台构建高可用基石

Oracle RAC集群不仅是数据库的冗余方案,更是企业构建数字孪生、实时决策系统的核心基础设施。它确保了在节点故障、网络波动、硬件老化等场景下,业务连续性不被中断。在数据中台架构中,RAC为上游数据采集、模型计算、可视化分析提供稳定的数据源,避免因数据库宕机导致整个分析链路瘫痪。

如需进一步降低部署复杂度、提升运维效率,建议结合自动化工具(如Ansible)实现集群配置模板化。同时,可申请专业支持服务,加速项目落地:

申请试用&https://www.dtstack.com/?src=bbs

对于希望快速验证RAC架构可行性的团队,可先在VMware或KVM中搭建双节点测试环境,使用iSCSI模拟共享存储,完成全流程演练:

申请试用&https://www.dtstack.com/?src=bbs

最终,当系统稳定运行于生产环境,您将获得真正的业务韧性——这正是数字时代企业竞争力的底层保障。

申请试用&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条评论
社区公告
  • 大数据领域最专业的产品&技术交流社区,专注于探讨与分享大数据领域有趣又火热的信息,专业又专注的数据人园地

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