故障描述
15:46操作系统日志出现net4、net5网卡down,15:53分钟的网络恢复。网络中断是由于db汇聚交换机出现了问题。
网络恢复后,节点1的监听和vip无法启动。
故障分析
查看grid alert日志可以看到监听资源确实没有正常启动。 由于监听资源是crs的Oragent_grid负责,查看日志报ora.ons stop后,监听状态异常。Ons跟listener没有依赖关系,他们都依赖ora.net1.work资源。
以下是listener、vip和ons的依赖关系,都是跟ora.net1.work相关。
手工尝试启动vip,发现报ora.net1.network无法启动。 实际上集群显示ora.net1.network是正常的,这里就陷入了矛盾之中。
排查下是不是由于子网掩码不一致导致的ora.net1.network的问题。
ffffff00就是255.255.255.0,跟ocrdump中的subnet保持一致。
既然是报ora.net1.network不正常,我们就来看下orarootagent_root的日志。
日志报错本地的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也无法启动,跟故障相匹配。
不过bug 19126172在数据库已经修复。
另外一篇官方文档:Solaris: VIP or HAIP can fail if ioctl() reports issues on a different non-related network interface 文档 ID 2106693.1中描述,如果在不同的网络接口上找到 ioctl(),则检查操作可能会失败,跟此次故障100%匹配。
解决方案
1、 需要安装需要安装GRID INFRASTRUCTURE PATCH SET UPDATE 11.2.0.4.220419 完全修复。
2、 临时解决办法:重启两个节点的集群,再手工启动相关资源。
本文由 mdnice 多平台发布