How to recreate central OraInventory in Oracle RAC

Last updated on May 11th, 2019 at 07:57 am

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

What is Oracle Clusterware?

Oracle Flex Cluster 12c

How to add any node to Oracle RAC cluster in 10g and 11g

Running Opatch throws up org.xml.sax.SAXParseException: : XML-20108: (Fatal Error) Start of root element expected

Top and most common OPATCH issues in Windows server

Oracle documentation on inventory

Leave a Reply