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

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

   数栈君   发表于 2026-03-27 14:56  81  0

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

在企业级数据中台架构中,高可用性与高性能是核心诉求。Oracle Real Application Clusters(RAC)作为Oracle官方提供的集群数据库解决方案,允许多个节点共享同一数据库实例,实现负载均衡与故障自动切换,是构建稳定数据服务底座的关键技术。本文将深入解析Oracle RAC在双节点环境下的完整部署流程,涵盖操作系统配置、共享存储搭建、网络规划、集群软件安装及数据库创建,为企业提供可落地的部署指南。


一、Oracle RAC部署前提条件

在开始部署前,必须确保硬件与软件环境满足Oracle官方推荐标准:

  • 节点数量:至少2个物理服务器(推荐同构配置,CPU、内存、磁盘规格一致)
  • 操作系统:Oracle Linux 8.x / Red Hat Enterprise Linux 8.x(64位),建议使用官方认证版本
  • 内存:每个节点≥16GB RAM(生产环境建议≥32GB)
  • 磁盘空间:系统盘≥50GB,共享存储≥200GB(用于OCR、Voting Disk与数据文件)
  • 网络接口:每个节点至少配备2个网卡(1个用于公共网络,1个用于私有心跳网络)
  • 时间同步:所有节点必须启用NTP或Chrony服务,时间偏差≤1秒
  • 用户与权限:创建统一的oracle用户与oinstall、dba组,禁用SELinux与防火墙(或配置精确规则)

⚠️ 注意:Oracle RAC依赖共享存储架构,不能使用本地磁盘作为数据文件存储。必须使用SAN、NAS或Oracle ASM磁盘组。


二、共享存储配置:ASM与多路径的基石

Oracle RAC的核心在于“共享存储”——多个节点必须能同时访问同一份数据文件。常见的实现方式为使用Oracle Automatic Storage Management(ASM),它提供卷管理、条带化与镜像功能,替代传统文件系统。

2.1 共享存储类型选择

类型适用场景推荐度
SAN(光纤通道)高性能、低延迟、企业级⭐⭐⭐⭐⭐
iSCSI成本较低,适合中等负载⭐⭐⭐⭐
NFS(仅限Oracle 19c+)简化部署,但性能受限⭐⭐

推荐使用光纤通道SAN或iSCSI,确保多路径冗余(Multipath)配置,避免单点故障。

2.2 配置多路径(Multipath)

在Linux系统中,使用device-mapper-multipath工具实现路径冗余:

# 安装多路径工具yum install -y device-mapper-multipath# 生成配置文件mpathconf --enable --with_multipathd y# 扫描发现共享磁盘multipath -ll# 编辑 /etc/multipath.conf,定义别名与策略defaults {    user_friendly_names yes    path_grouping_policy multibus}

配置完成后,重启服务并验证:

systemctl restart multipathdmultipath -ll

输出应显示每个磁盘有多个路径(如:dm-0 对应 mpatha),表明多路径生效。

2.3 使用ASMlib或UDEV绑定设备(推荐UDEV)

为避免设备名重启后变化,需通过UDEV规则绑定永久设备名:

# 查看磁盘UUIDls -la /dev/disk/by-id/ | grep -i "your-san-disk"# 创建UDEV规则文件:/etc/udev/rules.d/99-oracle-asm.rulesKERNEL=="sd*", SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name", RESULT=="36000c29b8a1e5a4b4d1a5e4e5a4b4d1a", SYMLINK+="asm-disk1", OWNER="oracle", GROUP="dba", MODE="0660"

重启udev并验证:

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

✅ 此步骤是RAC部署中最易出错环节之一,务必确保每个ASM磁盘在所有节点上拥有完全一致的设备名与权限


三、网络规划:公共网络与心跳网络分离

Oracle RAC依赖两个独立网络:

网络类型用途推荐配置
公共网络(Public Network)客户端连接、应用访问10.10.10.0/24,静态IP,绑定VIP
私有网络(Private Network)节点间心跳、缓存融合(Cache Fusion)192.168.10.0/24,独立网卡,无网关

❗ 私有网络必须禁止路由,仅用于节点间通信。建议使用1Gbps以上网卡,避免心跳超时导致节点驱逐(Split Brain)。

配置示例(节点1):

# 公共网络nmcli con modify eth0 ipv4.addresses 10.10.10.10/24nmcli con modify eth0 ipv4.gateway 10.10.10.1nmcli con modify eth0 ipv4.dns 8.8.8.8nmcli con up eth0# 私有网络nmcli con modify eth1 ipv4.addresses 192.168.10.1/24nmcli con modify eth1 ipv4.method manualnmcli con up eth1

在节点2上配置对应IP(如10.10.10.11、192.168.10.2),并确保两节点间能互相ping通。


四、安装Oracle Grid Infrastructure(GI)

Grid Infrastructure是RAC的集群管理层,包含Clusterware与ASM。

4.1 安装前准备

  • 下载Oracle 19c GI软件(版本需与数据库一致)
  • 解压至 /u01/app/19.0.0/grid
  • 设置环境变量:
export ORACLE_BASE=/u01/app/oracleexport ORACLE_HOME=/u01/app/19.0.0/gridexport PATH=$ORACLE_HOME/bin:$PATH

4.2 运行安装程序(图形化或静默)

推荐使用静默安装提升一致性:

./runInstaller -silent -responseFile /tmp/grid_install.rsp \  -ignorePrereqFailure \  -oracleBase /u01/app/oracle \  -oracleHome /u01/app/19.0.0/grid \  -inventoryLocation /u01/app/oraInventory \  -clusterName rac-cluster \  -nodeList node1,node2 \  -asmDiskGroupName DATA \  -asmDiskString 'ORCL:*' \  -asmsnmpPassword your_asm_pwd

🔧 响应文件需提前生成,包含所有节点IP、磁盘组名称、ASM密码等参数。

安装完成后,以root身份执行两个脚本:

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

4.3 验证集群状态

crsctl check clustercrsctl stat res -tolsnodes -n

输出应显示所有节点为“ONLINE”,资源状态为“ONLINE”。


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

5.1 安装数据库软件(仅在第一个节点)

  • 解压数据库安装包至 /u01/app/oracle/product/19.0.0/dbhome_1
  • 使用静默安装:
./runInstaller -silent -responseFile /tmp/db_install.rsp \  -oracleBase /u01/app/oracle \  -oracleHome /u01/app/oracle/product/19.0.0/dbhome_1 \  -inventoryLocation /u01/app/oraInventory \  -ignorePrereqFailure

执行root脚本:

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

5.2 使用DBCA创建RAC数据库

dbca -silent -createDatabase \  -templateName General_Purpose.dbc \  -gdbname RACDB \  -sid RACDB \  -responseFile NO_VALUE \  -characterSet AL32UTF8 \  -nationalCharacterSet AL16UTF16 \  -databaseType MULTIPURPOSE \  -memoryPercentage 40 \  -emConfiguration NONE \  -storageType ASM \  -diskGroupName DATA \  -recoveryGroupName FRA \  -nodeList node1,node2 \  -sampleSchema true \  -sysPassword your_sys_pwd \  -systemPassword your_system_pwd

✅ 数据库创建后,自动在两个节点上启动实例,监听器自动注册。

验证数据库状态:

srvctl status database -d RACDBsqlplus / as sysdbaselect instance_name, host_name from v$instance;

输出应显示两个实例(如RACDB_1RACDB_2),分别运行在不同节点。


六、性能优化与监控建议

  • ASM磁盘组:使用EXTERNAL或NORMAL冗余(非HIGH),避免过度镜像浪费空间
  • 网络:启用TCP快速打开(TCP Fast Open)与TCP窗口缩放
  • 内存:调整sga_targetpga_aggregate_target,避免节点间内存争用
  • 监控:使用crsctldmesgoemcli持续监控集群健康
  • 备份:使用RMAN + ASM快照,定期备份控制文件与归档日志

七、常见故障与解决方案

问题原因解决方案
CRS-4535: Cannot communicate with cluster manager时间不同步同步所有节点NTP,重启crs
ORA-15042: ASM disk is missingUDEV规则未生效重新加载udev规则,检查设备权限
TNS-12541: TNS:no listener监听器未注册执行lsnrctl start,检查tnsnames.ora
节点被驱逐私有网络延迟 > 300ms检查交换机配置,更换网线或网卡

八、结语:RAC是企业数据中台的可靠基石

Oracle RAC集群通过共享存储与多节点并发访问,实现了数据库层面的高可用与弹性扩展,是构建金融、政务、制造等关键业务系统的核心组件。尽管部署复杂,但其带来的业务连续性价值远超运维成本。建议在生产环境部署前,于测试环境完整演练至少3次,确保每一步配置可复现。

若您正在规划新一代数据平台架构,建议结合自动化运维工具(如Ansible)实现RAC部署标准化。同时,可考虑将RAC与数据湖、实时分析引擎结合,构建统一的数据服务中台。

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

企业级数据架构的稳定性,始于一次精准的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条评论
社区公告
  • 大数据领域最专业的产品&技术交流社区,专注于探讨与分享大数据领域有趣又火热的信息,专业又专注的数据人园地

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