ITPub博客

首页 > Linux操作系统 > Linux操作系统 > No read or write permission to ORACLE_HOME/.patch_storage

No read or write permission to ORACLE_HOME/.patch_storage

原创 Linux操作系统 作者:tolywang 时间:2011-08-02 16:47:48 0 删除 编辑

ipadtest<*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<*ipadtest*>$cd 8430622/
ipadtest<*ipadtest*>$
ipadtest<*ipadtest*>$opa
opannotate  oparchive   opatch     
ipadtest<*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<*ipadtest*>$

 

 

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

ipadtest<*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<*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/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
Oracle , MySQL, SAP IQ, SAP HANA, PostgreSQL, Tableau 技术讨论,希望在这里一起分享知识,讨论技术,畅谈人生 。

注册时间:2007-12-10

  • 博文量
    5595
  • 访问量
    13467059