4. Grid Infrastructure安装前检查与规划
Oracle RAC 的稳定性在很大程度上并不取决于安装过程本身,而取决于安装之前是否把版本、补丁、OCR/Voting Disk 以及用户与目录这几件事规划清楚。Grid Infrastructure(简称 GI)是集群的“地基”,它承载 ASM、集群资源管理、网络心跳和集群注册表,一旦版本选错或磁盘规划不合理,后期扩容、打补丁甚至节点重启都可能演变成停机事故。本节围绕四项核心规划展开:集群件版本选择、补丁策略、OCR 与 Voting Disk 规划、安装用户与目录结构。
一、集群件版本选择
GI 版本必须与数据库版本、操作系统版本三者匹配。常见组合是:Oracle Linux 7.9 + GI 19c(19.3 起步,建议 19.19 及以上)+ 数据库 19c。选择版本时先看三个约束:
- 数据库兼容性:GI 版本必须不低于其上运行的数据库版本。19c GI 可以承载 19c、12c 数据库,但不能承载 21c 数据库。
- 操作系统认证:查 Oracle 官方认证矩阵,确认 OS 内核版本在 GI 认证列表内。例如 OL7.9 对应 19c 是认证的,而 OL8 早期小版本可能未认证。
- 补丁集基线:生产环境不建议使用 19.3 初始版本,应直接使用带 RU(Release Update)的版本,如 19.19、19.22,减少已知缺陷。
版本号命名规则需要理解:19.3 表示 19c 第 3 个补丁集,19.19 表示 19c 第 19 个 Release Update。RU 是季度累积补丁,包含安全修复和功能修复,是生产环境的标准选择。
二、补丁策略
GI 补丁分为两类:RU(Release Update)和One-off Patch。RU 按季度发布,One-off 针对特定缺陷。生产环境推荐“基线 RU + 必要 One-off”的组合策略。
打补丁有两种方式:滚动补丁(Rolling)和非滚动补丁(Non-Rolling)。滚动补丁逐节点执行,集群在补丁期间保持可用,适合 RU;非滚动补丁需要停机,适合部分 One-off。判断依据是补丁是否影响集群件二进制共享部分。
三、OCR 与 Voting Disk 规划
OCR(Oracle Cluster Registry)保存集群配置信息,Voting Disk 用于节点心跳仲裁,两者都存放在 ASM 磁盘组中,通常使用 +OCR 或 +GRID 磁盘组。规划要点:
- 冗余级别:OCR 和 Voting Disk 建议使用 NORMAL 冗余(三路镜像),至少三块故障组,避免单点故障。
- 数量:OCR 建议 3 份,Voting Disk 建议 3 份或 5 份(奇数),保证仲裁多数派。
- 容量:OCR 每份约 300MB~1GB,Voting Disk 每份约 300MB,规划磁盘组时预留足够空间。
- 磁盘组命名:建议使用 +OCR 或 +GRID 专用磁盘组,与数据磁盘组分离,便于管理和备份。
OCR 备份策略:GI 会自动每 4 小时备份一次,保留最近 3 份,也可手动执行 ocrconfig -manualbackup。Voting Disk 备份使用 crsctl query css votedisk 查看,crsctl replace votedisk 迁移。
四、安装用户与目录结构
GI 安装需要两个用户:grid(GI 软件所有者)和 oracle(数据库软件所有者)。两者都必须属于 oinstall 主组,grid 属于 asmadmin、asmdba、asmoper 组,oracle 属于 dba、asmdba 组。
目录结构规划建议:
/u01/app/19.3.0/grid # GI 软件目录(GRID_HOME)
/u01/app/grid # GI 基础目录(GRID_BASE)
/u01/app/oracle # Oracle 基础目录(ORACLE_BASE)
/u01/app/oracle/product/19.3.0/dbhome_1 # 数据库软件目录
权限要求:/u01/app/grid 属主 grid:oinstall,权限 775;/u01/app/oracle 属主 oracle:oinstall,权限 775。安装前需确认目录已创建且权限正确,否则 runInstaller 会报错。
五、安装前检查清单
在运行 runInstaller 之前,建议按以下顺序完成检查,避免安装中途失败:
| 检查项 | 命令/方法 | 通过标准 |
|---|---|---|
| OS 版本认证 | cat /etc/oracle-release | 在 GI 认证矩阵内 |
| 内核参数 | sysctl -a | grep shmmax | 满足 GI 安装要求 |
| 共享内存 | ipcs -lm | max seg size ≥ 需求值 |
| 网络配置 | ifconfig / ip addr | Public + Private 网卡就绪 |
| SSH 互信 | ssh grid@node2 date | 免密登录成功 |
| ASM 磁盘 | ls -l /dev/oracleasm/* | 权限 grid:asmadmin 660 |
| 目录权限 | ls -ld /u01/app/grid | grid:oinstall 775 |
| CVU 预检 | runcluvfy.sh stage -pre crsinst | 全部 PASS |
完成以上规划后,GI 安装的输入条件就基本确定:版本基线明确、补丁策略清晰、OCR/Voting Disk 位置和冗余确定、用户与目录权限就绪。后续安装过程中,runInstaller 会依据这些规划执行 root.sh 脚本、配置 ASM 磁盘组、注册集群资源。规划阶段的严谨程度,直接决定集群上线后的可维护性和故障恢复能力。