Windows 环境打 Oracle 补丁时报错

409 阅读1分钟

环境

操作系统:
Windows 2008

数据库版本:
Oracle 11.2.0.1

补丁包版本:
11.2.0.1 Patch 13

报错信息

opatch apply 命令应用补丁包时报错如下:

[2020-9-16 14:13:50] [INFO]         Exception occured: Illegal char <:> at index 67: D:\app\Administrator\product\11.2.0\dbhome_1\dv\jlib\dva_webapp.ear:\dva_webapp.war:\WEB-INF\lib\dva_webapp.jar
[2020-9-16 14:13:50] [INFO]         Prerequisite check "CheckActiveFilesAndExecutables" failed.
                                    The details are:
                                    Exception occured :    Illegal char <:> at index 67: D:\app\Administrator\product\11.2.0\dbhome_1\dv\jlib\dva_webapp.ear:\dva_webapp.war:\WEB-INF\lib\dva_webapp.jar
[2020-9-16 14:13:50] [SEVERE]       OUI-67073:UtilSession 失败: Prerequisite check "CheckActiveFilesAndExecutables" failed.
[2020-9-16 14:13:50] [INFO]         Finishing UtilSession at Wed Sep 16 14:13:50 CST 2020
[2020-9-16 14:13:50] [INFO]         Log file location: D:\app\Administrator\product\11.2.0\dbhome_1\cfgtoollogs\opatch\opatch2020-09-16_14-13-46下午_1.log
[2020-9-16 14:13:50] [INFO]         堆栈说明: java.lang.RuntimeException: Prerequisite check "CheckActiveFilesAndExecutables" failed.
                                        at oracle.opatch.OPatchSessionHelper.runApplyPrereqs(OPatchSessionHelper.java:6752)
                                        at oracle.opatch.opatchutil.NApply.legacy_process(NApply.java:1002)
                                        at oracle.opatch.opatchutil.NApply.legacy_process(NApply.java:372)
                                        at oracle.opatch.opatchutil.NApply.process(NApply.java:352)
                                        at oracle.opatch.opatchutil.OUSession.napply(OUSession.java:1123)
                                        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
                                        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
                                        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
                                        at java.lang.reflect.Method.invoke(Method.java:498)
                                        at oracle.opatch.UtilSession.process(UtilSession.java:355)
                                        at oracle.opatch.OPatchSession.process(OPatchSession.java:2660)
                                        at oracle.opatch.OPatch.process(OPatch.java:840)
                                        at oracle.opatch.OPatch.main(OPatch.java:897)
                                    Caused by: java.lang.RuntimeException: Prerequisite check "CheckActiveFilesAndExecutables" failed.
                                        ... 13 more
                                    Caused by: oracle.opatch.PrereqFailedException: Prerequisite check "CheckActiveFilesAndExecutables" failed.
                                        ... 13 more

原因

打补丁的 Opatch 工具太新。(也是万万没想到呀,为了稳妥在官网下载了最新版本 11.2.0.3.25 的 Opatch)

解决方式

将 Opatch 工具替换为低版本,重新应用补丁即可。

本想在官网重新下载低版本的 Opatch 工具,不曾想没找到可选项,默认下载下来就为最新版。 翻箱倒柜找到了很早以前下载过的 Opatch(11.2.0.3.15),替换后,成功应用补丁。

附 Win_64 位环境,11.2.0.3.15 版本的 Opatch 下载地址:
链接: pan.baidu.com/s/1cs-oSRy_…
提取码: winp