How to Recreate the OraInventory on UNIX Systems [ID 472854.1]

rongshiyuan發表於2012-12-25
How to Recreate the OraInventory on UNIX Systems [ID 472854.1]

In this Document


Applies to:

Oracle Server - Enterprise Edition - Version 9.2.0.1 to 10.2.0.1 [Release 9.2 to 10.2]
Oracle Fusion Middleware - Version 10.1.2.0.2 to 11.1.2.0.0 [Release AS10gR2 to Oracle11g]
Information in this document applies to any platform.
Checked for Relevance on 24-Aug-2011


Goal

How can I recreate the OraInventory on UNIX systems if it gets corrupted or removed?


Important:
If losing or finding an OraInventory corrupted, the first recommendation is to recover from backup. This document provides an alternative solution based on options with the Oracle Universal Installer (OUI). This has only had limited testing on Oracle Fusion Middleware 10g/11g and Oracle Database Server 10g installations. There may be situations where this may not work and could mean a backup as a best course of action.

Fix

In cases where the OraInventory is missing or otherwise corrupt, recreate the oraInventory directory on UNIX systems using the following steps. In a normal installation, there is a Global Inventory ($ORACLE_BASE/OraInventory) and a Local Inventory ($ORACLE_HOME/inventory).

  1. Locate the oraInst.loc file, which may be in different locations, depending on your system:

    /var/opt/oracle/oraInst.loc file
    or
    /etc/oraInst.loc


  2. Modify the file oraInst.loc file:

    cp /var/opt/oracle/oraInst.loc /var/opt/oracle/oraInst.loc.bak
    mkdir /u01/oracle/oraInventory

    ---file contents---
    inventory_loc=/u01/oracle/oraInventory
    inst_group=oinstall
    ---file contents---

    Important:
    Theses example uses a typical directory, considered an $ORACLE_BASE, and a typical UNIX group which installed the Oracle products. Ensure that the correct values are used for your system.

    The oraInventory directory is usually a directory under the $ORACLE_BASE. For example, if the $ORACLE_HOME is equal to "/u01/oracle/product/10g", then the OraInventory would normally be "/u01/oracle/OraInventory".
  3. Change the permissions to be appropriate, (using your directory location):

    chmod 644 /var/opt/oracle/oraInst.loc


  4. For consistency, copy the file to Oracle home directory, (using your directory location):

    cp $ORACLE_HOME/oraInst.loc $ORACLE_HOME/oraInst.loc.bak
    cp /var/opt/oracle/oraInst.loc $ORACLE_HOME/oraInst.loc


    1. Run Oracle Universal Installer from your Oracle home as below:

      cd $ORACLE_HOME/oui/bin
      ./runInstaller -silent -attachHome ORACLE_HOME="/u01/oracle/product/10.1.2" ORACLE_HOME_NAME="Ora10gHome"


      Note: The -attachHome is a newer parameter introduced in OUI 10.1, but only officially documented/supported using OUI 10.2 and higher. As noted above, this document outlines the limited testing of this with the OUI 10.1 version.


      In the above example use your installation's specific directory location and Oracle home name used during installation. See the following if this is not known:

      Note 444608.1 What is ORACLE_HOME_NAME?


  5. Check the log to ensure the AttachHome action was successful:


    /logs/AttachHome.log


  6. Check the inventory output is correct for your Oracle home:

    $ORACLE_HOME/OPatch/opatch lsinventory -detail

  7. If the table at the beginning of the output is showing the proper directories, and the Oracle home components are properly reflected in the details, then the Global Inventory (in $ORACLE_BASE) has been successfully created from the Local Inventory, (in $ORACLE_HOME). At this time, you may patch and maintain your Oracle home, as normal.


References

NOTE:418537.1 - Significance of oraInst.loc When Installing Oracle Products and Applying Patches
NOTE:444608.1 - What is ORACLE_HOME_NAME ?

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/17252115/viewspace-751598/,如需轉載,請註明出處,否則將追究法律責任。

相關文章