Oracle打PSU时可能会遇到数据库是tar过来的, 非正常安装的问题
Oracle打PSU时可能会遇到数据库是tar过来的, 非正常安装的问题
什么是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过来。