问题描述:
某项目安装环境grid管理的oracle,环境已经搭建好许久,执行上线检查PSU版本时发现opatch lsinventory报错
但实例的sqlpatch显示已经应用成功且oracle client版本也显示为19.13
怀疑是Central Inventory(/oracle/oraInventory)下的文件被损坏
问题排查:
1、使用常规方式恢复/oracle/oraInventory
检查$ORACLE_HOME/oraInst.loc
cd /oracle/oraInventory/ContentsXML
发现下面为空,因为有主备机,备机的opatch lsinventory显示正常,且psu一致,遂将备机/oracle/oraInventory/ContentsXML目录下的xml文件拷贝到问题机器,此时显示
尝试删除拷贝过来的xml文件,手动生成也是同样的问题
./runInstaller -silent -ignoreSysPrereqs -attachHome ORACLE_HOME="/oracle/product/19c" ORACLE_HOME_NAME="OraDB19Home1"
2、尝试重新打psu
正常19c的版本即使没有打psu/ru也不会显示no Interim patches,应该至少有19.3的补丁才对
果然在$ORACLE_HOME/inventory/oneoffs下所有patchid显示为空
显然是不正常的,怀疑是之前psu没打好导致,建议现场重新打oracle软件psu
3、打补丁过程中出错
现场在补丁分析过程中报bootstrap失败
且注意到opatch lsinventory显示的ARU platform id/description均为空
grid用户下正常,显示的是226和Linux x86-64
在$ORACLE_HOME/inventory/ContentsXML下看,oraclehomeproperties.xml为空,oui-patch.xml、comps.xml、config.xml等正常情况下应该有的信息这些xml文件也没有,且这些文件相对来说很小,只有几百bytes,正常应该是K级别大小,怀疑这些xml文件被清空过
4、柳暗花明
因为现场数据库实例正常在这个环境下跑着,且要求再建实例,再建实例过程中发现/oracle/product/19c/cv/cvdata/admin.xml此xml文件也缺失,怀疑当时装oracle时候有问题,后发现$ORACLE_HOME下的xml文件都没了,怀疑是误操作删除了这些xml文件。且跟oracle原厂确认这些xml文件无法从另一个节点直接复制后,准备备份重装oracle软件