We may come across the situation where we are checking the patches in Real application cluster installation using opatch and we are getting below errors for oracle central orainventory
$ opatch lsinventory Oracle Interim Patch Installer version 1.0.0.0.55 Can not get details for given Oracle Home LsInventory: OPatch Exception while accessing O2O OPATCH_JAVA_ERROR : An exception of type "OPatchException" has occurred: OPatch Exception: Can not get details for given Oracle Home Oracle interim Patch Installer version 10.2.0.3.0 OPatch failed to locate Central Inventory. Possible causes are: The Central Inventory is corrupted The oraInst.loc file specified is not valid. LsInventorySession failed: OracleHomeInventory::createInventoryObj() gets a null OiicStandardInventorySession object OPatch failed with error code 73
This happens when the central orainventory is corrupted or not present or Oracle home is not registered in it. We can use below procedure to recreate central OraInventory and go forward with patch installation
First let us find out what is Oracle central orainventory
The OraInventory is the location for the OUI (Oracle Universal Installer) book keeping. it stores an inventory of all software installed on the system. It is required and shared by all Oracle software installations on a single machine. If you have an existing Oracle Inventory path, then Oracle Universal Installer continues to use that Oracle Inventory. You may use different central inventory for different installation if you want by specifying the new location in /etc/oraInst.loc or /var/opt/oracle/oraInst.loc (Platform specific). But Ideally it is recommended to use single Oracle central inventory for all the installation on the machine
1-Locate the central inventory
cat /etc/oraInst.loc or /var/opt/oracle/oraInst.loc (Platform specific)
2-Take a back up of central inventory or rename in all the nodes.
mv oraInventory oraInventory.bk
3-cd $ORACLE_HOME/oui/bin
4-Execute runInstaller with attachHome option for Oracle Clusterware Home.
./runInstaller -silent -ignoreSysPrereqs -attachHome ORACLE_HOME="Cluster Home Location" ORACLE_HOME_NAME="Name of the cluster Home" LOCAL_NODE='node1' CLUSTER_NODES=node1,node2 CRS=true
5-Execute runInstaller with attachHome option for Oracle Home
./runInstaller -silent -ignoreSysPrereqs -attachHome ORACLE_HOME="Oracle Home location" ORACLE_HOME_NAME="Name of the Oracle Home" LOCAL_NODE='node1' CLUSTER_NODES=node1,node2
6-Verify the inventory creation in all the nodes.
opatch lsinventory -detail
7-Verify and compare XML files size inside oraInventory/ContentsXML across all the nodes.
8. Verify the local inventory also for the Oracle home
$ORACLE_HOME/inventory/ContentsXML/oraclehomeproperties.xml
Hope you like the post on How to recreate central OraInventory in Real applications clusters. Please do provide the feedback
Related Articles
How to add any node to Oracle RAC cluster in 10g and 11g
Top and most common OPATCH issues in Windows server
Oracle documentation on inventory