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 作为长期支持版本,持续获得季度补丁支持,维护周期明确、生态稳定,依然是企业级数据库运维的可靠选择。

相关推荐
Data_Journal17 小时前
用于网页抓取的 Node-unblocker
大数据·开发语言·数据库·python·scrapy
涤生大数据17 小时前
一次“没有运行日志”的DolphinScheduler任务失败排查
大数据·数据库·人工智能·状态模式
专注API从业者17 小时前
告别人工盯品!借助 Open Claw 搭建电商商品自动化监控与数据分析系统(完整可运行源码)
大数据·运维·数据库·数据分析·自动化
viskaz18 小时前
数据库迁移流程学习
数据库
auspicious航19 小时前
PostgreSQL写入慢全攻略:原因排查与性能调优实战
数据库·postgresql
IvorySQL19 小时前
PostgreSQL 日报|逻辑复制行过滤致数据丢失(8 月 21 日)
数据库·postgresql
重生之我是Java开发战士19 小时前
【Java EE】事务与事务的传播机制
数据库·java-ee
润乾软件19 小时前
Trae+SQLazy 编写复杂 SQL 实践
数据库·sql
会编程的吕洞宾19 小时前
Redis大Key拖垮线上?排查定位与治理实战
数据库·redis·bootstrap
ltl20 小时前
WiredTiger History Store:文档库里的第三种 MVCC
数据库