代码改变世界

Windows平台安装Oracle RU 19.28补丁遇到的小问题

2025-08-20 23:14  潇湘隐者  阅读(142)  评论(0)    收藏  举报

最近在给几台Windows平台的Oracle 19c数据库安装Oracle 19.28补丁时遇到了一些小问题,简单总结一下。

问题1:

D:\App\Oracle19c\product\19.3.0\db_1\OPatch\opatch apply
Oracle 临时补丁程序安装程序版本 12.2.0.1.47
版权所有 (c) 2025, Oracle Corporation。保留所有权利。


Oracle 主目录       :D:\App\Oracle19c\product\19.3.0\db_1
主产品清单:C:\Program Files\Oracle\Inventory
   来自           :
OPatch 版本    :12.2.0.1.47
OUI 版本       :12.2.0.7.0
日志文件位置:D:\App\Oracle19c\product\19.3.0\db_1\cfgtoollogs\opatch\opatch2025-08-14_11-20-04上午_1.log

Verifying environment and performing prerequisite checks...
Prerequisite check "CheckActiveFilesAndExecutables" failed.
The details are:

Following active files/executables/libs are used by ORACLE_HOME :D:\App\Oracle19c\product\19.3.0\db_1
D:\App\Oracle19c\product\19.3.0\db_1\bin\oravssmsgus.dll
D:\App\Oracle19c\product\19.3.0\db_1\bin\ORAEVRUS19.dll



D:\App\Oracle19c\product\19.3.0\db_1\oui\lib\win64\vcruntime140.dll
UtilSession 失败: Prerequisite check "CheckActiveFilesAndExecutables" failed.
Log file location: D:\App\Oracle19c\product\19.3.0\db_1\cfgtoollogs\opatch\opatch2025-08-14_11-20-04上午_1.log

OPatch failed with error code = 73

出现这个问题,似乎有进程在使用这几个文件.但是使用下面命令找不到相关进程

D:\soft\p37962957_190000_MSWIN-x86-64\37962957>tasklist /m oravssmsgus.dll
信息: 没有运行的任务匹配指定标准。

D:\soft\p37962957_190000_MSWIN-x86-64\37962957>tasklist /m ORAEVRUS19.dll
信息: 没有运行的任务匹配指定标准。

关于vcruntime140.dll,能找到相关进程,这个错误可以忽略(实际验证结果)

D:\soft\p37962957_190000_MSWIN-x86-64\37962957>tasklist /m vcruntime140.dll

映像名称                       PID 模块
========================= ======== ============================================
OmniInet.exe                  1460 VCRUNTIME140.dll
NTRTScan.exe                  1716 VCRUNTIME140.dll
vmtoolsd.exe                  2136 VCRUNTIME140.dll
VGAuthService.exe             2144 VCRUNTIME140.dll
AisEsmUI.exe                  4652 VCRUNTIME140.dll

但是有些环境,只有上面两个dll报错,即使用微软的工具Process Explorer也定位不到相关进程,同事最后想到一个妙招,将oravssmsgus.dll和ORAEVRUS19.dll重命名后,就能解决这个问题. 当然也不用担心,安装/应用新的补丁后,会在对应bin目录生成新的dll文件。

问题2:

Adding patches to retry installation queue...done
Retry installation queue:
  For the following PDBs: ***UAT ***DEV
    No interim patches need to be rolled back
    Patch 37962957 (Windows Database Bundle Patch : 19.28.0.0.250715 (37962957)):
      Apply from 19.24.0.0.0 Release_Update 240705100120 to 19.28.0.0.0 Release_Update 250710053622
    The following interim patches will be applied:
      37847857 (OJVM RELEASE UPDATE: 19.28.0.0.250715 (37847857))

Installing patches...
Patch installation complete.  Total patches installed: 4

Validating logfiles...done
Patch 37962957 apply (pdb IYICTUAT): WITH ERRORS
  logfile: D:\App\Oracle19c\product\19.3.0\db_1\cfgtoollogs\sqlpatch\37962957\27562815/37962957_apply_IYICT_IYICTUAT_2025Aug14_15_08_58.log (errors)
  -> Error at line 138767: script ctx/admin/dr0stat.pkh
      - 0/0      PL/SQL: Compilation unit analysis terminated
  -> Error at line 138768: script ctx/admin/dr0stat.pkh
      - 381/48   PLS-00201: 必须声明标识符 'SYS.HTTPURITYPE'
  -> Error at line 140778: script ctx/admin/dr0stat.plb
      - 0/0      PL/SQL: Compilation unit analysis terminated
  -> Error at line 140779: script ctx/admin/dr0stat.plb
      - 1/11     PLS-00201: 必须声明标识符 'TEXTOPTSTATS'
  -> Error at line 140780: script ctx/admin/dr0stat.plb
      - 1/11     PLS-00304: 如果没有说明, 则无法编译 'TEXTOPTSTATS' 主体
Patch 37847857 apply (pdb IYICTUAT): WITH ERRORS (PREV PATCH)
  logfile: D:\App\Oracle19c\product\19.3.0\db_1\cfgtoollogs\sqlpatch\37847857\27716658/37847857_apply_IYICT_IYICTUAT_2025Aug14_15_08_19.log (no errors)
Patch 37962957 apply (pdb IYICTDEV): WITH ERRORS
  logfile: D:\App\Oracle19c\product\19.3.0\db_1\cfgtoollogs\sqlpatch\37962957\27562815/37962957_apply_IYICT_IYICTDEV_2025Aug14_15_08_57.log (errors)
  -> Error at line 138767: script ctx/admin/dr0stat.pkh
      - 0/0      PL/SQL: Compilation unit analysis terminated
  -> Error at line 138768: script ctx/admin/dr0stat.pkh
      - 381/48   PLS-00201: 必须声明标识符 'SYS.HTTPURITYPE'
  -> Error at line 140778: script ctx/admin/dr0stat.plb
      - 0/0      PL/SQL: Compilation unit analysis terminated
  -> Error at line 140779: script ctx/admin/dr0stat.plb
      - 1/11     PLS-00201: 必须声明标识符 'TEXTOPTSTATS'
  -> Error at line 140780: script ctx/admin/dr0stat.plb
      - 1/11     PLS-00304: 如果没有说明, 则无法编译 'TEXTOPTSTATS' 主体
Patch 37847857 apply (pdb IYICTDEV): WITH ERRORS (PREV PATCH)
  logfile: D:\App\Oracle19c\product\19.3.0\db_1\cfgtoollogs\sqlpatch\37847857\27716658/37847857_apply_IYICT_IYICTDEV_2025Aug14_15_08_18.log (no errors)

Please refer to MOS Note 1609718.1 and/or the invocation log

出现这个错误,是因为权限缘故,因为安全规范,将一些账号权限给拿走了,授予下面权限即可(CDB与对应的PDB都必须授权,否则会报错)。 如果是没有对账号权限限制的环境,应该不会遇到这个问题。

授权语句如下:

GRANT EXECUTE ON  HTTPURITYPE TO PUBLIC;

从之前的经验来看,Windows平台安装补丁时,总会遇到各种各样,奇奇怪怪的问题,而Linux平台安装Oracle补丁则较少遇到一些奇奇怪怪的问题。