0 Comments

Inventory(2)

发布于:2012-12-04  |   作者:广州网站建设  |   已聚集:人围观

      不幸的是,我们看到了这样的信息:


  1. [oracle@ OPatch]$ ./opatch lsInventory  
  2. Invoking OPatch 10.2.0.4.2  
  3. Oracle Interim Patch Installer version 10.2.0.4.2  
  4. Copyright (c) 2007, Oracle Corporation.  All rights reserved.  
  5. Oracle Home       : /opt/oracle/product/10g  
  6. Central Inventory : n/a  
  7. from              :   
  8. OPatch version    : 10.2.0.4.2  
  9. OUI version       : 10.2.0.4.0  
  10. OUI location      : /opt/oracle/product/10g/oui  
  11. Log file location : n/a  
  12. OPatch cannot find a valid oraInst.loc file to locate Central Inventory.  
  13. OPatch failed with error code 104  

      和客户沟通了以后我们发现,这套系统不是安装的,而是开发商直接tar过来的。碰到这种情况该怎么办呢?在上面我们讲过,每个ORACLE HOME下面都有本地Inventory,在本地的Inventory中也已经注册了所有的Oracle组件的信息,那么我们就可以通过本地的Inventory来创建全局的Inventory。

重建全局Inventory的方法很简单,第一步我们首先要编辑一个oraInst.loc文件,使之指向我们要创建全局Inventory的目录。


  1. Inventory_loc=/opt/oracle/oraInventory  
  2. inst_group=oinstall 

 

     然后将目录转向ORACLE_HOME下的oui/bin目录:

  1. $ cd $ORACLE_HOME/oui/bin 

 

      在该目录下执行下面的脚本就可以完成全局Inventory的创建:

  1. %./runInstaller -silent -ignoreSysPrereqs -attachHome  ORACLE_HOME="<Oracle_Home_Location>" ORACLE_HOME_NAME="<Name_Of _Oracle_Home>" 

 

      下面是老白重新创建自己测试机上的Inventory的命令:

  1. oracle@ bin]$ ./runInstaller -silent -ignoreSysPrereqs  -attachHome ORACLE_HOME="/opt/oracle/product/10g" ORACLE_HOME_NAME="ora10g"   
  2. Starting Oracle Universal Installer...  
  3.  
  4. No pre-requisite checks found in oraparam.ini, no  system pre-requisite checks will be executed.  
  5.  
  6. >>> Ignoring required pre-requisite failures. Continuing...  
  7.  
  8. The Inventory pointer is located at /etc/oraInst.loc  
  9. The Inventory is located at /opt/oracle/oraInventory  
  10. 'AttachHome' was successful.  

     这个命令支持Oracle 10.2,对于Oracle 9i和10.1的版本,如果丢失了全局Inventory,那么就需要从一个类似的平台克隆一个Inventory过来。克隆的具体方法由于篇幅有限,在这里就不做过多的描述了,有兴趣的朋友可以参考Metalink上的下面几个文档:


  1. Note 559299.1 "Cloning An Existing Oracle9i  Release 2 (9.2.0.x) RDBMS Installation Using OUI"  
  2. Note 559301.1 "Cloning An Existing Oracle10g  Release 1 (10.1.0.x) RDBMS Installation Using OUI"  
  3. Note 559304.1 "Cloning An Existing Oracle10g Release 2 (10.2.0.x) RDBMS Installation Using OUI"  
  4. Note 559305.1 "Cloning An Existing Oracle11g  Release 1 (11.1.0.x) RDBMS Installation Using OUI"  

 

      针对11.2以后的数据库,这个命令有所区别:

  1. % ./runInstaller -silent -ignoreSysPrereqs  -attachHome ORACLE_HOME="<Oracle_Home_Location>" 

        我们不需要指定Oracle Home的名字了。

        刚才的例子是单节点的,在RAC环境下要稍微复杂一些。在本小节的最后一部分,我们来简单探讨一下重建RAC环境下的全局Inventory的方法。

10g RAC引入了CRS,因此我们在重建Inventory的时候,至少需要修复两个ORACLE_HOME,一个是RDBMS的,一个是CRS的。命令如下:


  1. ./runInstaller -silent -ignoreSysPrereqs -attachHome ORACLE_HOME="<10g Ora_Crs_Home Path>"  ORACLE_HOME_NAME="<Name of oracleCRSHome>"  LOCAL_NODE='node1' CLUSTER_NODES=node1,node2 CRS=true 
  2. ./runInstaller -silent -ignoreSysPrereqs -attachHome  ORACLE_HOME="<10g Oracle_Home Path>"  ORACLE_HOME_NAME="<Name of oracleHome>"  LOCAL_NODE='node1' CLUSTER_NODES=node1,node2  
标签:
飞机