ORA-20001: Latest xml inventory is not loaded into table

问题描述

数据库启动报ORA-20001错

2020-09-16T13:04:29.357786+08:00
Unable to obtain current patch information due to error: 20001, ORA-20001: Latest xml inventory is not loaded into table
ORA-06512: at “SYS.DBMS_QOPATCH”, line 777
ORA-06512: at “SYS.DBMS_QOPATCH”, line 864
ORA-06512: at “SYS.DBMS_QOPATCH”, line 2222
ORA-06512: at “SYS.DBMS_QOPATCH”, line 740
ORA-06512: at “SYS.DBMS_QOPATCH”, line 2247

报错显示QOPATCH的问题,进入OPatch目录(%ORACLE_HOME%/OPatch),使用 opatch lsinventory命令查看,信息如下:

F:\Oracle\OracleDB\product\12.2.0\dbhome_1\OPatch>opatch lsinventory
Oracle 中间补丁程序安装程序版本 12.2.0.1.6
版权所有 © 2020, Oracle Corporation。保留所有权利。
Oracle Home : F:\Oracle\OracleDB\product\12.2.0\dbhome_1
Central Inventory : C:\Program Files\Oracle\Inventory
from :
OPatch version : 12.2.0.1.6
OUI version : 12.2.0.1.4
Log file location : F:\Oracle\OracleDB\product\12.2.0\dbhome_1\cfgtoollogs\opatch\opatch2020-09-16_15-20-55下午_1.log
List of Homes on this system:
LsInventorySession 失败: RawInventory gets null OracleHomeInfo
OPatch failed with error code = 73

OUI-67073:LsInventorySession 失败: RawInventory gets null OracleHomeInfo 错误

问题原因

DBMS_QOPATCH包是提供PLSQL/SQL接口方式访问数据库补丁安装情况,oracle在启动的时候会去调用这个包查询patch情况,由于OPatch通过OracleHomeInfo检索Oracle的home目录,而Central Inventory记录了Oracle安装的所有组件路径,但是Central Inventory中记录的信息是从上面信息的from :这个文件中来的,但是这个地方显示路径是空,通过注册表查看inst_Ioc注册项,发现C:\Program Files\Oracle\Inventory 下是空的

from: 后面的这个文件叫Central Inventory Pointer File。
这个指向文件在不同的操作系统上有不同的默认位置,例如: Linux And AIX — /etc/oraInst.loc Other
Unix Platforms — /var/opt/oracle/oraInst.loc Windows — The pointer is
located in the registry key:
\HKEY_LOCAL_MACHINE\Software\Oracle\inst_loc Opatch就是通过Central
Inventory Pointer File找到< Central Inventory> 的路径,然后读取ORACLE_HOME的详细信息的。

解决办法

oracle重建Central Inventory
linux重建的办法网上很多,此次在windows系统重建

  1. 进入 %ORACLE_HOME%\oui\bin目录
  2. 执行setup.exe -silent -ignoreSysPrereqs -attachHome ORACLE_HOME="<Oracle_Home_Location>" ORACLE_HOME_NAME="<Name_Of _Oracle_Home>"

例如:
ORACLE_HOME=F:\Oracle\OracleDB\product\12.2.0\dbhome_1
ORACLE_HOME_NAME=OraDB12Home1

 setup.exe -silent -ignoreSysPrereqs -attachHome ORACLE_HOME="F:\Oracle\OracleDB\product\12.2.0\dbhome_1" ORACLE_HOME_NAME="OraDB12Home1"
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值