What is oraInventory in Oracle 10g/11g:

What is oraInventory in Oracle 10g/11g:
=============================

You all might be familiar with oraInventory & its importance so lets take a look at few common things about it like binary/xml inventory, What to do if Inventory is corrupted , What is global / Local Inventory and where to find documentation related to oraInventory .

What is oraInventory ?
oraInventory is repository (directory) which store/records
oracle software products & their oracle_homes location on a machine. This Inventory now a days in XML format and called as XML Inventory where as in past it used to be in binary format & called as binary Inventory.
There are basically two kind of Inventory Global Inventory (also called as Central Inventory) and Local Inventory also called as Oracle Home Inventory.

Global Inventory ?
Global Inventory holds information
about Oracle Products on a Machine. These products can be various oracle components like database, oracle application server, collaboration suite, soa suite, forms & reports or discoverer server . This global Inventory location will be determined by file oraInst.loc in /etc (on Linux) or /var/opt/oracle (solaris). If you want to see list of oracle products on machine check for file inventory.xml under ContentsXML in oraInventory (Please note if you have multiple global Inventory on machine check all oraInventory directories
)

You will see entry like
HOME NAME="ORA10g_HOME" LOC="/u01/oracle/10.2.0/db" TYPE="O" IDX="1"/
...
...

Local Inventory
Inventory inside each Oracle Home is called as local Inventory or oracle_home Inventory. This Inventory holds information to that oracle_home only.

Can I have multiple Global Inventory on a machine ?
Quite common questions is that can you have multiple global Inventory and answer is YES you can have multiple global Inventory but if your upgrading or applying patch then change Inventory Pointer oraInst.loc to respective location. If you are following single global Inventory and if you wish to uninstall any software then remove it from Global Inventory as well.

What to do if my Global Inventory is corrupted ?
No need to worry if your global Inventory is corrupted, you can recreate global Inventory on machine using Universal Installer and attach already Installed oracle home by option
-attachHome

./runInstaller -silent -attachHome -invPtrLoc $location_to_oraInst.loc
ORACLE_HOME="Oracle_Home_Location" ORACLE_HOME_NAME="Oracle_Home_Name"
CLUSTER_NODES="{}"

Do I need to worry about oraInventory during oracle Apps 11i cloning ?
No, Rapid Clone will update both Global & Local Inventory with required information , you don't have to worry about Inventory during Oracle Apps 11i cloning.

What is oraInventory
The Orainventory is the location for the OUI's Book keeping
The inventory stores information about.
  • All the Oracle software products installed on all ORACLE_HOMES on a machine
  • Other non-oracle products such as Java Runtime env's (JRE)
Binary OraInventory
Before OUI 2.X (or 11.5.7 or earlier)the inventory was binary, the binary orainvenory maintains in inventory in binary format
XML Inventory
Starting from OUI 2.X and 11.5.8 information in the inventory is stored in the Extensible Markup Language (XML) format.
The XML format allows easier diagnostic of the problem and faster loading of data.
XML inventory is divided into 2 components.
  1. Global Inventory
Global Inventory holds information about Oracle Products on a Machine, The inventory contains the high level list of all oracle products installed on a machine such as ORACLE_HOMES or JRE.
It doesn't have any information about the details of patches applied on each ORACLE_HOMES.
There should be only one per machine. Its locations is defined in the oraInst.loc in /etc (on Linux) or /var/opt/oracle (solaris).
  1. Local Inventory
There is one Local inventory per ORACLE_HOME.
Inventory inside each Oracle Home is called as local Inventory or ORACLE_HOME Inventory. This Inventory holds information to that ORACLE_HOME only.


Can I have multiple Global Inventories on a machine?
Can you have multiple global Inventory and answer is YES you can have multiple global Inventory but if your upgrading or applying patch then change Inventory Pointer oraInst.loc to respective location.
If you are following single global Inventory and if you wish to uninstall any software then remove it from Global Inventory as well.

What to do if my Global Inventory is corrupted?
If your global Inventory is corrupted, you can recreate global Inventory on machine using Universal Installer and attach already Installed oracle home by option
-attachHome
./runInstaller -silent -attachHome -invPtrLoc $location_to_oraInst.loc ORACLE_HOME=Oracle_Home_Location ORACLE_HOME_NAME=Oracle_Home_Name CLUSTER_NODES={}

Do I need to worry about oraInventory during oracle Apps 11i cloning ?
No, Rapid Clone will update both Global & Local Inventory with required information, you don't have to worry about Inventory during Oracle Apps 11i cloning.

How to Move oraInventory from one location to other?
Find the current location of the central inventory (Normally $ORACLE_BASE/oraInventory):
Open the oraInst.loc file in /etc and check the value of inventory_loc
cat /etc/oraInst.loc
inventory_loc=/u01/app/oracle/oraInventory
inst_group=oinstall
Remark: The oraInst.loc file is simply a pointer to the location of the central inventory (oraInventory)
Copy the oraInventory directory to the destination directory
cp -Rp /u01/app/oracle/oraInventory /u02/app/oracle/oraInventory
Edit the oraInst.loc file to point to the new location
vi /etc/oraInst.loc
inventory_loc=/u02/app/oracle/oraInventory
inst_group=dba

OraInventory and its use -:
In the oraInventory directory, the Installer keeps track of what is installed, and information on how to deinstall products. Many of the libraries needed to run the Installer are also in this directory. The Oracle Installer uses the "oraInst.loc" file to determine the location of the oraInventory directory. If this file is blank or contains an invalid entry the Installer will give an error about unable to find oraInventory or may provide an incomplete listing of installed products.


The oraInventory directory must be owned by the user root.

Oracle Universal Installer (OUI) uses oraInventory directory as a repository of the Oracle products that are installed on your machine.

OraInventory Directory

The installer creates the oraInventory directory the first time it is run on your computer. The oraInventory directory keeps an inventory of products that the installer installs on your computer as well as other installation information. If you have previously installed Oracle products, then you may already have an oraInventory directory.
  • When a UNIX group name is specified, it grants that group the permission to write to the oraInventory directory. If another group attempts to run the installer, then they must have permission to write to the oraInventory directory. If they do not have permission the installation will fail.
  • Be sure the user running the installer has permission to write to the oraInventory directory and all its files. This is required to run the installer.
  • The location of oraInventory is defined in /etc/oratab/oraInst.loc for HP 9000 Series HP-UX and AIX-Based Systems.
  • The location of oraInventory is defined in /var/opt/oraInst.loc for Sun Solaris.
  • The latest log fileDescription: G:\OCTOBER FROM INTERNET DELHI\OCT 3RD\orainventory\Oracle Dba  OraInventory and its use - _files\arrow-10x10.png is oraInventory_location/logs/installActions.log. Log fileDescription: G:\OCTOBER FROM INTERNET DELHI\OCT 3RD\orainventory\Oracle Dba  OraInventory and its use - _files\arrow-10x10.png names of previous installation sessions take the form installActionsdatetime.log.
  • Do not delete or manually alter the oraInventory directory or its contents. Doing so can prevent the installer from locating products that you have installed on your system.




No comments: