Tuesday, September 29, 2015

Oracle Home missing from Oracle Central Inventory

Due to mysterious reasons the Central Inventory gets corrupted and you get the error following message while performing "opatch lsinventory"


Oracle Interim Patch Installer version 11.2.0.3.12
Copyright (c) 2015, Oracle Corporation.  All rights reserved.
Oracle Home       : /u01/app/db1/oracle/product/11.2.0.3/db
Central Inventory : /u01/app/db1/oraInventory
   from           : /u01/app/db1/oracle/product/11.2.0.3/db/oraInst.loc
OPatch version    : 11.2.0.3.12
OUI version       : 11.2.0.3.0
Log file location : /u01/app/db1/oracle/product/11.2.0.3/db/cfgtoollogs/opatch/opatch2015-09-28_20-56-29PM_1.log
List of Homes on this system:
  Home name= agent12c1, Location= "/u01/app/db1/oracle/product/agent12c/core/12.1.0.3.0"
  Home name= sbin12c1, Location= "/u01/app/db1/oracle/product/agent12c/sbin"
...
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


Due The issue was due to missing Oracle Home (/u01/app/db1/oracle/product/11.2.0.3/db) in the Central Inventory, so the opatch could not load the home details.
The resolution to this issue is quite simple. Using the runInstaller update the inventory.xml for the missing Oracle Home.


cd $ORACLE_HOME/oui/bin
./runInstaller -silent -ignoreSysPrereqs -attachHome ORACLE_HOME="/u01/app/db1/oracle/product/11.2.0.3/db" ORACLE_HOME_NAME="OraDB11g_home1"
Checking swap space: must be greater than 500 MB.   Actual 8133 MB    Passed
The inventory pointer is located at /etc/oraInst.loc
The inventory is located at /u01/app/db1/oraInventory
'AttachHome' was successful.


Note : Do not try to update the inventory.xml manually (vi or notepad) as it may corrupt the Central Inventory.


After the Inventory is repaired try to list inventory using opatch again and VOILA!! it's resolved.
Oracle Interim Patch Installer version 11.2.0.3.12
Copyright (c) 2015, Oracle Corporation.  All rights reserved.
Oracle Home       : /u01/app/db1/oracle/product/11.2.0.3/db
Central Inventory : /u01/app/db1/oraInventory
   from           : /u01/app/db1/oracle/product/11.2.0.3/db/oraInst.loc
OPatch version    : 11.2.0.3.12
OUI version       : 11.2.0.3.0
Log file location : /u01/app/db1/oracle/product/11.2.0.3/db/cfgtoollogs/opatch/opatch2015-09-28_21-07-25PM_1.log
Lsinventory Output file location : /u01/app/db1/oracle/product/11.2.0.3/db/cfgtoollogs/opatch/lsinv/lsinventory2015-09-28_21-07-25PM.txt
--------------------------------------------------------------------------------
Local Machine Information::
Hostname: <Removed>
ARU platform id: 226
ARU platform description:: Linux x86-64
Installed Top-level Products (1):
Oracle Database 11g                                                  11.2.0.3.0
There are 1 products installed in this Oracle Home.
Interim patches (27) :
Patch  15862024     : applied on Thu Mar 07 19:39:13 PST 2013
Unique Patch ID:  15795282
   Created on 26 Dec 2012, 07:12:21 hrs PST8PDT
   Patch  13742433     : applied on Thu Mar 07 12:40:29 PST 2013
Unique Patch ID:  15418815
   Created on 9 Mar 2012, 03:31:54 hrs PST8PDT
   Bugs fixed:
     13742433
--------------------------------------------------------------------------------
OPatch succeeded.


Hopefully the small note helps. Happy Patching !!

2 comments:

CHETAN G DEV said...

Hi Amit,

we are getting the below error while upgrading the database from 10g to 11.2.0.4 , can you help on this.


oracle@qysprfeosdb01.data.ieptc.intuit.net:/u01/app/eosprfp1/oracle/product/11.2.0.4/db/clone/bin->./clone.pl ORACLE_BASE=/u01/app/eosprfp1/oracle ORACLE_HOME=/u01/app/eosprfp1/oracle/product/11.2.0.4/db ORACLE_HOME_NAME=11R24
./runInstaller -clone -waitForCompletion "ORACLE_BASE=/u01/app/eosprfp1/oracle" "ORACLE_HOME=/u01/app/eosprfp1/oracle/product/11.2.0.4/db" "ORACLE_HOME_NAME=11R24" -silent -noConfig -nowait
Starting Oracle Universal Installer...

Checking swap space: must be greater than 500 MB. Actual 31848 MB Passed
Preparing to launch Oracle Universal Installer from /tmp/OraInstall2015-09-29_01-40-28AM. Please wait ...Oracle Universal Installer, Version 11.2.0.4.0 Production
Copyright (C) 1999, 2013, Oracle. All rights reserved.

org.xml.sax.SAXParseException: : XML-20121: (Fatal Error) End tag does not match start tag 'HOME_LIST'.
at oracle.xml.parser.v2.XMLError.flushErrorHandler(XMLError.java:422)
at oracle.xml.parser.v2.XMLError.flushErrors1(XMLError.java:287)
at oracle.xml.parser.v2.NonValidatingParser.parseEndTag(NonValidatingParser.java:1699)
at oracle.xml.parser.v2.NonValidatingParser.parseElement(NonValidatingParser.java:1642)
at oracle.xml.parser.v2.NonValidatingParser.parseRootElement(NonValidatingParser.java:456)
at oracle.xml.parser.v2.NonValidatingParser.parseDocument(NonValidatingParser.java:402)
at oracle.xml.parser.v2.XMLParser.parse(XMLParser.java:244)
at oracle.sysman.oii.oiii.OiiiInstallXMLReader.readHomes(OiiiInstallXMLReader.java:153)
at oracle.sysman.oii.oiii.OiiiInstallXMLReader.readHomes(OiiiInstallXMLReader.java:91)
at oracle.sysman.oii.oiii.OiiiInstallInventory.readHomes(OiiiInstallInventory.java:724)
at oracle.sysman.oii.oiii.OiiiInstallAreaControl.loadPartialInstallInv(OiiiInstallAreaControl.java:782)
at oracle.sysman.oii.oiii.OiiiInstallAreaControl.initInstallInv(OiiiInstallAreaControl.java:827)
at oracle.sysman.oii.oiii.OiiiInstallAreaControl.loadInstallInventory(OiiiInstallAreaControl.java:598)
at oracle.sysman.oii.oiii.OiiiInstallAreaControl.initAreaControl(OiiiInstallAreaControl.java:1991)
at oracle.sysman.oii.oiii.OiiiInstallAreaControl.initAreaControl(OiiiInstallAreaControl.java:195

Amit Kumar Das said...

The issue seems to be with the inventory.xml with the TAG 'HOME_LIST'. Please review your inventory.xml for any missing tags.