资讯专栏INFORMATION COLUMN

疑难诊断之exadata乱斩劈

IT那活儿 / 3137人阅读
疑难诊断之exadata乱斩劈

亲爱滴老铁们,本萎大湿又来了,这次咱唠唠oracle一体机exadata。


在实施Exadata的GIRU时报Error: Could not find or load main class #,补丁升级失败。找不到或无法加载主类?忘了告诉伙伴儿们,本萎大湿其实是JAVA开发出身,看到此报错的第一反应是不是补丁目录搞错了,或者环境变量没设置?再三确认后,哥的姿势没问题啊,那到底是啥子原因导致始终不能出现期待的画面?


本套二分之一配exadata环境:


ORACLE一体机多个计算节点,多个存储节点

数据库版本:12.2.0.1


一、十万手速的查看日志,发现最开始做补丁冲突分析时就已经报Error: Could not find or load main class,显示在DB HOME做分析时就已失败:



二、顺藤摸瓜,是不是DB HOME补丁冲突了?接下来我们对GI HOME及DB HOME都做了补丁冲突分析,确认均正常。GI HOME补丁冲突分析截图:







DB HOME补丁冲突分析截图:



三、既然补丁都没冲突,尝试直接打看看,结果还是报错。



四、既然自动打不上该补丁,那咱参照ID 2246888.1尝试手动来打。


1)首先把实例停掉

su - oracle

sqlplus / as sysdba

alter system switch logfile;

alter system checkpoint;

shutdown immediate;


2)登录root用户运行脚本

su - root

/u01/app/12.2.0.1/grid/crs/install/rootcrs.sh -prepatch


3)GI HOME打补丁

su - grid

/u01/app/12.2.0.1/grid/OPatch/opatch apply -oh /u01/app/12.2.0.1/grid -local /u01/soft/opatch_20200610/30920127/30882603

/u01/app/12.2.0.1/grid/OPatch/opatch apply -oh /u01/app/12.2.0.1/grid -local /u01/soft/opatch_20200610/30920127/30869447

/u01/app/12.2.0.1/grid/OPatch/opatch apply -oh /u01/app/12.2.0.1/grid -local /u01/soft/opatch_20200610/30920127/26839277

/u01/app/12.2.0.1/grid/OPatch/opatch apply -oh /u01/app/12.2.0.1/grid -local /u01/soft/opatch_20200610/30920127/30886680

/u01/app/12.2.0.1/grid/OPatch/opatch apply -oh /u01/app/12.2.0.1/grid -local /u01/soft/opatch_20200610/30920127/30888810 


4)DB HOME打补丁

su - oracle

/u01/soft/opatch_20200610/30920127/30882603/custom/scripts/prepatch.sh -dbhome /u01/app/oracle/product/12.2.0.1/dbhome_1

/u01/app/oracle/product/12.2.0.1/dbhome_1/OPatch/opatch apply -oh /u01/app/oracle/product/12.2.0.1/dbhome_1 -local /u01/soft/opatch_20200610/30920127/30882603

/u01/app/oracle/product/12.2.0.1/dbhome_1/OPatch/opatch apply -oh /u01/app/oracle/product/12.2.0.1/dbhome_1 -local /u01/soft/opatch_20200610/30920127/30886680

/u01/soft/opatch_20200610/30920127/30882603/custom/scripts/postpatch.sh -dbhome /u01/app/oracle/product/12.2.0.1/dbhome_1 


5)运行post脚本

su - root

/u01/app/12.2.0.1/grid/rdbms/install/rootadd_rdbms.sh

/u01/app/12.2.0.1/grid/crs/install/rootcrs.sh -postpatch



通过以上手动方式打补丁,除碰到一个权限报错,补丁升级顺利完成。

权限报错截图:


通过报错日志我们发现/u01/app/oracle/product/12.2.0.1/dbhome_1/bin/extjobO文件chmod失败。MOS了一下,ID 2265726.1介绍该报错可忽略


但为了防止下次打补丁继续报错,我们将该文件权限修改成其他未报错节点文件一致的权限。


总结:

本次打GIRU由于需要在规定的时间内完成,在没找到报错最终原因的情况下,我们找到了另外一种方式完成了补丁升级,这不失为一个高效的workround。毕竟条条大路通罗马,何必单恋一枝花。后续继续分析Could not find or load main class报错,原因找到后再和各位看官们分享哈,咱们下回见。


文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/130232.html

相关文章

  • 医院远程会诊平台系统有哪些方式?

    摘要:远程会诊在患者不用远程奔波的情况下,为患者完成病历分析病情诊断,进一步确定治疗方案,是种方便经济可靠的就诊方式。综合而言,被国际医学界广泛认可远程会诊可划分为以下几种方式。随着我们生活水平的不断提高,自然就会对身体健康越来越重视,在生病时都迫切希望能立刻得到专家的诊治。可是受到地域、身体等诸多因素的影响,不能及时就诊。这时候,远程会诊成为人们的迫切需求。随着互联网的迅速发展,让远程会诊成为可...

    3119555200 评论0 收藏0
  • php疑难杂症代码收集(不断增长中)

    摘要:使用开发已经很久了,但是最近看过一些代码,却发现自己竟然不知道为什么运行结果会是那个样子,特收集记录之,代码运行结果大家请自行尝试,我会不断更新此文,弄明白为什么会是那个结果后,会更新原因,也希望看到的朋友能分享出来。 使用PHP开发已经很久了,但是最近看过一些代码,却发现自己竟然不知道为什么运行结果会是那个样子,特收集记录之,代码运行结果大家请自行尝试,我会不断更新此文,弄明白为什么...

    enda 评论0 收藏0
  • JVM诊断查看运行参数

    摘要:在系统运行过程中其他人也许动态调整了系统参数。如何实时查看正在运行的的参数呢解决方案可以采用来查看正在运行的的参数。从开始引入的一个诊断命令行工具,可以向运行中的发送诊断命令。 问题描述 为了分析和定位一个Java线上系统问题,我们需要查看JVM启动时的一些参数设置,例如:垃圾回收算法、堆大小等等。这些参数可能在启动脚本中明确指明,也可能采用默认值。在系统运行过程中其他人也许动...

    shengguo 评论0 收藏0
  • 爱上Java诊断利器Arthas

    摘要:是什么摘自的介绍大意为是阿里开源的一个诊断工具,可以帮助开发人员在不修改代码或重启服务器的情况下快速定位线上问题。听起来确实是我们的程序员的一大福利。参考资料使用手册 1. Arthas是什么? 摘自Arthas的Github介绍: Arthas is a Java Diagnostic tool open sourced by Alibaba. Arthas allows deve...

    Hancock_Xu 评论0 收藏0

发表评论

0条评论

IT那活儿

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<