Oracle 11.2.0.4 RAC 更新GI PSU (p24436338_112040_Linux-x86-64.zip)

更新PSU的方式有多种,比如opatch autoopatch apply

在这里,我们根据自述文件,采用opatch auto的方式更新PSU

1 RAC 更新PSU

1Opatch组件版本

$ unzip -d

$ /OPatch/opatch version

2、检查oracle用户和grid用户的产品目录。

检查安装前产品目录并保存,对比更新PSU后的产品目录,观察变化。

$ /OPatch/opatch lsinventory -detail -oh 
 
对于产品目录的检查分别在各个节点的oracle用户和grid用户下进行。在这里 ,只列举某一个节点oralce用户的检查结果的开始部分。


 
 
另外opatch prereq CheckConflictAgainstOHWithDetail进行冲突检查
 

 

 

3OCM响应文件

默认的情况是需要手动生成 ocm 响应文件。在 grid 用户的 $ORACLE_HOME/OPatch/ocm/bin

目录下有emocmrsp脚本。运行该脚本生成响应文件

对于这个ocm.rsp响应文件,有几个要点需要注意:

1.      使用opatch auto方式更新PSU,需要把ocm.rsp存放在oracle用户可以访问的目录下,如/tmp
    可以看到
ocm.rsp文件的属组是grid:oinstall。对于属组是oinstall的文件,oracle也应该正常访问才对,可以通过系统的ls命令验证。

下面会继续讲述自己遇到的这个“坑”,其实这是自己操作不规范造成的.

4、解压PSU

 

使用grid用户解压PSU文件

Unzip the patch as grid home owner.

$ unzip p24436338_112040_.zip

5、关闭em

 

Oracleem对于数据库管理很方便。但是在更新PSU前,需要检查em的状态并关闭服务

$ /bin/emctl stop dbconsole

6、应用PSU

下面是更新 PSU 的步骤,并继续讲述自己在上面提到的“坑”。

使用root用户执行opatch auto 操作。首先操作节点1 ,非常顺利,可以下图看到更新的操作步骤。

1.       1.log日志中观察,首先使用ocm.rsp文件设置参数,并做PSU补丁集的冲突检查

2.       2.检查通过后,停止RAC本节点实例

3.       3.本节点实例停止后,应用更新补丁2400611123054319

4.       4.停止CRS集群服务

5.       5.CRS停止后,应用更新补丁240061112305431922502505

6.       6.启动CRS集群服务

可以在log文件中看到opatch auto的详细过程。


接着,我们在使用同样的命令,在节点二执行


仔细查看,发现节点
1提到的步骤3,也就是节点二的实例应用更新补丁集失败。

通过log文件可以查看到失败原因的详细内容


提示响应文件
’ocmrf’ file 也就是ocm.rsp文件不存在。可以该文件明明是存在


这就是遇到问题,
oracle用户对这个ocm.rsp文件无访问权限造成的。

仔细思考,为什么节点1可以执行完成,节点2不���以呢。对比文件目录,两个节点gridoracle权限不对,节点1755,节点2700
.


针对这个问题,有两个解决方法:

1.      修改节点2grid用户权限为755 

2.      保存响应文件ocm.rsp到目录/tmp下,gridoracle都可以访问;或是其他具有访问权限的目录

在这里,我们修改/home/grid权限为755


再次执行
opatch auto命令,节点2应用更新PSU成功。

7opatch apply命令

Opatch apply -help 可以查看apply 参数的使用情况。

我们经常使用的命令  $ opatch apply  以及$opatch apply -local,它们之间的区别在于


$ opatch apply 
对于集群环境,会提示是否准备patch所有节点


$opatch apply -local
对于集群环境,则只会更新本节点

猜你喜欢

转载自www.linuxidc.com/Linux/2017-02/140645.htm
今日推荐