Oracle 19C 19.27 季度补丁发布:RAC 环境升级全流程实战

北京时间 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.27
  • p37642901_190000_Linux-x86-64.zip --- DB 19.27
  • p37641958_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 均为 SUCCESSTARGET_VERSION19.27.0.0.250415 即表示升级完成。

四、总结

Oracle 19C 19.27 补丁是一次常规的季度更新,整体升级流程与之前版本一致:

  1. 更新 OPatch
  2. 解压补丁 → 冲突检查 → 空间检查
  3. -analyze 预演
  4. GRID 先升(OJVM → GI),DB 后升
  5. datapatch 执行 SQL 变更
  6. 编译无效对象
  7. 验证状态

总耗时参考: 整个流程(含 datapatch)大约需要 60--75 分钟。实际时间取决于节点数量、数据库规模和补丁包内容。

升级前务必做好以下准备:

  • 全量备份数据库和 GI Home
  • 阅读 MOS Note 19202504.9 了解已知问题
  • 在测试环境先行验证
  • 规划好停机窗口

Oracle 19C 作为长期支持版本,持续获得季度补丁支持,维护周期明确、生态稳定,依然是企业级数据库运维的可靠选择。

相关推荐
howard20052 小时前
PostgreSQL起步
数据库·postgresql
秋田君3 小时前
QT_QT布局详解
开发语言·数据库·qt
可乐ea3 小时前
【Redis八股|第8篇】Redis 分布式锁原理与 Redisson 使用
数据库·redis·分布式·面试题·redis八股
ClouGence4 小时前
Oracle 到 OceanBase 迁移方案横评:停机导出/导入 vs OMS vs CDC 工具
数据库·oracle
Meya11274 小时前
不同规模机房怎么选 U 位系统?8 柜小型机房、40 柜数据中心完整选型参考
服务器·网络·数据库
从此以后自律6 小时前
MySQL 删除数据全方式详解
数据库·mysql
青山木6 小时前
Redis 高可用的最后一公里:Cluster 分片、Gossip 与故障转移全流程
数据库·redis·后端·缓存
蓝胖的四次元口袋7 小时前
JavaString知识梳理
数据库·oracle
csdn_aspnet8 小时前
mysql 使用逗号拼接一列数据
数据库·mysql·group_concat
952368 小时前
Redis - 基本操作
数据库·redis·spring·缓存