Oracle-opatchauto自动安装补丁失败导致RAC集群异常问题

前言:

        近期处理了一起由于opatchauto自动安装补丁失败导致的RAC集群异常问题,用户通过opatchauto进行RAC集群补丁升级,在升级的过程中出现报错失败并且集群也无法再重新启动。

       经过分析,确认集群异常的原因为opatchauto安装补丁失败引发执行文件权限产生错误,而opatchauto失败的原因是由于补丁包的权限问题所导致。

问题:

opatchauto进行RAC集群补丁升级,在升级的过程中出现报错失败并且集群也无法再重新启动

---集群启动异常
[root@rac2 Desktop]# /oracle/app/grid_home/bin/crsctl check crs
CRS-4639: Could not contact Oracle High Availability Services
[root@rac2 Desktop]# /oracle/app/grid_home/bin/crsctl start crs
CLSU-00105: operating system interface has reported an internal failure
CLSU-00103: error location: canexec2
CLSU-00104: additional error information: no exe permission, file [/oracle/app/grid_home/bin/ohasd]

问题原因:

  • 集群异常的原因为opatchauto安装补丁失败引发执行文件权限产生错误

  • opatchauto失败的原因是由于补丁包的权限问题所导致

问题分析:

查看报错为执行文件ohasd文件权限,问题节点的属主为grid,而正常的节点为root

[root@rac2 Desktop]# ls -l /oracle/app/grid_home/bin/ohasd
-rwxr----- 1 grid oinstall 11402 Jul 23  2018 /oracle/app/grid_home/bin/ohasd

对比其他节点的ohasd文件权限,可以发现

---正常节点权限
[root@rac1 Desktop]# ls -l /oracle/app/grid_home/bin/ohasd.bin 
-rwxr----- 1 root oinstall 185059583 Jan 15  2022 /oracle/app/grid_home/bin/ohasd.bin

查看opatchauto的补丁安装日志$ORACLE_HOME/cfgtoollogs/opatchauto

opatchauto自动打补丁已经安装完成rdbms的$ORACLE_HOME补丁,并执行完成rdbms的postpatch

再准备对crs的$ORACLE_HOME安装补丁时,发生了配置错误导致opatchauto安装失败

由于opatchauto的命令执行失败,只执行了1-4的步骤,没有执行5-8步骤,导致crs的执行文件权限产生错误,引发了补丁安装失败后,集群的启动异常

---12c opatchauto的大致步骤,
1 执行crs -prepatch,这一步会关闭数据库集群,unlink CRS软件的库文件并修改文件的权限
2 执行rdbms -prepatch unlink rdbms软件的库文件并修改文件的权限
3 RDBM软件的ORACLE_HOME 安装补丁
4 执行rdbms -postpatch link rdbms软件的库文件并修改文件的权限
5 crs软件的ORACLE_HOME 安装补丁
6 执行rootadd_rdbms.sh 修改rdbms软件的文件权限
7 执行crs -postpatch, link CRS软件的库文件并修改为正常的文件权限,启动数据库集群
8 datapatch -verbose数据库应用数据字典(只有最后一个节点执行opatchauto 会进行)

继续检查opatchauto失败的原因,可以发现在执行从补丁包里面拷贝/tmp/33583921/33678030/files/bin/ocrcheck.bin文件时产生错误,根据经验,这种情况通常为权限问题导致

检查补丁包的权限,权限为700,属主为ORACLE.OINSTALL,而这个权限对于grid用户来说是没有操作权限的,所以会导致文件拷贝失败

注意:即使opatchauto是用root用户执行,但实际在进行crs的软件补丁应用时,是使用grid用户权限的

对补丁包授予777的权限,再重新执行自动安装补丁命令

---该命令会从上次失败的步骤开始进行补丁安装,而不是从头安装补丁
opatchauto resume

问题修复,补丁顺利安装完成

RAC集群也恢复正常

[grid@rac2 ~]$ crsctl check crs 
CRS-4638: Oracle High Availability Services is online
CRS-4537: Cluster Ready Services is online
CRS-4529: Cluster Synchronization Services is online
CRS-4533: Event Manager is online

总结:

opatchauto进行RAC集群补丁升级,在升级的过程中出现报错失败并且集群也无法再重新启动,经过分析,确认集群异常的原因为opatchauto安装补丁失败引发执行文件权限产生错误,而opatchauto失败的原因是由于补丁包的权限问题所导致。

问题修复:

修改补丁安装包的权限为777,确保grid用户有权限访问,opatchauto顺利安装完成

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值