Wednesday, May 30, 2007

Oracle inventory problems

Had an interesting problem happen today while applying cpu2007apr to our grid control infrastructure.

After applying the cpu to the em app server, I started work on the patches, and ran into a brick wall while patching a db server.

A simple opatch lsinventory would fail, showing one of the homes that wasn't the agent home, then spitting out this set of errors:

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: OracleHomeInventory::load() gets null oracleHomeInfo

OPatch failed with error code 73

Oh no! The inventory is corrupted! Actually, it's not at all corrupted, I just did something stupid during the initial install of this box and haven't corrected it yet.

I've got two oraInventory's on this box. Which means I'm going to need to be very specific when identifying which oraInst.loc I'm using.

In this situation, I checked in the AGENT_HOME/oraInst.loc to locate the missing inventory, and then used that in the invPtrLoc command below:

[oracle@omsdb:/usr/users/oracle]# opatch lsinventory -detail \
-invPtrLoc /u01/app/oracle/product/agent10g/oraInst.loc

No comments: