现在的位置: 首页 > 综合 > 正文

Oracle打PSU时可能会遇到数据库是tar过来的, 非正常安装的

2014年08月02日 ⁄ 综合 ⁄ 共 1290字 ⁄ 字号 评论关闭
重建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"      
         这个命令支持10.2
         11.2后,该命令不需要指定ORACLE_HOME_NAME了。
         对于9i和10.1版本,如果丢失了全局Inventory 那么需要从一个类似的平台克隆一个Inventory过来。
         参看metalink :"Cloning An Existing Oracle9i Release 2 (9.2.0.x) RDBMS Installation Using OUI"
                                                                 Oracle10G Release 1(10.1.0.X)

抱歉!评论已关闭.