Oracle RAC 19c rolling Release Update (opatchauto)
Oracle难度: 高级耗时: 每节点 45–90 分钟在运行中的 2–8 节点 RAC 19c 集群上以 rolling 方式不停机应用季度 GI Release Update:更新 OPatch,用 opatchauto analyze 检查冲突,备份 OCR 并建立回退点,迁移服务后逐节点应用,在单个节点上完成 datapatch,验证并在需要时 rollback。单实例和 Oracle Restart 请使用“应用 Oracle Database 19c Release Update (RU)”指南;OJVM RU 不支持 rolling,需要单独停机。
架构: 现有 2–8 节点 RAC 19c
开始之前
- 已阅读 RU 的 README:OPatch 最低版本、已知问题、前置 one-off 补丁、单独的 OJVM 补丁(OJVM RU 不支持 rolling,需要单独停机)。已在 My Oracle Support 上针对该 RU 核对 "Oracle Database 19c Important Recommended One-off Patches" (Doc ID 555.1) 和 RU 下载指南 (Doc ID 2118136.2)。
- 每个节点的 … 下都有 … 和 p6880880_190000_Linux-x86-64.zip(最新 OPatch);文件已用 MOS 上的 SHA-256 值校验。
- GI 和 DB home 所在文件系统至少有 20 GB 可用空间(以 README 中的值为准),/tmp 至少有 1 GB 可用空间。…… 有足够空间存放 home 备份。…
- 集群状态正常:所有节点 CRS online,没有处于 OFFLINE 的资源,所有实例均已打开。打补丁期间一个节点停机时,其余节点有能力承担全部负载。
- 应用服务的定义保证在每个节点上都能切换到其他实例(preferred/available 或 uniform),应用通过 SCAN + 服务名连接(有 FAN/AC 时会话可无中断迁移)。
- 数据库有最新的 RMAN 备份和归档日志;已备份 OCR。维护窗口已批准;已在 Enterprise Manager 中设置 blackout。
- 没有其他 opatch/opatchauto 操作在运行;home 中没有锁文件。
- 如果数据库有 Data Guard standby,先给 standby 集群(或服务器)打补丁 (Standby-First, MOS 1265700.1);之后再用本指南给 primary 打补丁,datapatch 只在 primary 上运行。
指南阶段
- 预检查 — 记录当前补丁级别 (Clusterware) · 列出 home 中的补丁 (…) · 记录 SQL 补丁历史和无效对象
- 准备:RU、OPatch 与分析 — 解压 RU (…) · 更新 GI home 中的 OPatch (…) · 更新 DB home 中的 OPatch (…) · 执行冲突和前提条件分析 (…)
- 备份与回退点 — 手工备份 OCR · 创建 guaranteed restore point · 备份 GI 和 DB home (…)
- 验证与收尾 — 确认 PDB 均已打开 · 仅在一个节点上运行 datapatch · 验证 SQL 补丁记录 · 编译无效对象(如需要) · 验证集群补丁状态 · 将服务恢复到首选分布 …
- 回退(仅在需要时) — Rollback:运行 opatchauto rollback (…) · Rollback:运行 datapatch(单节点) · Rollback:验证结果 · 最后手段:将数据库闪回到 restore point