介绍 observer 进程启动失败并报 4009 错误时,如何进行问题排查并解决问题。
适用版本
OceanBase 数据库所有版本
问题现象
observer 进程启动失败,错误信息如下:
[timestamp] ERROR [STORAGE] open ( ob_local_file_system.cpp:117) [Y0-000000000000000000] [lt=3] allocate file error (store_path="/home/admin/oceanbase/store/sstable/block_file", fallocate_size=10737418240, errno=95, errmsg="Operation not supported", ret=-4009)
可能原因
根据错误信息 allocate file error ,推测问题是由于 observer 进程会通过 fallocate 申请本地磁盘上的数据文件,而 fallocate Linux API 需要文件系统的支持。如果采用不支持的文件系统将导致报错。
解决方式
修改磁盘挂载方式。
目前 OceanBase 数据库支持使用 ext4 与 xfs,对于高版本 Linux,可以使用 gfs。
[root@hostname /]# vi /etc/fstab修改服务器文件系统,修改 fstab 文件的示例如下:
/xxx /xxx/home ext4 defaults,noatime,nodiratime,barrier=0 0 0执行
mount -a命令,使配置生效。[root@hostname /]# sudo mount -a
重新启动 observer 进程。
[root@hostname /]# su admin && cd /home/admin/oceanbase/bin [admin@hostname bin]$ ./observer