windows oracle补丁安装教程

老刘

Windows 下 Oracle 补丁安装教程:从准备到验证,一步一步教你装对

目标关键词:Windows Oracle补丁安装教程

Oracle 补丁这件事,看起来只是“下载、解压、双击安装”,但真正做起来,很多人都会卡在权限、版本匹配、环境变量、服务停止、备份回滚这些细节上。尤其是在 Windows 环境里,Oracle 数据库本身对版本、补丁号、安装顺序要求很严,装错一个补丁,轻则提示失败,重则数据库起不来。

这篇文章就围绕 Windows Oracle 补丁安装教程 来讲,尽量用小白也能看懂的方式,把整个流程说清楚。文章会按 问题分析 → 解决方案 → 注意事项 的结构来写,适合 Windows 上安装 Oracle PSU、CPU、RU、OJVM 这类常见补丁场景。


一、先搞清楚:Oracle 补丁到底是什么

Oracle 补丁不是随便装的“优化包”,它一般分几种:

1. RU(Release Update)

这是现在最常见的补丁类型,属于版本更新包。
比如 19c、21c、23c 的季度更新,通常就是 RU。

2. OJVM 补丁

这是 Java 虚拟机相关补丁,很多 Oracle 数据库环境会单独打。

3. PSU / CPU

以前比较常见,现在不少版本已经逐步被 RU 替代,但老环境里仍然会遇到。

4. One-off 补丁

单独修某一个问题的补丁,只针对特定 bug。

5. GI / DB 补丁

如果是集群环境,还会分 Grid Infrastructure 和 Database 两类补丁,不能混装。


二、打补丁前先做判断:你装的是哪种 Oracle

Windows 上打补丁,第一步不是下载补丁,而是先确认你本机 Oracle 的信息。

1. 查看数据库版本

打开命令提示符,输入:

sqlplus / as sysdba

进入后执行:

select * from v$version;

你会看到类似:

  • Oracle Database 19c
  • 版本号 19.0.0.0.0

2. 查看补丁基线

继续执行:

select * from dba_registry_sqlpatch;

可以看到已经安装过哪些补丁。

3. 查看 Oracle Home

在 Windows 里,Oracle 常常有多个安装目录。补丁一定要打到正确的 Oracle Home。

常见路径比如:

C:\app\oracle\product\19.0.0\dbhome_1

如果你机器上有多个 Oracle Home,先确认当前服务用的是哪一个,否则很容易补错地方。


三、Windows Oracle补丁安装前的准备工作

这一部分非常关键,很多失败都出在准备阶段。

1. 先备份

补丁前建议至少做两层备份:

数据库备份

最稳妥的是 RMAN 备份,或者至少做一次全库导出。

Oracle Home 备份

把 Oracle 安装目录整体压缩一份,尤其是:

  • bin
  • network
  • jdk
  • OPatch
  • inventory

如果补丁失败,能快速回滚。


2. 确认权限

补丁安装一般需要:

  • 本地管理员权限
  • Oracle 软件安装用户权限
  • 最好右键“以管理员身份运行”命令提示符

如果权限不够,很容易报错:

  • 无法写入目录
  • 无法停止服务
  • OPatch 执行失败

3. 关闭数据库相关服务

打补丁前,通常要停止数据库实例和监听。

停止数据库

可以在命令行执行:

sqlplus / as sysdba
shutdown immediate;
exit

如果是服务方式启动,也可以在“服务”里停止:

  • OracleServiceORCL
  • OracleOraDB19Home1TNSListener

停止监听

执行:

lsnrctl stop

如果你是 RAC 或者有其他依赖服务,也要一并停掉。


4. 确认 OPatch 版本够不够新

Oracle 补丁对 OPatch 版本要求很严格。
很多补丁安装失败,不是补丁包有问题,而是 OPatch 太旧

查看 OPatch 版本:

opatch version

一般补丁说明里都会写需要最低 OPatch 版本。
如果不够,就先升级 OPatch。


四、Windows Oracle补丁安装教程:标准流程

下面以常见的 Oracle Database 19c Windows 补丁安装 为例,讲最通用的手工安装方式。


第一步:下载正确的补丁包

去 Oracle 官方下载对应补丁,注意核对:

  • 数据库版本
  • 操作系统版本
  • 64位 / 32位
  • 补丁类型:RU、OJVM、One-off
  • 对应的 Oracle Home 架构

一定要看补丁说明文档,确认它支持你的版本。


第二步:解压补丁包

把下载好的补丁解压到一个简单路径,建议不要放中文路径、空格太多的路径。

例如:

D:\oracle_patch\34765931

解压后通常会看到:

  • README
  • files
  • etc
  • etc\config
  • README.html

有些补丁还会带多个子补丁目录。


第三步:关闭数据库和监听

再次确认:

lsnrctl stop

数据库服务停止后,再继续下一步。


第四步:进入补丁目录

打开“命令提示符(管理员)”,然后切换到补丁目录:

cd /d D:\oracle_patch\34765931

接着检查补丁目录里是否有 opatch 能识别的结构。


第五步:执行补丁安装

最常见命令是:

opatch apply

如果是 RU 补丁,很多版本也可能使用:

opatchauto apply

但要注意:

  • 数据库单实例 常用 opatch apply
  • Grid / RAC / GI 环境 常用 opatchauto

如果是 Windows 单机 Oracle Database,通常先用 opatch apply

常见输出

执行后会看到类似:

  • 正在检查先决条件
  • 检测冲突
  • 检查补丁空间
  • 开始复制文件
  • 更新 inventory

如果成功,最后会提示补丁安装完成。


第六步:按提示处理冲突

如果出现补丁冲突,常见原因有:

  • 已经装过别的补丁
  • 目标补丁和已有补丁冲突
  • OPatch 版本过旧
  • Oracle Home 错了
  • 文件被占用

这时候不要直接强装,先看日志。

常用命令:

opatch lsinventory

查看当前安装了哪些补丁。

如果是冲突补丁,补丁包说明里一般会写替代关系和依赖关系。


第七步:补丁安装完成后,重新启动服务

补丁打完后,按顺序启动:

启动监听

lsnrctl start

启动数据库

sqlplus / as sysdba
startup;
exit

如果是服务方式,也可以直接启动对应 Oracle 服务。


五、补丁安装后的验证方法

补丁装完不是结束,还要确认“真装上了”。

1. 查看 OPatch 记录

执行:

opatch lsinventory

看补丁是否出现在列表里。


2. 查看数据库内部补丁记录

进入 SQL*Plus:

sqlplus / as sysdba

执行:

select patch_id, patch_type, status, action, action_time
from dba_registry_sqlpatch
order by action_time;

如果看到新补丁记录,并且状态正常,说明数据库层面也已经识别。


3. 检查数据库启动是否正常

重点看:

  • 实例能不能正常启动
  • 监听能不能正常连接
  • 应用程序能不能访问
  • 日志里有没有新的报错

如果一切正常,说明补丁安装基本成功。


六、常见报错和解决办法

Oracle 在 Windows 上打补丁时,报错并不少见。下面列几个高频问题。


问题 1:OPatch 版本太低

现象

安装时提示:

  • OPatch failed
  • 版本不兼容
  • prerequisite check failed

解决方法

先升级 OPatch:

  1. 下载官方提供的新 OPatch
  2. 备份原来的 OPatch 文件夹
  3. 覆盖到 ORACLE_HOME\OPatch
  4. 再执行:
opatch version

确认版本更新成功后,再重新安装补丁。


问题 2:补丁冲突

现象

提示:

  • conflict detected
  • patch already applied
  • one-off patch conflict

解决方法

执行:

opatch lsinventory

看当前已装补丁,再结合补丁说明判断是否需要:

  • 卸载旧补丁
  • 换合并补丁
  • 先打前置补丁再打目标补丁

问题 3:文件被占用

现象

安装时提示某些 DLL 或 EXE 无法替换。

解决方法

检查以下项目是否全部关闭:

  • 数据库实例
  • 监听
  • Oracle 相关服务
  • SQL Developer、PL/SQL Developer 等连接工具
  • 杀毒软件实时防护

必要时重启系统后,先别开其他程序,直接打补丁。


问题 4:权限不足

现象

无法写入目录、无法更新 inventory、脚本执行失败。

解决方法

  • 用管理员身份运行 CMD
  • 确认当前账户有 Oracle Home 写入权限
  • 检查目录是否被设为只读
  • 检查防病毒软件是否拦截

问题 5:Oracle Home 选错

现象

补丁装完后服务异常,或者提示版本不匹配。

解决方法

检查:

echo %ORACLE_HOME%

再确认服务实际指向哪个 Home。
如果机器上装了多个 Oracle,必须精准定位,不要凭感觉打补丁。


七、Windows 下打 Oracle 补丁的实用技巧

1. 路径尽量简单

推荐路径:

D:\oracle_patch\
C:\oracle\

不要使用中文路径、超长路径、带特殊符号的路径。


2. 补丁说明一定要看

每个补丁包都会有 README 或 patch note,里面会写:

  • 支持的版本
  • 前置条件
  • 必须先装的补丁
  • 冲突补丁清单
  • 是否需要重新编译无效对象

这个步骤不能省。


3. 先测试环境,后生产环境

如果是生产库,建议:

  • 先在测试环境走一遍
  • 记录完整命令和输出
  • 确认回滚方案
  • 规划停机窗口

不要直接在生产环境“边试边装”。


4. 记得重新编译对象

有些补丁打完后,数据库对象可能需要重新编译。
可以检查无效对象:

select owner, object_name, object_type
from dba_objects
where status='INVALID';

如果很多对象无效,再根据实际情况处理。


八、适合新手的最简安装顺序

如果你是第一次在 Windows 上打 Oracle 补丁,可以按这个顺序做:

  1. 确认 Oracle 版本
  2. 确认 Oracle Home
  3. 备份数据库和安装目录
  4. 检查 OPatch 版本
  5. 下载正确补丁
  6. 解压到简单路径
  7. 停止数据库和监听
  8. 管理员 CMD 进入补丁目录
  9. 执行 opatch apply
  10. 启动监听和数据库
  11. opatch lsinventorydba_registry_sqlpatch 验证

九、如果是 Oracle 19c Windows RU 补丁,通常要特别注意什么

Oracle 19c 是 Windows 上比较常见的版本,打 RU 时要重点注意:

  • RU 补丁和 OJVM 补丁是否配套
  • 是否要求先升级 OPatch
  • 是否要求先安装某个前置补丁
  • 是否需要先卸载旧补丁
  • 数据库和监听是否必须完全停止
  • 是否要重新执行 datapatch

其中 datapatch 很关键。
很多人只做了 opatch,没跑 datapatch,结果数据库内部补丁信息没更新。

常见操作是:

sqlplus / as sysdba
startup;
exit

然后执行:

cd %ORACLE_HOME%\OPatch
datapatch -verbose

这个步骤会把 SQL 补丁应用到数据库里。


十、完整实战示例:Windows 上给 Oracle 19c 打 RU 补丁

下面给一个简化版示例,方便照着做。

1. 查看版本

sqlplus / as sysdba
select * from v$version;
exit

2. 停服务

lsnrctl stop
sqlplus / as sysdba
shutdown immediate;
exit

3. 检查 OPatch

opatch version

4. 解压补丁

解压到:

D:\oracle_patch\RU_19c

5. 安装补丁

cd /d D:\oracle_patch\RU_19c
opatch apply

6. 启动数据库

lsnrctl start
sqlplus / as sysdba
startup;
exit

7. 执行 datapatch

cd %ORACLE_HOME%\OPatch
datapatch -verbose

8. 验证

opatch lsinventory

SQL 验证:

select patch_id, status, action_time
from dba_registry_sqlpatch
order by action_time;

十一、注意事项总结

1. 补丁一定要和版本对应

不要拿 19c 的补丁去装 12c,也不要混装不同平台的补丁。

2. 不要跳过 OPatch 检查

OPatch 是补丁安装的基础工具,版本不对,后面全白搭。

3. 生产环境先备份

特别是有业务在线的数据库,宁可多花一点时间备份,也不要省这一步。

4. 不要忽略 datapatch

很多人只打文件补丁,不执行数据库内部补丁,最后还是有问题。

5. 有冲突先看文档

补丁冲突不是靠猜,Oracle 官方说明里通常都有解决路径。


十二、结语式总结

Windows 下安装 Oracle 补丁,核心就三件事:

  • 先确认版本和 Oracle Home
  • 先停库、停监听、做好备份
  • 按补丁说明一步一步执行,并且补丁后做验证

只要这三件事做扎实,大多数 Oracle 补丁都能比较顺利地完成。对于新手来说,最容易犯的错不是命令输错,而是 版本没看清、路径选错、服务没停干净、补丁后没跑 datapatch。把这几个点抓住,基本就能少走很多弯路。

文章版权声明:文章内容均来源于各大短视频平台搜集以及修改和删减新增,如有侵权或者违规,请联系站长进行删除,如需转载或复制请以超链接形式并注明出处。

发表评论

快捷回复: 表情:
AddoilApplauseBadlaughBombCoffeeFabulousFacepalmFecesFrownHeyhaInsidiousKeepFightingNoProbPigHeadShockedSinistersmileSlapSocialSweatTolaughWatermelonWittyWowYeahYellowdog
验证码
评论列表 (暂无评论,4人围观)

还没有评论,来说两句吧...

目录[+]