No read or write permission to ORACLE_HOME/.patch_storage

ipadtest$ls  
8430622  gc_x86_64_10205_part1of2.zip  Linux_x86_64_Grid_Control_full_102030_disk1.zip  p8430622_10203_GENERIC.zip
Disk1    gc_x86_64_10205_part2of2.zip  Linux_x86_64_Grid_Control_full_102030_disk2.zip


ipadtest$cd 8430622/
ipadtest$
ipadtest$opa
opannotate  oparchive   opatch     
ipadtest$opatch apply
Invoking OPatch 10.2.0.4.2

Oracle Interim Patch Installer version 10.2.0.4.2
Copyright (c) 2007, Oracle Corporation.  All rights reserved.


Oracle Home       : /u01/product/oracle
Central Inventory : /u01/product/oraInventory_grid
   from           : /etc/oraInst.loc
OPatch version    : 10.2.0.4.2
OUI version       : 10.2.0.4.0
OUI location      : /u01/product/oracle/oui
Log file location : /u01/product/oracle/cfgtoollogs/opatch/opatch2011-08-02_16-45-34PM.log

ApplySession applying interim patch '8430622' to OH '/u01/product/oracle'
List of Homes on this system:

  Home name= oms10g, Location= "/u01/product/OracleHomes/oms10g"
  Home name= agent10g, Location= "/u01/product/OracleHomes/agent10g"
OPatchSession cannot load inventory for the given Oracle Home /u01/product/oracle. Possible causes are:
   No read or write permission to ORACLE_HOME/.patch_storage
   Central Inventory is locked by another OUI instance
   No read permission to Central Inventory

   The lock file exists in ORACLE_HOME/.patch_storage
   The Oracle Home does not exist in Central Inventory

ApplySession failed: ApplySession failed to prepare the system. OracleHomeInventory gets null oracleHomeInfo
System intact, OPatch will not attempt to restore the system

OPatch failed with error code 73
ipadtest$

 

 

查看Oracle目录权限及ORACLE_HOME 设置 , 都正确。  执行  opatch   lsinventory  -detail  查看: 

ipadtest$opatch lsinventory -detail
Invoking OPatch 10.2.0.4.2

Oracle Interim Patch Installer version 10.2.0.4.2
Copyright (c) 2007, Oracle Corporation.  All rights reserved.


Oracle Home       : /u01/product/oracle
Central Inventory : /u01/product/oraInventory_grid
   from           : /etc/oraInst.loc
OPatch version    : 10.2.0.4.2
OUI version       : 10.2.0.4.0
OUI location      : /u01/product/oracle/oui
Log file location : /u01/product/oracle/cfgtoollogs/opatch/opatch2011-08-02_17-04-29PM.log

List of Homes on this system:

  Home name= oms10g, Location= "/u01/product/OracleHomes/oms10g"
  Home name= agent10g, Location= "/u01/product/OracleHomes/agent10g"
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
ipadtest$

 

 

 

此时,如果是windows系统, 我们需要安装metalink Doc ID 556834.1来重建oraInventory(Central Inventory)。

对于类unix系统,我们只需很简单的执行如下命令重建即可(注意替换你自己的ORACLE_HOME和ORACLE_HOME_NAME):

> ./runInstaller -silent -ignoreSysPrereqs -attachHome ORACLE_HOME="/export/home/oracle/products/10203" ORACLE_HOME_NAME="home1"
Starting Oracle Universal Installer...

No pre-requisite checks found in oraparam.ini, no system pre-requisite checks will be executed.

>>> Ignoring required pre-requisite failures. Continuing...

The inventory pointer is located at /var/opt/oracle/oraInst.loc
The inventory is located at /export/home/oracle/products/10203/oraInventory
'AttachHome' was successful.

   

 

 

 

其他信息:  转自  http://space.itpub.net/15415488/viewspace-626194   

    在以上两个错误解决之后(或者你根本就没遇到),opatch lsinventory 可以正确看到当前binary已经安装了哪些patch。

其实还有一种办法,前提是你从来只是安装patch,没有rollback过patch,那么你可以 cd $ORACLE_HOME/.patch_storage ,然后ls -altr查看所有的patch。

但是如果你rollback了一个patch,用这种办法还是会看到这个patch,所以,最好的办法还是通过opatch lsinventory来查看。

    下面以我在10203环境中打patch 7706062为例:

1.在metalink上下载patch p7706062_10203_SOLARIS64.zip

2.unzip p7706062_10203_SOLARIS64.zip

3.cd 7706062

4.$ORACLE_HOME/OPatch/opatch apply(注意,在停掉所有使用当前binary的数据库之后再进行)

此时,我们遇到问题:

Patch(es) 5605370 conflict with the patch currently being installed (7706062).

If you continue, patch(es) 5605370 will be rolled back and the new patch (7706062) will be installed.

If a merge of the new patch (7706062) and the conflicting patch(es) (5605370) is required, contact Oracle Support Services and request a Merged patch.

因为两个patch冲突,所以要么2选1,要么找oracle请求一个merged patch。(你自己选择。。。)

这里我强行安装patch 7706062会导致patch 5605370 rollback.

5.如果你后悔了,也可以rollback这个patch:

$ORACLE_HOME/OPatch/opatch rollback -id 7706062

并且记得重新安装前面被rollback的patch 5605370 。

 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/35489/viewspace-703852/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/35489/viewspace-703852/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值