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

Oracle RAC集群故障案例

原创 心有星汉 2024-09-07
200

以下案例来自于真实案例,关键信息已经做了脱敏。

1、现场环境如下

2台服务器光纤直连1台储存,做的Oracle RAC集群,数据库版本是11.2.0.3。储存是按冗余路劲的接法,配置了multipath。

2、客户反馈故障及故障处理过程

某日早上9:00客户反馈RAC集群的SCAN地址不能访问,9:05尝试远程登录RAC集群的节点1发现登录失败,再次尝试登录RAC集群的节点2,发现可以成功登录节点2.

检查进程发现数据库和集群软件进程已经停止,尝试手工启动集群软件发现启动失败。查看节点2ocssd.log发现8:54:50日志提示:

node 1,rac1,has a disk HB, but no network HB。说明这个时候RAC集群2个节点和磁盘的心跳正常,但是节点1和节点2之间的心跳网出现故障。

查看节点2的集群软件日志alertrac2.log,发现日志提示和节点1的心跳网络连接超时(默认30秒),This node was evicted by node 1, rac1;details at (:CSSNM00005:) in /u01/grid/11.2.0//grid/log/rac2/cssd/ocssd.log 。说明这个时候RAC集群2个节点间的心跳网络连接超时,RAC集群发生脑裂,节点1把节点2剔除出了RAC集群。电话联系

现场工程师去机房查看节点1服务器的故障情况,10:28发现由于内存故障节点1服务器处于挂机状态。现场工程师拔出内存并擦拭内存金手指后把内存插回内存插槽,然后

重启节点1服务器。10:50左右发现节点1和节点2的集群软件及数据库进程都恢复正常状态,10:55检查集群和数据库状态都正常后手动关闭节点1服务器计划进行硬件故障

维修。11:00左右检查节点2的集群软件和数据库状态都正常后告知用户数据库故障恢复。15:00左右节点1服务器的硬件故障维修结束并启动节点1服务器,节点1和节点2的

集群软件和数据库状态都恢复到正常状态。

3、复盘故障的根因

开始收集并下载2个节点的操作系统日志及集群软件日志分析这次故障的根因。从节点1操作系统日志上来看,在8:54:46左右em1-em4所有网络出现PCIe link lost,device

now detached的故障,所有网卡网络全部断开。从节点1集群日志alertrac1.log上来看,8:54:50发现与节点2心跳网络通讯出现异常,8:55:20把节点2 rac2从集群剔除,

节点2集群软件被关闭。

问题1:这里有一个问题就是节点1的网络出现问题,为何集群把节点2剔除了,集群为什么不剔除节点1?

答:我们当前数据库版本为11.2.0.3版本,根据ORACLE MOS文档1951726.1描述,在11.2版本上两个节点RAC在发生脑裂时,通常是小号节点生存下来,大号节点被剔除,从12.1

版本以后改为权重模式,因此节点1发生网络故障时,集群把节点2剔除,节点1存活下来。

问题2:为什么会断网?

答:断网是由于硬件问题造成,具体需要硬件系统工程师进行分析确认。

通过查看节点2的集群日志可以发现,在9:08:26的时候,节点2尝试启动集群,ora.cssd资源启动失败,从节点2的CSSD trace中,我们可以看到在每一次尝试启动ocssd的时候,

都会遇到 no network HB的报错,并且每一次重启CSSD,都会返回 RPC failed rc 3错误。从节点1的CSSD trace中我们可以看到,虽然节点1由于硬件问题处于挂机状态,但是CSSD

并没有挂掉,集群是存活状态。从节点1的操作系统日志也可以发现,在9:00-10:32之间,节点1主机系统以及CSSD都是存活状态,在节点1主机存活以及集群存活的情况下,节点2

集群启动需要与节点1进行通讯,但是由于通讯失败,导致节点2集群无法启动,属于预期行为。为了杜绝再次发生这种类似的极端情况,建议客户再搭建1套单机ADG。

最后修改时间:2024-09-18 09:53:41
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论