The problem
I came across a sandbox server which had an interesting problem with oraInventory. When running opatch I received the following error:
Inventory load failed... OPatch cannot load inventory for the given Oracle Home.
Possible causes are:
Oracle Home dir. path does not exist in Central Inventory
Oracle Home is a symbolic link
Oracle Home inventory is corrupted
LsInventorySession failed: Oracle Home inventory cannot be loaded.
OPatch failed with error code 73
The cause
The immediate cause was that /u01/app/oraInventory was empty besides the "locks" directory that got created when I ran $ORACLE_HOME/OPatch/opatch lsinventory.
/etc/oraInst.loc pointed to the /u01/app/oraInventory directroy, and so did $ORACLE_HOME/oraInst.loc.
I looked for other copies of oraInventory on the server, but there were none.
I can only speculate on why /u01/app/oraInventory was empty. Perhaps someone deleted the contents by mistake, or by some misguided effort to free up disk space.
The solution
Had this been a production system it would have made sense to check the file system backup, and do a restore of /u01/app/oraInventory. But his was just a sandbox, and no file system backup existed.
The solution was to run $ORACLE_HOME/oui/bin/attachHome.sh to populate the oraInventory again.
Now the command $ORACLE_HOME/OPatch/opatch lsinventory worked fine.
No comments:
Post a Comment