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

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

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

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

在企业级数据中台架构中,高可用性与横向扩展能力是保障业务连续性的核心要素。Oracle Real Application Clusters(RAC)作为Oracle官方提供的集群数据库解决方案,允许多个节点共享同一数据库实例,实现负载均衡与故障自动切换。在数字孪生、实时分析与高并发交易场景中,Oracle RAC部署已成为关键基础设施的首选方案。

本文将深入解析双节点Oracle RAC集群的完整部署流程,涵盖操作系统配置、共享存储搭建、网络规划、集群软件安装与数据库创建等关键环节,确保部署过程可复现、可验证、可运维。


一、Oracle RAC部署的核心架构要求

Oracle RAC依赖于三个核心组件协同工作:共享存储私有网络公共网络

  • 共享存储:所有节点必须访问同一组存储设备,用于存放数据文件、控制文件、重做日志和OCR(Oracle Cluster Registry)、Voting Disk等集群元数据。推荐使用ASM(Automatic Storage Management)管理共享存储,避免文件系统锁竞争。
  • 私有网络:用于节点间心跳通信与缓存融合(Cache Fusion),必须为独立网段,建议使用万兆以太网或InfiniBand,延迟需低于1ms。
  • 公共网络:用于客户端连接与数据库服务访问,需配置虚拟IP(VIP)与SCAN(Single Client Access Name)实现负载均衡。

⚠️ 注意:Oracle RAC不支持NFS作为共享存储介质,必须使用块设备(如SAN、iSCSI、ASM磁盘组)。


二、双节点环境准备:操作系统与网络配置

2.1 操作系统要求

推荐使用Oracle Linux 8.8或Red Hat Enterprise Linux 8.8,内核版本需≥4.18。安装时选择“Server with GUI”或“Server”模式,确保包含以下软件包:

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

关闭防火墙与SELinux:

systemctl stop firewalld && systemctl disable firewalldsetenforce 0sed -i 's/SELINUX=enforcing/SELINUX=permissive/g' /etc/selinux/config

2.2 网络规划示例(双节点)

角色IP地址用途
Node1 Public192.168.1.10客户端访问
Node2 Public192.168.1.11客户端访问
Node1 Private192.168.2.10心跳与缓存融合
Node2 Private192.168.2.11心跳与缓存融合
Node1 VIP192.168.1.100故障转移虚拟IP
Node2 VIP192.168.1.101故障转移虚拟IP
SCAN IP192.168.1.102~104(3个)客户端统一入口

✅ 所有节点需在/etc/hosts中配置静态解析,禁止依赖DNS:

192.168.1.10 node1.example.com node1192.168.1.11 node2.example.com node2192.168.2.10 node1-priv.example.com node1-priv192.168.2.11 node2-priv.example.com node2-priv192.168.1.100 node1-vip.example.com node1-vip192.168.1.101 node2-vip.example.com node2-vip192.168.1.102 scan.example.com scan192.168.1.103 scan.example.com scan192.168.1.104 scan.example.com scan

三、共享存储配置:ASM磁盘组搭建

Oracle RAC必须使用共享存储。在物理服务器上,可通过iSCSI或光纤通道挂载LUN。本例使用iSCSI模拟共享磁盘。

3.1 配置iSCSI目标端(存储服务器)

在存储服务器上创建3个LUN(各50GB),分别用于:

  • OCR/Voting Disk(需奇数个,建议3个)
  • DATA磁盘组(存放数据文件)
  • FRA磁盘组(存放归档日志与备份)
# 使用targetcli创建LUNtargetcli /backstores/block create name=ocr_disk dev=/dev/sdbtargetcli /backstores/block create name=data_disk dev=/dev/sdctargetcli /backstores/block create name=fra_disk dev=/dev/sddtargetcli /iscsi create iqn.2024-07.com.oracle:rac-storagetargetcli /iscsi/iqn.2024-07.com.oracle:rac-storage/tpg1/luns create /backstores/block/ocr_disktargetcli /iscsi/iqn.2024-07.com.oracle:rac-storage/tpg1/luns create /backstores/block/data_disktargetcli /iscsi/iqn.2024-07.com.oracle:rac-storage/tpg1/luns create /backstores/block/fra_disktargetcli /iscsi/iqn.2024-07.com.oracle:rac-storage/tpg1/acls create iqn.1994-05.com.redhat:node1targetcli /iscsi/iqn.2024-07.com.oracle:rac-storage/tpg1/acls create iqn.1994-05.com.redhat:node2

3.2 在双节点挂载iSCSI目标

在Node1与Node2执行:

yum install -y iscsi-initiator-utilsiscsiadm -m discovery -t sendtargets -p 192.168.1.200iscsiadm -m node -p 192.168.1.200 --login

验证磁盘是否识别:

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

3.3 配置udev规则实现持久化设备名

创建/etc/udev/rules.d/99-oracle-asm.rules

KERNEL=="sdb", SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name", RESULT=="36000c29d8a1b2e4f1a8b5c3d7e9f0a1", SYMLINK+="asm-ocr1", OWNER="grid", GROUP="asmadmin", MODE="0660"KERNEL=="sdc", SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name", RESULT=="36000c29d8a1b2e4f1a8b5c3d7e9f0a2", 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=="36000c29d8a1b2e4f1a8b5c3d7e9f0a3", SYMLINK+="asm-fra", OWNER="grid", GROUP="asmadmin", MODE="0660"

重载规则并验证:

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

四、用户与环境变量配置

创建Oracle安装用户组与用户:

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

设置密码:

passwd gridpasswd oracle

配置环境变量(/home/grid/.bash_profile):

export ORACLE_BASE=/u01/app/gridexport ORACLE_HOME=/u01/app/19.0.0/gridexport PATH=$ORACLE_HOME/bin:$PATHexport LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/libexport CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlibexport ASM_DISKSTRING='/dev/asm*'

同理配置/home/oracle/.bash_profile,设置ORACLE_BASE=/u01/app/oracleORACLE_HOME=/u01/app/oracle/product/19.0.0/dbhome_1


五、安装Oracle Grid Infrastructure(集群软件)

  1. 下载Oracle Grid Infrastructure 19c(含Clusterware与ASM)。
  2. 解压至/tmp/grid,执行:
cd /tmp/grid./runInstaller
  • 选择“Install and Configure Oracle Grid Infrastructure for a Cluster”
  • 输入节点名(node1, node2),配置SSH互信
  • 设置ASM磁盘组:选择/dev/asm-ocr1, /dev/asm-ocr2, /dev/asm-ocr3作为OCR/Voting Disk
  • 创建DATA磁盘组(冗余:EXTERNAL),使用/dev/asm-data
  • 创建FRA磁盘组(冗余:EXTERNAL),使用/dev/asm-fra
  • 执行root脚本(在两个节点分别运行)

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

crsctl check clustercrsctl stat res -t

输出应显示所有资源为ONLINE。


六、安装Oracle Database软件并创建RAC数据库

  1. 解压Oracle Database 19c安装包至/tmp/database
  2. 执行:
cd /tmp/database./runInstaller
  • 选择“Install database software only”
  • 选择“Oracle Real Application Clusters database installation”
  • 指定Grid Infrastructure安装路径
  • 完成后,使用DBCA创建数据库:
dbca -silent -createDatabase \  -templateName General_Purpose.dbc \  -gdbname RACDB \  -sid RACDB \  -responseFile NO_VALUE \  -characterSet AL32UTF8 \  -nationalCharacterSet AL16UTF16 \  -registerWithDirService FALSE \  -listeners LISTENER \  -nodeinfo node1,node2 \  -storageType ASM \  -diskGroupName DATA \  -recoveryGroupName FRA \  -databaseType MULTIPURPOSE \  -memoryPercentage 40 \  -emConfiguration NONE

💡 建议在创建数据库前,使用srvctl config database验证RAC实例注册状态。


七、验证与性能调优

部署完成后,执行以下验证:

# 查看实例状态srvctl status database -d RACDB# 查看监听器srvctl status listener# 查看ASM磁盘组使用率asmcmd lsdg# 检查缓存融合性能(关键指标)sqlplus / as sysdbaSQL> select * from v$ges_stat;

建议开启自动内存管理(AMM)与并行查询,针对数字孪生场景优化PGA与SGA比例。


八、运维建议与高可用保障

  • 定期备份OCR与Voting Diskocrconfig -export /backup/ocr_backup.dmp
  • 监控心跳延迟:使用crsctl check cluster -verbose
  • 避免手动干预集群资源:所有操作应通过srvctl命令执行
  • 启用Fast Start Failover:结合Data Guard实现跨数据中心容灾

🚀 企业级部署中,建议结合自动化工具(如Ansible)实现集群配置标准化。如需快速验证RAC部署方案,可申请试用专业集群管理平台,降低运维复杂度:申请试用&https://www.dtstack.com/?src=bbs


九、常见错误与解决方案

问题原因解决方案
CRS-4535: Cannot communicate with clusterware时间不同步使用NTP同步所有节点时间,确保偏差<1秒
ASM磁盘无法识别udev规则未生效重启udev服务,检查设备权限与符号链接
DBCA卡在“Creating Database”共享存储权限错误确保grid用户对ASM磁盘有读写权限
VIP无法浮动网络子网配置错误检查public网络是否在同一子网,禁用防火墙

十、结语:构建企业级高可用数据库基石

Oracle RAC部署虽复杂,但其带来的高可用性、弹性扩展与零停机维护能力,使其成为金融、制造、能源等行业核心系统不可替代的架构选择。在数字孪生系统中,RAC可支撑千万级实时数据写入;在数据中台架构下,其多节点并行处理能力显著提升ETL与OLAP性能。

部署成功后,建议结合监控系统(如Zabbix或Prometheus)采集ASM IOPS、缓存命中率、节点心跳延迟等关键指标,构建可视化运维看板。

如需进一步降低部署门槛,提升集群稳定性,可参考专业厂商提供的自动化部署方案:申请试用&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条评论
社区公告
  • 大数据领域最专业的产品&技术交流社区,专注于探讨与分享大数据领域有趣又火热的信息,专业又专注的数据人园地

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