在ORACLE_HOME下面也有一个Inventory目录,这个目录就是我们平时说的Local Inventory(非全局)。这个Inventory是本
地的,每个ORACLE_HOME所独有的。它记录了本ORACLE_HOME中OUI安装的组件的信息。
非安装,而是tar过来的数据库系统,或删除了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.
重建全局Inventory的方法很简单。
1. 我们首先要编辑一个oraInst.loc文件,使之指向我们要创建全局Inventory的目录。
Inventory_loc=/opt/oracle/oraInventory
inst_group=oinstall
然后将目录转向ORACLE_HOME下的oui/bin目录:
$ cd $ORACLE_HOME/oui/bin
在该目录下执行下面的脚本就可以完成全局Inventory的创建(单节点):
$./runInstaller -silent -ignoreSysPrereqs -attachHome ORACLE_HOME="" ORACLE_HOME_NAME=""
例子(单节点):
$ ./runInstaller -silent -ignoreSysPrereqs -attachHome ORACLE_HOME="/opt/oracle/product/10g" ORACLE_HOME_NAME="ora10g"
Starting Oracle Universal Installer...
No pre-requisite checks found in oraparam.ini, no system pre-requisite checks will be executed.
>>> Ignoring required pre-requisite failures. Continuing...
The Inventory pointer is located at /etc/oraInst.loc
The Inventory is located at /opt/oracle/oraInventory
'AttachHome' was successful.
针对11.2以后的数据库,这个命令有所区别:
% ./runInstaller -silent -ignoreSysPrereqs -attachHome ORACLE_HOME=""
不需要指定Oracle Home的名字了。
在RAC环境下要稍微复杂一些。在本小节的最后一部分,我们来简单探讨一下重建RAC环境下的全局Inventory的方法。
比如10g RAC引入了CRS,因此我们在重建Inventory的时候,至少需要修复两个ORACLE_HOME,一个是RDBMS的,一个是CRS的。命令如下:
./runInstaller -silent -ignoreSysPrereqs -attachHome ORACLE_HOME="<10g Ora_Crs_Home Path>" ORACLE_HOME_NAME="" LOCAL_NODE='node1' CLUSTER_NODES=node1,node2 CRS=true
./runInstaller -silent -ignoreSysPrereqs -attachHome ORACLE_HOME="<10g Oracle_Home Path>" ORACLE_HOME_NAME="" LOCAL_NODE='node1' CLUSTER_NODES=node1,node2
地的,每个ORACLE_HOME所独有的。它记录了本ORACLE_HOME中OUI安装的组件的信息。
非安装,而是tar过来的数据库系统,或删除了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.
重建全局Inventory的方法很简单。
1. 我们首先要编辑一个oraInst.loc文件,使之指向我们要创建全局Inventory的目录。
Inventory_loc=/opt/oracle/oraInventory
inst_group=oinstall
然后将目录转向ORACLE_HOME下的oui/bin目录:
$ cd $ORACLE_HOME/oui/bin
在该目录下执行下面的脚本就可以完成全局Inventory的创建(单节点):
$./runInstaller -silent -ignoreSysPrereqs -attachHome ORACLE_HOME="" ORACLE_HOME_NAME=""
例子(单节点):
$ ./runInstaller -silent -ignoreSysPrereqs -attachHome ORACLE_HOME="/opt/oracle/product/10g" ORACLE_HOME_NAME="ora10g"
Starting Oracle Universal Installer...
No pre-requisite checks found in oraparam.ini, no system pre-requisite checks will be executed.
>>> Ignoring required pre-requisite failures. Continuing...
The Inventory pointer is located at /etc/oraInst.loc
The Inventory is located at /opt/oracle/oraInventory
'AttachHome' was successful.
针对11.2以后的数据库,这个命令有所区别:
% ./runInstaller -silent -ignoreSysPrereqs -attachHome ORACLE_HOME=""
不需要指定Oracle Home的名字了。
在RAC环境下要稍微复杂一些。在本小节的最后一部分,我们来简单探讨一下重建RAC环境下的全局Inventory的方法。
比如10g RAC引入了CRS,因此我们在重建Inventory的时候,至少需要修复两个ORACLE_HOME,一个是RDBMS的,一个是CRS的。命令如下:
./runInstaller -silent -ignoreSysPrereqs -attachHome ORACLE_HOME="<10g Ora_Crs_Home Path>" ORACLE_HOME_NAME="" LOCAL_NODE='node1' CLUSTER_NODES=node1,node2 CRS=true
./runInstaller -silent -ignoreSysPrereqs -attachHome ORACLE_HOME="<10g Oracle_Home Path>" ORACLE_HOME_NAME="" LOCAL_NODE='node1' CLUSTER_NODES=node1,node2
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/35489/viewspace-1457303/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/35489/viewspace-1457303/