IT 邦德

Oracle 最新19.33RU补丁埋雷!,RAC无法建库!

做 Oracle RAC 的 DBA 都知道,补丁安装完成后,通常会检查 OPatch 清单,确认 RU 版本是否一致。但有时候,最容易忽略的恰恰是一个不起眼的子补丁:OCW(Oracle Clusterware)。

Image

今天给大家分享一个典型问题:Oracle 19c RAC 环境中,GI 已升级至 19.33 RU,DB Home 也已安装对应 RU,但执行 DBCA 建库时,却报出一连串错误:

Image

奇怪的是,集群本身运行正常,ASM 也没有故障。

问题究竟出在哪里?

经过排查,根因并不是 GI 或 ASM 异常,而是 DB Home 漏装了对应版本的 OCW 子补丁。

通过 opatch lspatches 对比发现,GI Home 已安装 OCW 19.33 补丁 39922783,而 DB Home 仍然保留旧版 OCW 19.3(29585399)。

Image

由于 DB Home 中的 Clusterware 客户端库版本与 GI 不匹配,导致 SRVM 调用无法正确获取 ASM 模式,最终触发 PRKH-1056。

Image

解决办法

从 Grid RU 安装介质中提取 OCW 子补丁目录。

使用 oracle 用户执行冲突检查:

opatch prereq CheckConflictAgainstOHWithDetail -ph <OCW目录>

确认无冲突后,在每个节点的 DB Home 分别执行:

opatch apply -silent -local -oh $ORACLE_HOME

执行 opatch lspatches,确认 OCW 已升级至对应 RU 版本。

分别从 DB Home 执行 srvctl config asm 和 srvctl status asm,

确认返回正常

Image
Image

最后一个重要提醒

安装 RU 不等于所有组件补丁都已完整安装。RAC、Oracle Restart,以及使用 ASM 的数据库环境,都需要关注 DB Home 中对应的 OCW 补丁。

建议每次补丁升级后,同时检查 GI Home、所有 DB Home,甚至 Data Guard 备库的补丁清单。

有时候,DBA 排查半天的集群故障,最终可能只是漏掉了一个子补丁!这个问题其实在19.22RU补丁就已经出现了!