日期:2014-05-16  浏览次数:20440 次

Oracle打PSU时可能会遇到数据库是tar过来的, 非正常安装的
重建Inventory(升级时遇到tar的oracle)
什么是Inventory?
        是oracle OUI用来管理Oracle安装目录的。
        Inventory里注册了某个ORACLE_HOME下安装的数据库的组件及版本。
        Oracle数据库软件的升级,增删组件,都需要用到Inventory。

全局Inventory。在oraInst.loc文件中被指定(/etc/oraInst.loc    或者/var/opt/oracle/oraInst.loc)
其中有两条内容:inventory_loc=/s01/oraInventory(全局Inventory所在目录)
                           inst_group=oinstall 安装oracle的组的名称
                       inst_group参数十分重要,它会在link Oracle映像的时候被用到,
                       如果找个参数设置错了,那么link出来的Oracle映像就无法被正常使用
在全局 Inventory目录/ContentsXML/inventory.xml文件中定义了所有Oracle Home的情况

去客户现场打补丁:
]$cd $OACLE_HOME/OPatch
]$./opatch lsInventory
   
正常显示的最后一句OPatch succeeded.
如果出现OPatch cannot find a valid oraInst.loc…………等字样
               OPatch failed with error code 104
               则需询问客户,是否数据库是tar过来的
这说明全局Inventory文件不存在
在ORACLE_HOME下,也有一个本地Inventory,可以通过本地Inventory来重建
一、 编辑一个oraInst.loc文件(放到/etc下)
        inventory_loc=/s01/oraInventory
        inst_group=oinstall
二、目录转向ORACLE HOME下的oui/bin目录
        ]$cd $ORACLE_HOME/oui/bin
三、重建全局Inventory
        ]$./runInstaller -slient -ignoreSysprereqs -attachHome ORACLE_HOME="/s01/oracle/product/10.2.0/db_1" ORACLE_HOME_NAME="orcl"