Oracle中Inventory目录作用以及如何重建Inventory目录
[color=darkred]Oracle中Inventory目录作用以及如何重建Inventory目录
oraInventory存放的是Oracle软件安装的目录信息,Oralce的安装升级都需要用到这个目录,来看看Oracle文档中对这个目录的一点说明:
All Oracle software installations rely on this directory.
Ensure that you back it up regularly.
Do not delete this directory unless you have completely removed
all Oracle software from the system.
oraInventory目录的位置是由oraInst.loc文件决定的:
/etc/oraInst.loc (AIX and Linux Platform)
/var/opt/oracle/OraInst.loc (Solaris and HP-UX platform)
$cat /etc/oraInst.loc
inventory_loc=/app/oracle/oraInventory
inst_group=dba
删除或丢失oraInventory目录的内容,都有可能导致升级报错,例如在运行opatch时就有可能遇到以下报错:
10G中:
$opatch lsinventory
Invoking OPatch 10.2.0.4.3
OPatch failed to locate Central Inventory.
Possible causes are:
The Central Inventory is corrupted
The oraInst.loc file specified is not valid.
LsInventorySession failed: OPatch failed to locate Central Inventory.
Possible causes are:
The Central Inventory is corrupted
The oraInst.loc file specified is not valid.
OPatch failed with error code 73
$opatch lsinventory
Invoking OPatch 10.2.0.4.3
List of Homes on this system:
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: OracleHomeInventory gets null oracleHomeInfo
OPatch failed with error code 73
9I中报错:
OPATCH_JAVA_ERROR : An exception of type "OPatchException" has occurred:
OPatch Exception:
Can not lock OUI inventory (READ/WRITE Level)
An exception occurs
The inventory pointed at location /app/oraInventory is not valid
There is no Interim Patch
Can not get a list of inventory on this home.
LsInventory: OPatch Exception while accessing O2O
OPATCH_JAVA_ERROR : An exception of type "OPatchException" has occurred:
OPatch Exception:
OUI found no such ORACLE_HOME set in the environment
Can not get details for given Oracle Home
An exception occurs
null
There is no Interim Patch
Can not get a list of inventory on this home.
ERROR: OPatch failed because of Inventory problem.
在10G中可以运行以下命令进行oraInventory目录重建:
$cd $ORACLE_HOME/oui/bin
$./runInstaller -silent -attachHome \
> ORACLE_HOME=$ORACLE_HOME \
> ORACLE_HOME_NAME="ORACLE_HOME"
Starting Oracle Universal Installer...
No pre-requisite checks found in oraparam.ini,
no system pre-requisite checks will be executed.
The inventory pointer is located at /etc/oraInst.loc
The inventory is located at /app/oracle/oraInventory
'AttachHome' was successful.
js_znjh_1./app/oracle/product/10.2.0/db_1/oui/bin$
10.2.0.2以上的版本及11g以后,可以直接运行attachHome.sh脚本:
$cd $ORACLE_HOME/oui/bin
$./attachHome.sh
No pre-requisite checks found in oraparam.ini,
no system pre-requisite checks will be executed.
The inventory pointer is located at /etc/oraInst.loc
The inventory is located at /app/oracle/oraInventory
'AttachHome' was successful.
以下是12C RAC的情况,要在第一个节点上运行完成后再到第第二个节点运行
[grid@itpux1:/oracle/app/12.1.0.2/grid/oui/bin]$./attachHome.sh
Starting Oracle Universal Installer...
Checking swap space: must be greater than 500 MB. Actual 8191 MB Passed
The inventory pointer is located at /etc/oraInst.loc
'AttachHome' was successful.
[grid@itpux2:/oracle/app/oraInventory/ContentsXML]$cd $ORACLE_HOME/oui/bin
[grid@itpux2:/oracle/app/12.1.0.2/grid/oui/bin]$./attachHome.sh
Starting Oracle Universal Installer...
Checking swap space: must be greater than 500 MB. Actual 8191 MB Passed
The inventory pointer is located at /etc/oraInst.loc
'AttachHome' was successful.