故障描述

15:46操作系统日志出现net4、net5网卡down,15:53分钟的网络恢复。网络中断是由于db汇聚交换机出现了问题。
image.png

网络恢复后,节点1的监听和vip无法启动。
image.png

故障分析

查看grid alert日志可以看到监听资源确实没有正常启动。
image.png
由于监听资源是crs的Oragent_grid负责,查看日志报ora.ons stop后,监听状态异常。Ons跟listener没有依赖关系,他们都依赖ora.net1.work资源。
image.png

以下是listener、vip和ons的依赖关系,都是跟ora.net1.work相关。
image.png
image.png
image.png
image.png

手工尝试启动vip,发现报ora.net1.network无法启动。
image.png
image.png
实际上集群显示ora.net1.network是正常的,这里就陷入了矛盾之中。
image.png

排查下是不是由于子网掩码不一致导致的ora.net1.network的问题。
image.png

ffffff00就是255.255.255.0,跟ocrdump中的subnet保持一致。

既然是报ora.net1.network不正常,我们就来看下orarootagent_root的日志。

image.pngimage.png

日志报错本地的ioctl os error 6失败后,检查ipmp0无效。
OS error code 6: No such device or address

What is ioctl?
  ioctl()函数是设备驱动程序中对设备的I/O通道进行管理的函数。所谓对I/O通道进行管理,就是对设备的一些特性进行控制。
  ioctl函数是文件结构中的一个属性分量,就是说如果你的驱动程序提供了对ioctl的支持,用户就可以在用户程序中使用ioctl函数来控制设备的I/O通道。。

根据官方文档Intermittently VIP Failback does not work after the Network Connection is Restored 文档 ID 1992370.1中描述,Network中断并且后面恢复了, 调用ioctl fails导致vip自动恢复失败。由于监听启动是依赖vip,所以listener也无法启动,跟故障相匹配。
image.png

不过bug 19126172在数据库已经修复。

另外一篇官方文档:Solaris: VIP or HAIP can fail if ioctl() reports issues on a different non-related network interface 文档 ID 2106693.1中描述,如果在不同的网络接口上找到 ioctl(),则检查操作可能会失败,跟此次故障100%匹配。
image.png

解决方案

1、 需要安装需要安装GRID INFRASTRUCTURE PATCH SET UPDATE 11.2.0.4.220419 完全修复。
image.png

2、 临时解决办法:重启两个节点的集群,再手工启动相关资源。

本文由mdnice多平台发布


老许的数据库
1 声望0 粉丝

云和恩墨资深Oracledba,有12年左右的金融、保险、政府、地税、运营商等业务关键型系统的运维经验,曾担任公司异常恢复东区接口人,负责紧急异常恢复工作,目前负责pg、openGauss/MogDB运维、国产化 MogDB 数据库...