因为.patch_storage目录丢失,导致opatch打补丁失败

Posted missyou_shiyh

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了因为.patch_storage目录丢失,导致opatch打补丁失败相关的知识,希望对你有一定的参考价值。

一套新装的ORACLE Restart环境(11.2.0.3.0),计划最新的PSU,在使用opath auto方式安装补丁时报错,表面上的错误信息提示opatch工具不满足版本要求:

[[email protected] ~]# opatch auto /u01/20996944 -ocmrf /u01/file.rsp

Executing /u01/app/11.2.0.4/grid/perl/bin/perl /u01/app/11.2.0.4/grid/OPatch/crs/patch11203.pl -patchdir /u01 -patchn 20996944 -ocmrf /u01/file.rsp -paramfile /u01/app/11.2.0.4/grid/crs/install/crsconfig_params

 

This is the main log file: /u01/app/11.2.0.4/grid/cfgtoollogs/opatchauto2017-04-08_04-45-04.log

 

This file will show your detected configuration and all the steps that opatchauto attempted to do on your system:

/u01/app/11.2.0.4/grid/cfgtoollogs/opatchauto2017-04-08_04-45-04.report.log

 

2017-04-08 04:45:04: Starting Oracle Restart Patch Setup

Using configuration parameter file: /u01/app/11.2.0.4/grid/crs/install/crsconfig_params

The opatch minimum version check for patch /u01/20996944/17592127 failed for /u01/app/11.2.0.4/grid

The opatch minimum version check for patch /u01/20996944/20760997 failed for /u01/app/11.2.0.4/grid

Opatch version check failed for oracle home /u01/app/11.2.0.4/grid

Opatch version check failed

ERROR: update the opatch version for the failed homes and retry

 

opatch auto failed.

 

要求opatch工具的版本,发现已经是最新版本了,说明这个错误与opatch工具的版本无关。

[[email protected] ~]# opatch version

OPatch Version: 11.2.0.3.15

 

OPatch succeeded.

[[email protected] ~]#

 

在使用opatch auto打补丁时,生成了两个日志文件,查看opatchauto2017-04-08_04-45-04.log文件的内容,发现如下信息:

OPatch failed to lock and get an Inventory Session for the given Oracle Home /u01/app/11.2.0.4/grid

Possible causes are:

No read or write permission to $ORACLE_HOME, cannot create $ORACLE_HOME/.patch_storage

No read or write permission to $ORACLE_HOME/.patch_storage

OPatch cannot proceed further because system will not be able to backup files, or read the backup area for rollback/restore.

OPatchSession cannot load inventory for the given Oracle Home /u01/app/11.2.0.4/grid. 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

 

UtilSession failed: IPMRWServices::verifyPatchStorageDirectory() cannot read or write to /u01/app/11.2.0.4/grid/.patch_storage

 

OPatch failed with error code 73

从以上日志,基本知道opatch报错原因了。

 

去$ORACLE_HOME 和$GRID_HOME下查看.patch_storage目录的权限,发现$GRID_HOME下基本就不存在.patch_storage目录,解决办法很简单,手动创建这个目录即可:

[[email protected] grid]# mkdir .patch_storage

[[email protected] grid]# chown grid:oinstall .patch_storage/

[[email protected] grid]# su - oracle

[[email protected] ~]$ cd $ORACLE_HOME

[[email protected] db_home1]$ mkdir .patch_storage

mkdir: cannot create directory `.patch_storage‘: File exists

[[email protected] db_home1]$

 

再次安装补丁,一切OK:

[[email protected] u01]# opatch auto /u01/20996944 -ocmrf /u01/file.rsp

Executing /u01/app/11.2.0.4/grid/perl/bin/perl /u01/app/11.2.0.4/grid/OPatch/crs/patch11203.pl -patchdir /u01 -patchn 20996944 -ocmrf /u01/file.rsp -paramfile /u01/app/11.2.0.4/grid/crs/install/crsconfig_params

 

This is the main log file: /u01/app/11.2.0.4/grid/cfgtoollogs/opatchauto2017-04-08_04-49-46.log

 

This file will show your detected configuration and all the steps that opatchauto attempted to do on your system:

/u01/app/11.2.0.4/grid/cfgtoollogs/opatchauto2017-04-08_04-49-46.report.log

 

2017-04-08 04:49:46: Starting Oracle Restart Patch Setup

Using configuration parameter file: /u01/app/11.2.0.4/grid/crs/install/crsconfig_params

 

Stopping RAC /u01/app/oracle/product/11.2.0.4/db_home1 ...

Stopped RAC /u01/app/oracle/product/11.2.0.4/db_home1 successfully

 

patch /u01/20996944/17592127/custom/server/17592127 apply successful for home /u01/app/oracle/product/11.2.0.4/db_home1

patch /u01/20996944/20760997 apply successful for home /u01/app/oracle/product/11.2.0.4/db_home1

 

Stopping CRS...

Stopped CRS successfully

 

patch /u01/20996944/17592127 apply successful for home /u01/app/11.2.0.4/grid

patch /u01/20996944/20760997 apply failed for home /u01/app/11.2.0.4/grid

 

Starting CRS...

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

 

Starting RAC /u01/app/oracle/product/11.2.0.4/db_home1 ...

Started RAC /u01/app/oracle/product/11.2.0.4/db_home1 successfully

 

opatch auto succeeded.

[[email protected] u01]#

处理故障,有时还是不能被表面现象迷惑。

以上是关于因为.patch_storage目录丢失,导致opatch打补丁失败的主要内容,如果未能解决你的问题,请参考以下文章

Boot目录下内容丢失导致系统无法启动

Spring Boot+AngularJS中因为跨域导致Session丢失

电脑win10 64位系统的 开机显示丢失libeay32.dll

丢失/root目录导致命令行-bash-4.1#,解决方法

开机显示“无法启动此程序,因为计算机中丢失”是啥意思?

Ceph手动修复mon 集群