在给某银行进行巡检时发现asm中的alert一直报ORA-27090错误。
通过巡检脚本,整理错误发生时间如下:
信息收集:
发生类似的错误,先收集alert日志的信息,操心系统的message日志。
Errors in file /u01/app/grid/diag/asm/+asm/+ASM1/trace/+ASM1_ora_18823.trc:
ORA-27090: Unable to reserve kernel resources for asynchronous disk I/O
Linux-x86_64 Error: 2: No such file or directory
Additional information: 3
Additional information: 128
Additional information: 202049510
Errors in file /u01/app/grid/diag/asm/+asm/+ASM1/trace/+ASM1_ora_18823.trc:
ORA-27090: Unable to reserve kernel resources for asynchronous disk I/O
Linux-x86_64 Error: 11: Resource temporarily unavailable
Additional information: 3
Additional information: 128
Sat Nov 12 08:42:43 2022
Errors in file /u01/app/grid/diag/asm/+asm/+ASM1/trace/+ASM1_ora_18852.trc:
ORA-27090: Unable to reserve kernel resources for asynchronous disk I/O
Linux-x86_64 Error: 11: Resource temporarily unavailable
Additional information: 3
Additional information: 128
Sat Nov 12 08:42:43 2022
Errors in file /u01/app/grid/diag/asm/+asm/+ASM1/trace/+ASM1_ora_20724.trc:
ORA-27090: Unable to reserve kernel resources for asynchronous disk I/O
错误信息在持续一段时间内asmchronous disk I/0错误,初步分析跟aio有关系。
接下来要做的事情:
- 去MOS上查看ORA-27090和aio相关的错误
- 查看操作系统aio相关参数和数据库aio参数
问题分析:
通过查看MOS上Doc ID 2229798.1文档得出结论:ORA-27090错误是“aio-max-nr”内核限制太低导致。“aio-max-nr”内核限制应根据链接中提供的Oracle建议进行调整:
Validated Configuration Details
根据Oracle数据库快速安装指南中显示的aio-max-nr相关信息,建议的最小值是1048576。 我们建议将aio-max-nr设置为3145728,以防发生ORA-27090。 并且aio-max-nr参数的最大值可以通过下式计算
aio-max-nr =no of process per DB * no of databases * 4096
按照这个公式计算出参数值后,应该持续监视/proc/sys/fs/aio-nr值,并监视I/O负载。
注意:
- 每个数据库的进程数不是后台服务器进程数,而是后台服务器进程数+用户进程数。
- 参数aio-max-nr是对aio-nr的限制,如果设置过高,不会报告任何影响。但是我们仍然应该监视/proc/sys/fs/aio-nr值并调整这个值。
查看当前系统配置参数信息:
由图片可以看出当前系统的fs.aio-max-nr的值为1048576并不满足Doc ID 2229798.1文档的要求。
问题处理:
1.修改sysctl.conf文件中的fs.aio-max-nr参数
[root@test1 sysctl.d]# vi /etc/sysctl.conf
2.激活配置信息(数据库不需要重启操作系统激活后即时生效)
[root@test1 sysctl.d]# sysctl --system
处理效果:
在处理后的几天重新查看ASM的告警日志未发现ORA-27090的报错。
相关bug信息:
Bug 13554729 : CORRECT FS.AIO-MAX-NR = 3145728
Bug 7582159 : ORA-27090 CAN BE REPORTED BUT IS MISSING FROM MESSAGES FILE
其他参考资料:
NOTE:1587357.1-Unix AIX、HP-UX、Linux、Solaris和MS Windows操作系统上的Oracle数据库(RDBMS)安装和配置要求快速参考(12.1/12.2/18c/19c)
针对客户当前操作系统环境选择最佳的系统配置可以规避风险。