暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

实施Exadata的GIRU时报Error: Could not find or load main class #

IT那活儿 2020-07-15
1962

亲爱滴老铁们,本萎大湿又来了,这次咱唠唠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报错,原因找到后再和各位看官们分享哈,咱们下回见。


最后修改时间:2020-07-15 09:39:49
文章转载自IT那活儿,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论