Oracle ORA-27090故障分析

背景

客户RAC 11.2.0.4环境在巡检时,发现大量ORA-27090日志报错,整体应用暂时没有表现出异常,但是错误一直刷日志,需要分析具体报错原因。
具体报错如下:

问题分析

官方解析

通过查找ora-27090官方说明,大意是不能预定系统的异步IO资源,看起来像是某个参数设置过小导致。MOS官方对此也有相应专属文章介绍此类ORA报错。

[oracle@dbrac1 ~]$ oerr ora 27090
27090, 00000, "Unable to reserve kernel resources for asynchronous disk I/O"
// *Cause:  The system call to reserve kernel resources for asynchronous I/O
//          has failed.
// *Action: Check errno

ORA-27090 - Unable to Reserve Kernel Resources for Asynchronous Disk I/O (Doc ID 579108.1)
上述文章中主要说明是fs.aio-max-nr= 3145728设置过小导致,推荐值3145728。但本系统已经设置为3145728,不可能是此参数引起,需要验证是否其他原因导致。

日志分析

节点2日志分析

通过报错信息,得知此ora-27090在RAC节点2报有异常,再次梳理节点2日志,查找初次报错的时间点,为11月3日早上2点0分7秒(在ckpt trc文件中,具体时间为2020-11-03 02:00:07.819),具体报错内容为保存控制文件快照时,找不到本地文件,报ora-27037,ora-27090。

节点2 ora-27037异常原因

需要注意,保存控制文件的名字为snapcf_c5crm1.f,这就比较奇怪,在节点2保存为什么是snapcf_c5crm1.f这个名字,按理应该和rman配置中一致,查看具体rman配置,snapcf_c5crm2.f

节点1日志分析

对于节点2报错信息,需要结合节点1日志一起分析,节点1日志,11月3日早上2点0分7秒(ora trc中报错时间 2020-11-03 02:00:07.795)左右也有类似报错信息,报错信息ora-00245,ora-27090,报错意思大概是备份控制文件控制信息失败。

节点1定时任务

节点1日志只所以会备份控制文件,是因为在凌晨2点有清理归档日志脚本运行,所以有触发备份控制文件操作。

清理日志脚本内也出现备份控制文件失败报错,ora-00245,ora-27090,再次验证节点2报错又清理归档日志脚本引起。

清理日志脚本输出日志,时间点为(2020-11-03 02:00:07.997)

问题时间列表

下面梳理下本次报错的时间线。

节点一 节点二
2020-11-03 02:00:00 清理日志脚本启动
2020-11-03 02:00:07.795 节点1日志出现备份控制文件失败信息ora-00245,ora-27090
2020-11-03 02:00:07.819 节点2日志出现备份控制文件失败信息ora-27037,ora-27090
2020-11-03 02:00:07.997 节点1清理归档日志脚本输出日志出现备份控制文件失败信息ora-00245,ora-27090
2020-11-03 02:00:11之后 节点2日志陆续出现ora-27090报错信息

总结

针对本此故障的处理,采用重启节点2实例的方式解决,之后MOS也有相关说明,可以把控制文件快照位置放在共享ASM磁盘组中,即可屏蔽此错误。但是目前还存在几个问题没有特别明白:
1、在节点1执行的备份控制文件操作,为何被发到节点2执行
2、在节点2执行也可,为何备份还是按照节点1设置的rman保留路径
3、为何此报错在节点2切换在线日志之后,5分钟后会重复提示
关于以上几个问题,还需查找相关MOS 资料。

posted on 2020-11-08 19:21  空白葛  阅读(2617)  评论(0编辑  收藏  举报

导航