ORACLE 12.1.0.2 for linux7.6 应用PSU补丁31550110中的巨坑

来源:这里教程网 时间:2026-03-03 17:05:58 作者:

    一同事,在对ORACLE 12.1.0.2 for linux7.6 应用PSU补丁31550110时,遇到了各种巨坑。    首先,在Patch  31550110 apply的过程中,没有任何异常,按照PSU 31550110的readme,在apply执行完成后, 无论单纯的单实例还是CDB容器库都需要执行./datapatch -verbose。      但是,在执行 ./datapatch -verbose时,操作日志提示报错信息如下:     按照 datapatch -verbose日志提示,分别在CDB和PDB数据库执行select dbms_sqlpatch.verify_queryable_inventory  from dual;均提示错误信息:     其次,依经验需要排除PSU31550110的影响,处理方法是回退PSU31550110再执行select dbms_sqlpatch.verify_queryable_inventory  from dual;是否有同样的错误信息提示。回退 PSU31550110后再执行查询 dbms_sqlpatch.verify_queryable_inventory  from dual;,无论是CDB还是PDB依然是 KUP-00554 KUP-01005 KUP-01008 KUP-01007的报错信息提示。所以,可以确定 KUP-00554 KUP-01005 KUP-01008 KUP-01007问题在 PSU31550110应用之前就存在。 PSU31550110应用之前,需要先处理 KUP-00554 KUP-01005 KUP-01008 KUP-01007 报错问题。    按照KUP-00554 KUP-01005 KUP-01008 KUP-01007在oracle mos查询到文档Doc ID 2302799.1。 Doc ID 2302799.1提示的对应数据库版本与本次操作的数据库版本一致: Doc ID 2302799.1提示的现象与本次操作的报错信息一致: Doc ID 2302799.1提示的问题处理方法是重建OPATCH_XML_INV表,重建过程如下: 需要注意的是: OPATCH_XML_INV表重建需要在CDB层次 2302799.1没有特别说明 操作。     再次,重建 OPATCH_XML_INV后,重新应用补丁集31550110也是成功的, datapatch -verbose不再有异常提示信息: oracle$[/app/oracle/product/12.1.0/dbhome_1/OPatch]./datapatch -verbose SQL Patching tool version 12.1.0.2.0 Production on Mon Oct 25 18:04:27 2021 Copyright (c) 2012, 2016, Oracle.  All rights reserved. Log file for this invocation: /app/oracle/cfgtoollogs/sqlpatch/sqlpatch_28324_2021_10_25_18_04_27/sqlpatch_invocation.log Connecting to database...OK Note:  Datapatch will only apply or rollback SQL fixes for PDBs        that are in an open state, no patches will be applied to closed PDBs.        Please refer to Note: Datapatch: Database 12c Post Patch SQL Automation        (Doc ID 1585822.1) Bootstrapping registry and package to current versions...done Determining current state...done Current state of SQL patches: Bundle series PSU:   ID 201020 in the binary registry and ID 201020 in PDB CDB$ROOT, ID 201020 in PDB PDB$SEED, ID 201020 in PDB PDBORCL Adding patches to installation queue and performing prereq checks... Installation queue:   For the following PDBs: CDB$ROOT     Nothing to roll back     Nothing to apply   For the following PDBs: PDB$SEED PDBORCL     Nothing to roll back     The following patches will be applied:       31550110 (DATABASE PATCH SET UPDATE 12.1.0.2.201020) Installing patches... Patch installation complete.  Total patches installed: 2 Validating logfiles... Patch 31550110 apply (pdb PDB$SEED): SUCCESS   logfile: /app/oracle/cfgtoollogs/sqlpatch/31550110/23839756/31550110_apply_ORCL_PDBSEED_2021Oct25_18_04_50.log (no errors) Patch 31550110 apply (pdb PDBORCL): SUCCESS   logfile: /app/oracle/cfgtoollogs/sqlpatch/31550110/23839756/31550110_apply_ORCL_PDBORCL_2021Oct25_18_04_51.log (no errors)    在CDB层次执行查询select dbms_sqlpatch.verify_queryable_inventory  from dual;正常返回结果:     但是,在PDB中执行 select dbms_sqlpatch.verify_queryable_inventory  from dual;返回错误信息: 关于KUP-00554 KUP-01005 KUP-01008 KUP-01007报错问题,MOS上有另外一篇文档Doc ID 2293336.1有说明: 按照 Doc ID 2293336.1文档提示, select dbms_sqlpatch.verify_queryable_inventory  from dual;查询只能在CDB层次 执行,PDB层次不支持。     总结:     1. KUP-00554 KUP-01005 KUP-01008 KUP-01007报错问题,CDB中需要重建表 OPATCH_XML_INV;     2. PDB中 KUP-00554 KUP-01005 KUP-01008 KUP-01007报错问题可忽略

相关推荐