Oracle RAC集群部署实战:双节点配置与共享存储设置
在现代企业数据架构中,高可用性与负载均衡已成为核心需求。对于关键业务系统,如财务结算、交易处理、客户关系管理等,单点故障意味着巨大的业务风险。Oracle Real Application Clusters(RAC)作为Oracle官方提供的集群解决方案,允许多个节点共享同一数据库实例,实现无缝故障转移与横向扩展。本文将深入解析Oracle RAC部署的实战流程,聚焦双节点环境下的系统配置、共享存储设置与网络规划,为企业构建稳定、高性能的数据库集群提供可落地的技术指南。
在开始部署前,必须明确Oracle RAC并非简单的“多台服务器装Oracle”,而是一个依赖底层基础设施高度协同的系统工程。其成功部署依赖于三大支柱:
⚠️ 注意:Oracle RAC对存储性能与网络延迟极为敏感。建议使用SAN或NAS存储,且网络延迟应低于1ms。若使用iSCSI,需启用Jumbo Frames(MTU≥9000)以降低开销。
共享存储是RAC的“心脏”。在双节点环境中,推荐使用以下架构:
| 类型 | 适用场景 | 推荐理由 |
|---|---|---|
| SAN(光纤通道) | 生产环境首选 | 低延迟、高吞吐、成熟稳定 |
| iSCSI over 10GbE | 中小型企业 | 成本较低,性能可满足多数场景 |
| NFS(仅限Oracle 19c+) | 云或虚拟化环境 | 支持ASM over NFS,简化管理 |
✅ 推荐使用Oracle Automatic Storage Management(ASM)管理共享存储。ASM提供条带化、镜像、动态重平衡等功能,是Oracle官方推荐的存储管理方式。
假设使用SAN存储,分配如下LUN:
| LUN编号 | 大小 | 用途 | 文件系统/ASM磁盘组 |
|---|---|---|---|
| LUN1 | 50GB | OCR + Voting Disk | OCR_DG |
| LUN2 | 100GB | Redo Log Files | REDO_DG |
| LUN3 | 200GB | Data Files | DATA_DG |
| LUN4 | 150GB | Flash Recovery Area | FRA_DG |
🔧 每个LUN需在两个节点上均可见,且权限一致(属主为oracle:oinstall)。使用
lsblk或multipath -ll验证多路径配置是否生效。
为避免设备名漂移(如/dev/sdb → /dev/sdc),必须配置udev规则:
# 查看LUN的WWIDscsi_id -g -u -s /block/sdb# 编辑udev规则文件vim /etc/udev/rules.d/99-oracle-asm.rules# 添加规则(示例)KERNEL=="sd*", BUS=="scsi", PROGRAM=="/usr/lib/udev/scsi_id -g -u -s %p", RESULT=="36006016012345600123456789abcdef", SYMLINK+="asm-ocr", OWNER="oracle", GROUP="oinstall", MODE="0660"KERNEL=="sd*", BUS=="scsi", PROGRAM=="/usr/lib/udev/scsi_id -g -u -s %p", RESULT=="36006016012345600123456789abcdeg", SYMLINK+="asm-redo", OWNER="oracle", GROUP="oinstall", MODE="0660"# 重新加载规则udevadm control --reload-rulesudevadm trigger✅ 验证:
ls -l /dev/asm-*应显示符号链接指向正确的设备。
RAC依赖三类网络接口:
| 类型 | 用途 | 推荐带宽 | IP规划示例 |
|---|---|---|---|
| 公共网络 | 客户端连接、监听器 | 1GbE或以上 | 192.168.1.101(node1)、192.168.1.102(node2) |
| 私有网络 | Cache Fusion、心跳 | 10GbE(必须) | 10.10.10.101(node1)、10.10.10.102(node2) |
| 虚拟IP(VIP) | 故障转移 | 同公共网络 | 192.168.1.110(node1-vip)、192.168.1.111(node2-vip) |
📌 私有网络必须独立于公共网络,禁止使用同一交换机或VLAN。建议使用专用交换机或VLAN隔离。
Oracle建议使用DNS解析主机名,若无DNS,必须在所有节点的/etc/hosts中静态配置:
192.168.1.101 racnode1.example.com racnode1192.168.1.102 racnode2.example.com racnode2192.168.1.110 racnode1-vip.example.com racnode1-vip192.168.1.111 racnode2-vip.example.com racnode2-vip10.10.10.101 racnode1-priv.example.com racnode1-priv10.10.10.102 racnode2-priv.example.com racnode2-priv✅ 使用
ping -c 3 racnode1-priv测试私网连通性,确保无丢包。
在两个节点上统一执行以下配置:
# 编辑 /etc/sysctl.conffs.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.conforacle soft nofile 1024oracle hard nofile 65536oracle soft nproc 2047oracle hard nproc 16384oracle soft stack 10240oracle hard stack 32768groupadd -g 1000 oinstallgroupadd -g 1200 dbagroupadd -g 1201 operuseradd -u 1100 -g oinstall -G dba,oper oracleecho "oracle:password" | chpasswdmkdir -p /u01/app/gridmkdir -p /u01/app/oraclechown -R oracle:oinstall /u01/appchmod -R 775 /u01/appyum 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 libXrender libXext libXtst libX11 libXau libXi libXt libXdmcpGrid Infrastructure是RAC的集群管理层,包含OCR、Voting Disk、Clusterware与ASM。
从Oracle官网下载:
linuxx64_193000_grid_home.zip(Grid Infrastructure 19c)linuxx64_193000_database_home.zip(Database 19c)unzip linuxx64_193000_grid_home.zip -d /u01/app/cd /u01/app/grid./runInstallerasm-ocr、asm-redo等设备✅ 安装过程中,脚本会自动执行
root.sh,需在两个节点上以root身份运行。
cd /u01/app/database./runInstallerdbca -silent -createDatabase \ -templateName General_Purpose.dbc \ -gdbname RACDB \ -sid RACDB \ -responseFile NO_VALUE \ -characterSet AL32UTF8 \ -nationalCharacterSet AL16UTF16 \ -registerWithDirService FALSE \ -listeners LISTENER \ -databaseType MULTIPURPOSE \ -memoryPercentage 30 \ -emConfiguration NONE \ -storageType ASM \ -diskGroupName DATA_DG \ -recoveryGroupName FRA_DG \ -nodes racnode1,racnode2✅ 创建完成后,使用
crsctl stat res -t验证所有资源状态为ONLINE。
部署完成后,执行以下命令验证集群健康:
# 检查集群状态crsctl check cluster# 查看所有资源crsctl stat res -t# 检查ASM实例sqlplus / as sysasmSQL> select name, state from v$asm_diskgroup;# 检查数据库实例sqlplus / as sysdbaSQL> select instance_name, status from gv$instance;📊 建议配置Oracle Enterprise Manager(OEM)或使用
asmcmd、cluvfy工具进行持续监控。
ocrconfig -manualbackup)| 错误现象 | 原因 | 解决方案 |
|---|---|---|
CRS-4535: Cannot communicate with cluster ready services | 时间不同步 | 使用NTP或chrony同步所有节点时间 |
ASM disk not visible | 权限或udev规则错误 | 检查ls -l /dev/asm-*与oracle:oinstall权限 |
VIP not floating | 网络路由或防火墙阻断 | 关闭firewalld,确保VIP网段可达 |
ORA-15063: ASM discovered an insufficient number of disks | LUN未被识别 | 检查多路径配置与SCSI扫描 |
Oracle RAC部署是一项系统性工程,涉及存储、网络、操作系统、集群软件与数据库的深度协同。对于追求业务连续性与数据可靠性的企业而言,投入时间与资源构建稳定RAC集群,远比事后应对宕机成本更低。
✅ 成功部署Oracle RAC,意味着您的核心系统具备了零停机升级、自动故障恢复、横向扩展能力——这正是数字孪生、实时分析与高并发业务场景的底层支撑。
如需进一步获取部署脚本模板、配置检查清单或自动化安装工具,欢迎申请试用&https://www.dtstack.com/?src=bbs,获取企业级数据库集群部署支持方案。
企业级数据库架构不应止步于“能跑”,而应追求“稳如磐石”。Oracle RAC正是这一目标的基石。再次推荐:申请试用&https://www.dtstack.com/?src=bbs,让专业团队助您规避部署陷阱。
申请试用&下载资料持续优化您的数据中台,从一个可靠的RAC集群开始。申请试用&https://www.dtstack.com/?src=bbs,开启高可用数据库新时代。