首批通过分布式安全可靠测评,为关键业务系统打造
OBServer 启动失败,错误代码 4009
更新时间:2026-05-06 09:11
介绍 observer 进程启动失败报 4009 错误时,如何进行问题排查并解决问题。
适用版本
OceanBase 数据库所有版本
问题描述
observer 进程启动失败,错误信息如下。
[2019-05-20 11:30:24.262048] WARN [CLOG] init (ob_file_appender.cpp:97) [63894][Y0-0000000000000000] [lt=8] io setup fail(errmsg="Resource temporarily unavailable")
可能原因
根据错误提示,io setup fail 常见于在部署过其他数据库的物理设备上部署 OceanBase 数据库,主要原因是 fs.aio-max-nr 参数配置过小,导致实际的 event 超出了可用 event 限制的最大值。
说明
通常启动一个 OBServer 的情况下,aio-nr 使用率为 25000 左右。如果在一台物理机器上启动多个进程或者有其他的程序占用 aio-nr 过多,则会导致该问题。
可以通过以下命令查看当前 aio-max-nr 的配置。
[root@hostname /]# cat /proc/sys/fs/aio-nr
[root@hostname /]# cat /proc/sys/fs/aio-max-nr
解决方法
可以通过调整 aio-max-nr 参数来解决该问题。
执行以下命令调整
aio-max-nr参数,推荐调整到 128K 或者更大。[root@hostname /]# echo fs.aio-max-nr = 131072 >> /etc/sysctl.conf执行
sysctl -p使配置生效。[root@hostname /]# sysctl -p