当前位置: DBARoad > 技术专题 > 文章正文

如何重建oraInventory目录

                    作者 :OoNiceDream【转载时请务必以超链接形式标明文章原始出处和作者信息】
                    链接:http://www.dbaroad.me/archives/2009/10/reinstall_orainventory.html

oraInventory存放的是Oracle软件安装的目录信息,Oralce的安装升级都需要用到这个目录,来看看Oracle文档中对这个目录的一点说明:

All Oracle software installations rely on this directory. 
Ensure that you back it up regularly. 
Do not delete this directory unless you have completely removed 
all Oracle software from the system.


oraInventory目录的位置是由oraInst.loc文件决定的:

/etc/oraInst.loc (AIX and Linux Platform)
/var/opt/oracle/OraInst.loc (Solaris and HP-UX platform)
 
$cat /etc/oraInst.loc 
inventory_loc=/app/oracle/oraInventory
inst_group=dba

删除或丢失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.
 
OPatch failed with error code 73
$opatch lsinventory
Invoking OPatch 10.2.0.4.3
 
List of Homes on this system:
 
Inventory load failed... OPatch cannot load inventory for the given Oracle Home.
Possible causes are:
   Oracle Home dir. path does not exist in Central Inventory
   Oracle Home is a symbolic link
   Oracle Home inventory is corrupted
LsInventorySession failed: OracleHomeInventory gets null oracleHomeInfo
 
OPatch failed with error code 73

9I中报错:

OPATCH_JAVA_ERROR  : An exception of type "OPatchException" has occurred: 
OPatch Exception:
  Can not lock OUI inventory (READ/WRITE Level)
  An exception occurs
  The inventory pointed at location /app/oraInventory is not valid
 
There is no Interim Patch
 
Can not get a list of inventory on this home.
LsInventory: OPatch Exception while accessing O2O
 
OPATCH_JAVA_ERROR  : An exception of type "OPatchException" has occurred: 
OPatch Exception:
  OUI found no such ORACLE_HOME set in the environment
  Can not get details for given Oracle Home
  An exception occurs
  null
 
There is no Interim Patch
 
Can not get a list of inventory on this home.
 
ERROR: OPatch failed because of Inventory problem.

在10G中可以运行以下命令进行oraInventory目录重建:

$cd $ORACLE_HOME/oui/bin
$./runInstaller -silent -attachHome \
> ORACLE_HOME=$ORACLE_HOME \
> ORACLE_HOME_NAME="ORACLE_HOME"
Starting Oracle Universal Installer...
 
No pre-requisite checks found in oraparam.ini, 
no system pre-requisite checks will be executed.
The inventory pointer is located at /etc/oraInst.loc
The inventory is located at /app/oracle/oraInventory
'AttachHome' was successful.
js_znjh_1./app/oracle/product/10.2.0/db_1/oui/bin$

10.2.0.2以上的版本,还可以直接运行attachHome.sh脚本:

$cd $ORACLE_HOME/oui/bin    
$./attachHome.sh
Starting Oracle Universal Installer...
 
No pre-requisite checks found in oraparam.ini, 
no system pre-requisite checks will be executed.
The inventory pointer is located at /etc/oraInst.loc
The inventory is located at /app/oracle/oraInventory
'AttachHome' was successful.

9I中要重建oraInventory估计比较麻烦,还没有找到方便、快捷的方法,可以参考Note 559299.1 :”Cloning An Existing Oracle9i Release 2 (9.2.0.x) RDBMS Installation Using OUI”,不过也挺麻烦,快赶上重装oralce了。

— The End –

关键字:
喜欢DBARoad的文章,那就通过 RSS Feed 功能订阅阅读吧!

我要评论

*

* 绝不会泄露


  • 订阅


      抓虾
      google reader
      my yahoo
      bloglines
      鲜果
      有道

站内搜索



返回首页 | 关于我 | 联系我 | 广告合作 | 网站地图 | 友情链接 | 版权声明 |