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/