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

相关推荐
程序员清风5 小时前
数据处理脚本工程化:日志、配置、命令行与测试
服务器·开发语言·数据库
正在走向自律6 小时前
数据集成产品的技术底座:从日志解析原理到 KFS 同步链路搭建(含建表与增删改查完整代码)
数据库·oracle·信创·数据集成·国产数据库·kingbasees·全量+增量同步
程序员塔塔喵6 小时前
【MySQL篇|第七篇】MySQL事务
数据库·mysql·mysql事务
独隅7 小时前
Claude API 实战教程:从入门到完整项目
android·java·数据库·claude·claude code
_孤傲_7 小时前
快速掌握 MySQL 语法
数据库·后端·mysql
数字新视界9 小时前
一体化机柜在数据中心运维中的创新应用与优势分析
大数据·服务器·数据库·动环监控系统·动力与环境监控系统
SelectDB9 小时前
从 StarRocks 走向 Apache Doris:如何实现引擎平滑替换与架构升级?
大数据·数据库·数据分析
为思念酝酿的痛9 小时前
MySQL的操作
数据库·mysql
猫咪很可爱10 小时前
Oracle ORA-4031 错误分析与处理:SGA 内存不足导致 update/exp/expdp 失败
数据库·oracle
小豆庄10 小时前
视频素材处理时的隐私盲区:云处理与本地处理的边界在哪
数据库·图像处理·视频·敏捷流程