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。判断依据是补丁是否影响集群件二进制共享部分。

建议在测试环境先执行一次完整补丁流程,记录 opatch lspatches 输出、集群状态变化和回退步骤,再在生产环境实施。

三、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 会报错。

Grid Infrastructure 安装前规划全景 版本选择 OS: OL 7.9 GI: 19.19 RU DB: 19c 三者必须认证匹配 补丁策略 基线 RU + One-off 滚动补丁优先 测试环境先行 opatch lspatches 验证 OCR / Voting Disk +OCR 磁盘组 NORMAL 冗余 OCR×3 / VD×3 自动备份每4小时 用户与目录 grid / oracle oinstall 主组 /u01/app/... 权限 775 安装前检查清单:版本认证 → 补丁基线 → 磁盘组规划 → 用户目录权限 系统检查 • OS 内核参数 • 共享内存 / 信号量 • 网络接口与 hosts • 时间同步 (NTP/CTSS) • 防火墙与 SELinux • 多路径与 udev 规则 存储检查 • ASM 磁盘发现 • 磁盘组冗余级别 • OCR/Voting 位置 • 磁盘权限 grid:asmadmin • 容量与 IO 规划 • 多路径聚合状态 安装前验证 • clusterverify.sh 预检 • ssh 互信配置 • CVU 检查通过 • 目录权限确认 • 环境变量设置 • 补丁包完整性校验

五、安装前检查清单

在运行 runInstaller 之前,建议按以下顺序完成检查,避免安装中途失败:

检查项命令/方法通过标准
OS 版本认证cat /etc/oracle-release在 GI 认证矩阵内
内核参数sysctl -a | grep shmmax满足 GI 安装要求
共享内存ipcs -lmmax seg size ≥ 需求值
网络配置ifconfig / ip addrPublic + Private 网卡就绪
SSH 互信ssh grid@node2 date免密登录成功
ASM 磁盘ls -l /dev/oracleasm/*权限 grid:asmadmin 660
目录权限ls -ld /u01/app/gridgrid:oinstall 775
CVU 预检runcluvfy.sh stage -pre crsinst全部 PASS
常见错误:/u01/app/grid 目录属主为 root 或权限为 755,导致 runInstaller 无法写入;ASM 磁盘权限未设置为 grid:asmadmin 660,导致磁盘无法被 ASM 识别。这两类问题在安装前必须排除。

完成以上规划后,GI 安装的输入条件就基本确定:版本基线明确、补丁策略清晰、OCR/Voting Disk 位置和冗余确定、用户与目录权限就绪。后续安装过程中,runInstaller 会依据这些规划执行 root.sh 脚本、配置 ASM 磁盘组、注册集群资源。规划阶段的严谨程度,直接决定集群上线后的可维护性和故障恢复能力。