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

    一同事,在对ORACLE 12.1.0.2 for linux7.6 应用PSU补丁31550110时,遇到了各种巨坑。

    首先,在Patch 31550110 apply的过程中,没有任何异常,按照PSU31550110的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报错问题可忽略

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值