问题:OPatch cannot find a valid oralnst.loc file to locate Central Inventory
这个问题通常是在查询Oracle数据库,版本,psu时,可能报的错
翻译:OPatch 找不到有效的口头. loc 文件来定位中央库存,简单来说就是找不到oralnst.loc文件,有两种情况,一种是安装的Oracle数据库目录下确实没有这个文件,有可能误删了(Unix系统来说oraInst.loc的默认位置是: /etc/oraInst.loc 或者 /var/opt/oracle/oraInst.loc),给它加上就行,
这里我们可以需要指定具体的oraInst.loc文件位置给opatch
命令:opatch lsinventory -invPtrLoc 文件路径
还有一种是脚本采集到的版本或者这个文件或命令采集到的内容在你的脚本里面查询不到,日志会有报错说缺少substring方法
解决步骤:先到机器上面执行‘$ORACLE_HOME/OPatch/opatch lsinv |grep Database命令,查找一下默认目录里面有没有oralnst.loc文件,没有就加上,如果正常,在系统里重新执行脚本,看是否报错或者打印是否正确,如果报缺少substring方法错误,就去在脚本对应的内容将他的长度约束修改一下,然后指定他的长度打印对他的版本内容,因为这种情况很少机器会报错