RAC集群这个东西,装过一次的人基本都会有一个共同评价:文档很薄,坑很深。Oracle官方文档把步骤写得很整齐,但生产环境里碰到的各种细节,文档里根本不会告诉你。最近刚在一套Linux环境上从零部署完毕Oracle 19c RAC,两个节点,从网络规划、存储划分、GI集群件安装到数据库建库,全程走完,最深的感受是:一旦把RAC当成“装两台机器上的同一个库”,你的麻烦就开始了。这篇文章就从真实部署过程出发,把完整流程和那些容易让人返工的细节都梳理一遍,适合准备搭RAC、或者搭到一半卡住的DBA和运维同学参考。
1. 生产环境RAC集群的核心难点与整体规划思路
1.1 先搞清楚企业为什么需要RAC,以及它不能解决什么问题
很多刚接触RAC的同事容易把RAC理解成“双机热备”,实际上RAC的核心价值是两个:一是多节点并行处理,让同一套数据库被多个实例共同打开,业务负载能分摊到多台服务器上;二是当某个节点宕机时,另一个节点上的实例继续服务,应用几乎无感知。它解决的是“单点故障”和“纵向扩容瓶颈”的问题,而不是“数据备份”的问题。
这一点必须在规划阶段就向业务方和管理层讲清楚。RAC不等于备份,也不等于容灾,数据文件损坏、误删除、坏块这些问题,RAC一点忙都帮不上,该上RMAN照常上。所以生产环境做RAC,第一件事就是把期望值对齐:RAC解决的是服务连续性,备份是另一套体系,两者缺一不可。
难点在于RAC不是一个单独的软件,而是“数据库软件+集群软件+共享存储+操作系统+网络”五层结构的联动体。单机部署时,数据库只依赖本地文件和系统资源,出了问题影响面有限;RAC环境下,任何一层的配置失误,最终都会以“节点被驱逐”“集群分裂”“ASM磁盘组无法挂载”等形式暴露出来。所以做RAC之前,最该做的不是打开安装文档,而是先把整个架构和环境清单过一遍,理清楚每一层需要准备什么、为什么需要这些准备。
1.2 存储架构选型:为什么ASM几乎是唯一选项
RAC要求所有实例访问同一份数据,这个“同一份”不是通过文件同步实现的,而是通过共享存储实现的。存储形态可以是SAN、NAS、云硬盘等,但Oracle在19c时代最推荐的还是ASM(Automatic Storage Management)。
ASM本质上是Oracle自己的文件系统和卷管理器,它能把多块磁盘聚合成磁盘组,文件在这些磁盘上自动分布,同时帮OCR、Voting Disk、数据文件、日志文件提供统一管理。RAC的集群核心组件必须依赖ASM来存放,如果不用ASM,就得用集群文件系统OCFS2或者直接裸设备,前者维护成本高,后者扩展能力差,在实际生产里都很少遇到。
特别提醒一下GIMR的问题。19c的GI安装过程中会询问是否配置GIMR(Grid Infrastructure Management Repository),它用于收集集群健康诊断信息。生产环境建议单独建一个GIMR磁盘组,默认需要额外1GB到2GB空间,如果你的存储确实非常紧张,也可以选择不配置,但集群的某些诊断功能会受限,排障时会少一条路。这一点很多人忽略,装完才发现磁盘组规划少了。
1.3 环境清单:动手之前逐项核对
我这次的部署环境如下,供参考:
项目
规划值
说明
节点数量
2个
生产环境建议至少2节点起步
操作系统
RHEL 7.9 / Oracle Linux 7.9
19c支持7.x和8.x,7.x生态最稳
内存
每节点16GB以上
内存不足会在precheck阶段被打回
共享存储
不小于100GB
OCR+Voting、数据文件、FRA都需要
网卡
每节点至少2块
一个public网段,一个private专用心跳网段
时间同步
chrony / NTP
节点间时间偏移过大会导致节点被逐出
防火墙
建议关闭或精确放行
生产若不能关,需严格放行Oracle相关端口
这里重点说下内存和存储。内存建议不要低于16GB,因为一个节点上同时跑数据库实例和GI代理进程,再加上系统的page cache,内存太小很容易在安装或压测阶段触发OOM。共享存储方面,OCR和Voting Disk建议放在单独的ASM磁盘组里,至少3块小容量磁盘做Normal冗余,数据文件放另一个磁盘组,不要再把OCR和数据文件塞到同一个组里,否则后续扩容和维护都会很别扭。
2. 第一批坑从环境开始:网络、共享存储与操作系统初始化
2.1 网络规划:Public、Private、VIP与SCAN到底各自负责什么
RAC网络是整个集群最容易出错、也最难在安装阶段发现问题的部分。一个完整的19c RAC需要四类IP:
IP类型
作用
常见故障
Public IP
对外提供数据库服务的普通IP
配置错误导致客户端连不上
Private IP
节点间Cache Fusion、心跳通信专用
丢包严重时触发节点驱逐
VIP
虚拟IP,随实例在节点间漂移
未配置VIP会导致连接中断时间变长
SCAN IP
集群统一入口,可负载均衡和故障转移
SCAN解析错误导致应用间歇性连不上
我必须强调:Private网络千万不要和Public共用网卡和交换机,它是集群的命脉。Cache Fusion的数据块传输对网络延迟和丢包