ORA-27090: 无法为异步磁盘 I/O 保留内核资源

1、expdp导出报错ORA-27090: 无法为异步磁盘 I/O 保留内核资源

[root@xxdb01 dump_dir]# more xxxx_T16_1902.log

;;;

Export: Release 11.2.0.4.0 - Production on 星期二 6月 30 08:25:17 2020



Copyright (c) 1982, 2011, Oracle and/or its affiliates.  All rights reserved.

;;;

连接到: Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production

With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,

Data Mining and Real Application Testing options

启动 "xxdb"."SYS_EXPORT_TABLE_04":  xxdb/********@xxdb tables=xxxx_T16_1902 dumpfile=xxxx_T16_1902_%U.dmp parallel=4 directory=dump_dir logfile=xxxx_xxx_xxx.log

正在使用 BLOCKS 方法进行估计...

处理对象类型 TABLE_EXPORT/TABLE/TABLE_DATA

使用 BLOCKS 方法的总估计: 116.6 GB

处理对象类型 TABLE_EXPORT/TABLE/TABLE

ORA-31693: 表数据对象 "xxdb"."xxxx_xxx_xxx" 无法加载/卸载并且被跳过, 错误如下:

ORA-27090: 无法为异步磁盘 I/O 保留内核资源

Linux-x86_64 Error: 11: Resource temporarily unavailable

Additional information: 3

Additional information: 128

Additional information: 1

已成功加载/卸载了主表 "xxdb"."SYS_EXPORT_TABLE_04"

******************************************************************************

xxdb.SYS_EXPORT_TABLE_04 的转储文件集为:

  /nas_share2/dump_dir/xxxx_xxx_xxx_01.dmp

  /nas_share2/dump_dir/xxxx_xxx_xxx_02.dmp

  /nas_share2/dump_dir/xxxx_xxx_xxx_03.dmp

作业 "xxdb"."SYS_EXPORT_TABLE_04" 已经完成, 但是有 1 个错误 (于 星期二 6月 30 08:55:04 2020 elapsed 0 00:29:43 完成)

2、ORA 27090报错搜MOS为异步IO参数设置过小导致

ORA 27090  Unable to Reserve Kernel Resources for Asynchronous Disk I O (Doc ID 579108.1)

CAUSE

The "aio-max-nr" kernel limit is too low.

SOLUTION

The "aio-max-nr" kernel limit should be adjusted according to Oracle recommendations which are available in this document:

Oracle Validated Configuration:

http://linux.oracle.com/pls/apex/f?p=102:2:2007385298933639::NO::P2_VC_ID:426


Also, this parameter should be set as follows:

-------------------------------------

fs.aio-max-nr= 3145728 ---安装配置文档推荐值,最小值1048576

-------------------------------------

#此参数限制并发未完成的异步请求数目,应该设置避免I/O子系统故障。

3、检查当前系统的异步IO请求最大数配置,以及当前异步IO请求数

#几个节点都达到aio-max-nr最大值

[root@xxdb06 ~]# cat /etc/sysctl.conf |grep fs.aio-max-nr
fs.aio-max-nr = 3145728  
[root@xxdb07 ~]# cat /etc/sysctl.conf |grep fs.aio-max-nr
fs.aio-max-nr = 3145728
[root@xxdb08 ~]# cat /etc/sysctl.conf |grep fs.aio-max-nr
fs.aio-max-nr = 3145728

#当前异步IO请求数

[root@xxdb01~]# cat /proc/sys/fs/aio-nr
2252160
[root@xxdb02 ~]# cat /proc/sys/fs/aio-nr
3145728
[root@xxdb03 ~]# cat /proc/sys/fs/aio-nr
2909759
[root@xxdb04 ~]# cat /proc/sys/fs/aio-nr
3145728
[root@xxdb05 ~]# cat /proc/sys/fs/aio-nr
3145728
[root@xxdb06 ~]# cat /proc/sys/fs/aio-nr
3145728
[root@xxdb07 ~]# cat /proc/sys/fs/aio-nr
3145728
[root@xxdb08 ~]# cat /proc/sys/fs/aio-nr
897683

4、怎么合理设置aio-max-nr值

What value should kernel parameter AIO-MAX-NR be set to ? (Doc ID 2229798.1)

The minimum value suggested as per http://docs.oracle.com/database/121/LTDQI/toc.htm#BABFIFCGfor aio-max-nr is 1048576 .
the DOCS provide the minimum required for a good install and basic usage.
This is how we calculate aio-max-nr parameter value -

#aio-max-nr计算公式=进程数*4096

aio-max-nr =no of process per DB * no of databases * 4096

After deriving the value using this formula , you should still monitor the /proc/sys/fs/aio-nr value and also monitor I/O loading.
Points to know -

1) Number  of processes per database  is not background server process number, it's the number of background server process + user process.
2) Parameter aio-max-nr is a limitation of aio-nr, no impact was reported if you set it too high. But we should still monitor /proc/sys/fs/aio-nr value and tune this value.

5、临时处理为调整tns串xxdb中的scanip为aio-nr未达到最大值得节点,最终需调整aio-max-nr值

fs.aio-max-nr=process*4096=2048*4096=‭8388608‬

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
processes                            integer     2048

vi sysctl.conf
fs.aio-max-nr=8388608‬

sysctl -p 内核参数生效

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值