北京时间 2025 年 4 月 15 日,Oracle 发布了 19C 第 19.27 版季度补丁。本文带你全面了解补丁组成、已知问题,并附上 RAC 环境的完整升级操作指南。
一、19.27 补丁概览
2025 年 4 月 15 日,Oracle 按惯例发布了 19c 的季度补丁集(Release Update 19.27.0.0.250415)。本次补丁集包含以下四个核心组件:
| 补丁名称 | Patch ID | 说明 |
|---|---|---|
| Database Release Update 19.27.0.0.250415 | 37642901 | 数据库核心补丁 |
| Grid Infrastructure Release Update 19.27.0.0.250415 | 37641958 | 集群件补丁 |
| OJVM Release Update 19.27.0.0.250415 | 37499406 | Java 虚拟机组件补丁 |
| Windows 32-Bit & x86-64 Bundle Patch | 37532350 | Windows 平台合订补丁 |
重要提示: 自 2022 年 10 月补丁周期起,Oracle 不再为 19.17.0 及以上版本提供 RUR(Release Update Revision)。最后一次 RUR 交付为 2023 年 1 月的 19.16.2 版本。详情可参考 MOS 文档 Note 2898381.1。
取而代之的是,Oracle 推出了 MRP(Monthly Recommended Patches),让客户能够更频繁地获取经过推荐和良好测试的补丁集合。
二、已知问题
Oracle 在 MOS 文档 Note 19202504.9 中列出了 19.27 的已知问题。强烈建议在升级前订阅该文档,以便及时了解最新出现的兼容性或功能问题。
这些已知问题是各补丁 README 文件之外额外需要注意的内容。对于生产环境,务必先阅读该文档再做升级决策。
三、RAC 环境升级实战指南
下面以 Linux x86-64 环境下的两节点 RAC 为例,给出完整的升级操作步骤和大致耗时。本文以简明指令为主,方便直接复制执行。
3.1 所需补丁包
p6880880_190000_Linux-x86-64.zip--- 更新 OPatch 至 .45 版本p37499406_190000_Linux-x86-64.zip--- OJVM 19.27p37642901_190000_Linux-x86-64.zip--- DB 19.27p37641958_190000_Linux-x86-64.zip--- GI 19.27
3.2 更新 OPatch(grid & oracle 用户)
首先备份并替换旧的 OPatch 目录:
# 以 root 执行
mv $ORACLE_HOME/OPatch $ORACLE_HOME/OPatch.bak
unzip -q p6880880_190000_Linux-x86-64.zip -d $ORACLE_HOME
chmod -R 755 $ORACLE_HOME/OPatch
chown -R grid:oinstall $ORACLE_HOME/OPatch # grid 家目录
chown -R oracle:oinstall $ORACLE_HOME/OPatch # oracle 家目录
# 验证版本
$ORACLE_HOME/OPatch/opatch version
3.3 解压补丁包
# 以 root 执行
unzip -q p37641958_190000_Linux-x86-64.zip -d /u01/app/
unzip -q p37499406_190000_Linux-x86-64.zip -d /u01/app/
chown -R grid:oinstall /u01/app/37641958 /u01/app/37499406
chmod -R 755 /u01/app/37641958 /u01/app/37499406
3.4 OPatch 兼容性检查
# 以 grid 用户执行
$GRID_HOME/OPatch/opatch lsinventory -detail
3.5 补丁冲突检查
分别在 grid 和 oracle 用户下检查补丁冲突:
# grid / oracle
opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir /u01/app/37641958/<subdir>
opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir /u01/app/37499406
3.6 空间检查
创建补丁列表文件并检查目标目录空间是否充足:
vi /tmp/patch_list_gihome.txt
# 写入以下内容:
/u01/app/37641958/<patch1>
/u01/app/37641958/<patch2>
/u01/app/37499406
opatch prereq CheckSystemSpace -phBaseFile /tmp/patch_list_gihome.txt
3.7 补丁分析(Analyze)
建议: 正式 apply 之前,先用 -analyze 参数预演一遍,确认没有报错再动手。
opatchauto apply /u01/app/37499406 -analyze 约 7 分钟
opatchauto apply /u01/app/37641958 -analyze 约 13 分钟
3.8 GRID 升级
先升级 OJVM,再升级 GI 主补丁:
# 以 root 执行
opatchauto apply /u01/app/37499406 -oh $GRID_HOME OJVM, 约 7 分钟
opatchauto apply /u01/app/37641958 -oh $GRID_HOME GI, 约 13 分钟
# 确认补丁状态
$GRID_HOME/OPatch/opatch lspatches
3.9 DB 升级(Oracle Home)
# 先停库
srvctl stop database -d <dbname>
# 以 root 执行
opatchauto apply /u01/app/37641958/37642901 -oh $ORACLE_HOME 约 6.5 分钟
3.10 升级后操作
注意: 以下操作仅在第一个节点(node1)执行即可。
# --- Step 1: 以 UPGRADE 模式启动 ---
sqlplus / as sysdba
STARTUP
alter system set cluster_database=false scope=spfile;
srvctl stop db -d <dbname>
STARTUP UPGRADE;
SHUTDOWN;
STARTUP;
# 恢复 RAC 模式
alter system set cluster_database=true scope=spfile sid='*';
SHUTDOWN;
srvctl start database -d <dbname>
# 打开所有 PDB
alter pluggable database all open;
# --- Step 2: 执行 datapatch ---
$ORACLE_HOME/OPatch/datapatch -verbose 约 35 分钟
# 如果个别 PDB 未更新,可单独执行:
$ORACLE_HOME/OPatch/datapatch -verbose -apply 37642901 -force -pdbs <pdbname>
# --- Step 3: 编译无效对象 ---
sqlplus / as sysdba
@$ORACLE_HOME/rdbms/admin/utlrp.sql
3.11 验证补丁状态
set linesize 180
col action for a15
col status for a15
select PATCH_ID, PATCH_TYPE, ACTION, STATUS, TARGET_VERSION
from dba_registry_sqlpatch;
确认所有补丁条目 STATUS 均为 SUCCESS ,TARGET_VERSION 为 19.27.0.0.250415 即表示升级完成。
四、总结
Oracle 19C 19.27 补丁是一次常规的季度更新,整体升级流程与之前版本一致:
- 更新 OPatch
- 解压补丁 → 冲突检查 → 空间检查
-analyze预演- GRID 先升(OJVM → GI),DB 后升
- datapatch 执行 SQL 变更
- 编译无效对象
- 验证状态
总耗时参考: 整个流程(含 datapatch)大约需要 60--75 分钟。实际时间取决于节点数量、数据库规模和补丁包内容。
升级前务必做好以下准备:
- 全量备份数据库和 GI Home
- 阅读 MOS Note 19202504.9 了解已知问题
- 在测试环境先行验证
- 规划好停机窗口
Oracle 19C 作为长期支持版本,持续获得季度补丁支持,维护周期明确、生态稳定,依然是企业级数据库运维的可靠选择。