Oracle RAC集群部署实战:双节点配置与共享存储配置
在企业级数据平台建设中,高可用性与高性能是核心诉求。Oracle Real Application Clusters(RAC)作为Oracle官方提供的集群解决方案,允许多个节点共享同一数据库实例,实现负载均衡与故障自动切换,是构建关键业务系统(如金融交易、ERP、供应链管理)的首选架构。本文将深入解析Oracle RAC在双节点环境下的完整部署流程,重点聚焦操作系统配置、共享存储搭建、网络规划与集群软件安装,为数据中台、数字孪生等高并发场景提供稳定底层支撑。
Oracle RAC要求所有节点必须具备相同的硬件配置、操作系统版本与内核参数。双节点部署建议采用以下基础环境:
⚠️ 注意:Oracle RAC不支持虚拟化环境中的NFS共享存储,必须使用块级共享存储(如ASM、iSCSI、光纤通道或集群文件系统)。
Oracle RAC的核心在于共享存储。所有节点必须能同时访问相同的磁盘设备,用于存放控制文件、重做日志、数据文件及集群元数据(OCR与Voting Disk)。
| 存储类型 | 适用场景 | 推荐度 |
|---|---|---|
| Oracle ASM | 官方推荐,性能最佳,集成度高 | ⭐⭐⭐⭐⭐ |
| iSCSI + multipath | 成本低,适合中小型企业 | ⭐⭐⭐⭐ |
| FC SAN | 高性能、高可靠,企业级首选 | ⭐⭐⭐⭐⭐ |
在Linux系统中,需配置device-mapper-multipath确保多个路径访问同一LUN时自动负载均衡与故障切换。
# 安装多路径工具yum install -y device-mapper-multipath# 生成配置文件mpathconf --enable --with_multipathd y# 扫描并识别共享LUNmultipath -ll# 编辑 /etc/multipath.conf,添加别名与策略defaults { user_friendly_names yes path_grouping_policy multibus}multipaths { multipath { wwid 3600605b00a1234567890abcdef123456 alias rac_ocr } multipath { wwid 3600605b00a1234567890abcdef123457 alias rac_data }}devices { device { vendor "LIO-ORG" product "Block" path_grouping_policy multibus hardware_handler "0" prio alua }}重启服务并验证:
systemctl restart multipathdmultipath -ll输出应显示每个LUN有多个路径,且别名正确映射,如:
rac_ocr (3600605b00a1234567890abcdef123456) dm-0 LIO-ORG,Blocksize=20G features='0' hwhandler='0' wp=rw|-+- policy='round-robin 0' prio=1 status=active| `- 3:0:0:1 sdb 8:16 active ready running`-+- policy='round-robin 0' prio=1 status=enabled `- 4:0:0:1 sdc 8:32 active ready runningOracle ASM(Automatic Storage Management)是RAC推荐的存储管理工具,无需传统文件系统,直接管理裸设备。
# 创建ASM磁盘组(需提前安装Oracle Grid Infrastructure)asmca在图形界面中,选择“Create Disk Group”,添加/dev/mapper/rac_ocr和/dev/mapper/rac_data,设置冗余为“External”(由底层存储提供冗余),命名如DATA和FRA。
✅ ASM自动处理磁盘故障、条带化与镜像,是RAC架构中数据高可用的基石。
Oracle RAC依赖三类网络:
| 网络类型 | 用途 | 推荐网段 | 推荐带宽 |
|---|---|---|---|
| Public | 客户端连接、应用访问 | 192.168.1.0/24 | 1Gbps+ |
| Private | 节点间心跳与缓存融合 | 10.10.10.0/24 | 10Gbps+ |
| Virtual IP | 故障转移时的浮动IP | 同Public网段 | 1Gbps+ |
为每个节点分配静态IP:
配置DNS或/etc/hosts解析(推荐DNS,避免单点故障):
# /etc/hosts 示例192.168.1.101 node1.example.com node1192.168.1.102 node2.example.com node210.10.10.101 node1-priv.example.com node1-priv10.10.10.102 node2-priv.example.com node2-priv192.168.1.111 node1-vip.example.com node1-vip192.168.1.112 node2-vip.example.com node2-vipsystemctl stop firewalld && systemctl disable firewalldsetenforce 0sed -i 's/SELINUX=enforcing/SELINUX=permissive/g' /etc/selinux/configfs.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 -pgroupadd -g 54321 oinstallgroupadd -g 54322 dbagroupadd -g 54323 opergroupadd -g 54324 asmadmingroupadd -g 54325 asmdbagroupadd -g 54326 asmoperuseradd -u 54321 -g oinstall -G dba,asmdba,oper oracleuseradd -u 54322 -g oinstall -G asmadmin,asmdba,asmoper grid设置密码:
passwd oraclepasswd gridoracle soft nofile 1024oracle hard nofile 65536oracle soft nproc 16384oracle hard nproc 16384oracle soft stack 10240oracle hard stack 32768grid soft nofile 1024grid hard nofile 65536grid soft nproc 16384grid hard nproc 16384grid soft stack 10240grid hard stack 32768/u01/app/19.0.0/gridcd /u01/app/19.0.0/grid./runInstaller安装向导中选择:
安装完成后,以root身份执行两个脚本:
/u01/app/oraInventory/orainstRoot.sh/u01/app/19.0.0/grid/root.sh验证集群状态:
crsctl check clustercrsctl stat res -t输出应显示所有资源为ONLINE。
/u01/app/oracle/product/19.0.0/dbhome_1runInstaller,选择“Install database software only”dbca -silent -createDatabase \ -templateName General_Purpose.dbc \ -gdbname racdb \ -sid racdb \ -responseFile NO_VALUE \ -characterSet AL32UTF8 \ -nationalCharacterSet AL16UTF16 \ -totalMemory 8192 \ -databaseType MULTIPURPOSE \ -numberOfInstances 2 \ -nodeList node1,node2 \ -asmSysPassword oracle123 \ -storageType ASM \ -diskGroupName DATA \ -recoveryGroupName FRA \ -sysPassword oracle123 \ -systemPassword oracle123数据库创建完成后,可通过任意节点的VIP连接:
sqlplus sys/oracle123@//node1-vip:1521/racdb as sysdbashutdown -h now,观察node2是否自动接管服务lsnrctl status 应显示两个节点的监听器均在线SELECT inst_id, instance_name, status FROM gv$instance;✅ 成功的RAC部署应实现:无单点故障、服务无缝切换、性能线性扩展。
ocrconfig -manualbackupping或iperf3检测Private网络稳定性alert.log、crsd.log、ocssd.logOracle RAC不仅是技术实现,更是企业数字化转型中保障业务连续性的关键组件。在数字孪生、实时分析、高并发交易等场景中,RAC提供的双活架构可显著降低停机风险,提升系统韧性。部署过程中,任何一步的疏忽都可能导致集群无法启动或数据不一致,因此必须严格遵循Oracle官方文档与最佳实践。
为加速部署进程,降低运维复杂度,建议企业采用自动化部署工具或云原生方案。如需快速验证RAC架构在您业务场景中的表现,可申请试用&https://www.dtstack.com/?src=bbs,获取专业团队的部署指导与性能调优支持。申请试用&https://www.dtstack.com/?src=bbs申请试用&https://www.dtstack.com/?src=bbs
申请试用&下载资料