OPatch升级,ERROR: This patch is not applicable to GI home.

今天升级Oracle Rac  一个11.2.0.4.0  到 11.2.0.4.1 

系统为:HP-UX 11.31 IA64

首先的语句为:

./opatch auto /oracle/software/11.2.0.4.1 -oh /oracle/app/oracle/product/11.2.0/dbhome_1,/oracle/app/grid -ocmrf ocm.rsp 

同时对ORACLE_HOME,GI_HOME同时升级

对ORACLE_HOME的升级,成功了。

但是对GI_HOME升级,却报了failed!

首先怀疑  补丁目录以及其所属文件的属主,属组 是否是 grid:oinstall  ,检查结果却是一切正常

很奇怪,再次单独对GI_HOME进行升级

./opatch auto /oracle/software/11.2.0.4.1 -oh /oracle/app/grid -ocmrf ocm.rsp

之后报错ERROR: This patch is not applicable to GI home.

从字面理解,我瞬间傻了,我之前对RHEL系统操作的时候,是可以的呀,难道对HP-UX有什么特别设置么?

而且11gR2的PSU(不再分ORACLE_HOME的PSU,以及GI的PSU)只有一个,对GI和ORACLE目录都适用


检索metalink。发现了一篇文档1580746.1

SYMPTOMS

Opatch failed with the following error:
The patch is not applicable for /opt/oracle/app/oracle/product/11.2.0/grid_2
patch /var/opt/data/patch/16619898 apply failed for home /opt/oracle/app/oracle/product/11.2.0/grid_2

 

The /opt/oracle/app/oracle/product/11.2.0/grid_2 is GI_HOME.


The same error can occur when a patch is getting applied to the RDBMS_HOME.  The error message will point to the RDBMS_HOME in that case.

 

CAUSE

The opatch log shows

[Aug 30, 2013 11:21:37 AM] OPatch was not able to create .patch_storage directory
  Unable to get Environent variables for Stand Alone home
[Aug 30, 2013 11:21:37 AM] Please delete .patch_storage directory ONLY IF NO PATCH IS APPLIED
  This is because OPatch was not able to delete this directory which
  was only created to run script for getting environment variables
  No manual deletion may result in OPatch wrongly detecting irregular inventory for future invocation.
 
 

The same opatch log also shows the following error after above error:

[Aug 30, 2013 11:21:37 AM]   /opt//oracle/app/oracle/product/11.2.0/grid_2/OPatch/jlib/etc/config path does not exist or is not a directory
[Aug 30, 2013 11:21:37 AM]   OUI-67075:Failed to load the patch object.  Possible causes are:
                              The specified path is not an interim Patch shiphome
                              Meta-data files are missing from the patch area
                              Patch location = /opt/oracle/app/oracle/product/11.2.0/grid_2/OPatch/jlib
                              Details = Input metadata files are missing.
[Aug 30, 2013 11:21:37 AM]   Stack Description: java.lang.RuntimeException: Patch Location "/opt//oracle/app/oracle/product/11.2.0/grid_2/OPatch/jlib" doesn‘t point to a valid patch area.

 

SOLUTION

Check GI_HOME/.patch_storage directory or ORACLE_HOME/.patch_storage directory.

1) if the patch is getting applied to RDBMS_HOME, make sure ORACLE_HOME/.patch_storage directory is readable, writable, and accessible by the user who is applying the patch

2) if the patch is getting applied to GRID_HOME, make sure GI_HOME/.patch_storage directory is owned by the owner of GI HOME


我查看两个目录的.patch_storage

发现权限都为drwx------ ,说明 除了属主以外,其他任何人都不能对这个目录进行操作。

而Opatch auto 却是使用root 账户来执行的,我抱着试试的想法

对目录的权限进行了修改(ORACLE_HOME,GI_HOME下的这个目录都修改了)

chmod -R 777 .patch_storage

之后再次执行./opatch auto /oracle/software/11.2.0.4.1 -oh /oracle/app/grid -ocmrf ocm.rsp

结果为:

Stopping CRS...
Stopped CRS successfully

patch /oracle/software/11.2.0.4.1/17478514  apply successful for home  /oracle/app/grid 

Starting CRS...
CRS-4123: Oracle High Availability Services has been started.

opatch auto succeeded.
# 

哈哈哈~~

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。