代码改变世界

Oracle 26ai 应用 RU 补丁简明版

2026-11-10 07:39  AlfredZhao  阅读(0)  评论(0)    收藏  举报

定期更新 Oracle 26ai 的 RU 是日常运维的一部分。笔者把这次从 23.26.2 升级到 23.26.4 的操作步骤记录下来,供有类似需求的读者参考。

01 | 找到并下载补丁

通过文档 888.1 可以快速定位需要的 RU:

This was MOS Document ID: 888.1 in Legacy MOS.

image.png

笔者选择了当时最新的 10 月发布的 RU:

Patch 40007731: DATABASE RELEASE UPDATE 23.26.4.0.0

打补丁用的 OPatch 工具通常也要匹配版本,因此同时下载最新的 OPatch,同样是 10 月发布:

image.png

02 | 升级 OPatch

先查看当前版本:

[oracle@alfred-db 23.26.4]$ $ORACLE_HOME/OPatch/opatch version
OPatch Version: 12.2.0.1.51

OPatch succeeded.

替换前请确认处于维护窗口、无其他会话正在使用 OPatch,并已对 ORACLE_HOME 做备份;若新版本异常,可将 OPatch 目录删除后用 OPatch_bak 恢复。备份旧目录并解压新版本:

mv $ORACLE_HOME/OPatch $ORACLE_HOME/OPatch_bak
[oracle@alfred-db 23.26.4]$ unzip p6880880_230000_Linux-x86-64.zip -d $ORACLE_HOME/

[oracle@alfred-db 23.26.4]$ $ORACLE_HOME/OPatch/opatch version
OPatch Version: 12.2.0.1.55

OPatch succeeded.

03 | 应用 RU 补丁

按 readme 文件操作,核心步骤如下:

unzip p40007731_230000_Linux-x86-64.zip
cd 40007731
$ORACLE_HOME/OPatch/opatch prereq CheckMinimumOPatchVersion -ph ./
$ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir /u01/media/23.26.4/40007731

在维护窗口内、确认业务已通知且数据库有可用备份后再执行;若 shutdown immediate 长时间未完成,先排查活动会话再决定是否强制关闭。关闭监听和数据库:

lsnrctl stop
sqlplus / as sysdba
SQL> shutdown immediate

应用补丁:

$ORACLE_HOME/OPatch/opatch apply

关键成功标志如下:

---
Patch 40007731 successfully applied.
Sub-set patch [39093711] has become inactive due to the application of a super-set patch [40007731].
Please refer to Doc ID 2161861.1 for any possible further required actions.

***** There are 2 inactive RU patches in chain 1

***** 1 inactive patches will be deleted
Log file location: /opt/oracle/product/26ai/dbhome_1/cfgtoollogs/opatch/opatch2026-11-09_17-02-47PM_1.log

OPatch succeeded.

04 | 执行 datapatch

readme 中说明,补丁打完后还需要启动数据库并执行 datapatch:

$ sqlplus /nolog
SQL> Connect / as sysdba
SQL> startup

SQL> alter pluggable database all open; 

SQL> quit
$ cd $ORACLE_HOME/OPatch
$ ./datapatch -sanity_checks   # 可选,用于执行前检查
$ ./datapatch -verbose

执行前可先用 opatch lspatches 确认补丁已应用;datapatch 耗时可能较长,请耐心等待。若出现错误,应先查看 sqlpatch 日志并处理,不要直接启动监听对外提供服务。确认最终成功标识:

Installing patches...

Patch installation complete.  Total patches installed: 3

Validating logfiles...done
Patch 40007731 apply (pdb CDB$ROOT): SUCCESS
Patch 40007731 apply (pdb PDB$SEED): SUCCESS
Patch 40007731 apply (pdb ORCLPDB1): SUCCESS
SQL Patching tool complete on Mon Nov  9 17:20:06 2026

05 | 收尾与验证

对可能存在的无效对象重新编译:

$ $ORACLE_HOME/perl/bin/perl $ORACLE_HOME/rdbms/admin/catcon.pl -n 1 -e -b utlrp -d $ORACLE_HOME/rdbms/admin utlrp.sql

此时可以启动监听提供服务。笔者遇到一个小插曲:sqlnet.ora 文件被人修改过,格式有问题(多了一些换行符),导致监听无法启动,修正格式后即正常:

$ lsnrctl start

随后通过查询数据库版本、检查组件状态并进行应用连接测试,确认服务正常。


关注我,和AI一起成长~