首批通过分布式安全可靠测评,为关键业务系统打造
OBServer 启动失败,错误代码 4016
更新时间:2026-05-06 09:11
介绍 observer 进程启动失败且报 4016 错误时,如何进行问题排查并解决问题。
适用版本
OceanBase 数据库所有版本
问题现象
启动 observer 进程失败,该错误有两种场景,错误码均为 4016。
场景一:offset 为 0
ERROR [CLOG] load_file (ob_clog_file_writer.cpp:155) [6936][0][Y0-0000000000000000] [lt=13] [dc=0] The clog start pos is unexpected, (ret=-4016, file_id=1, offset=0, shm_buf_->file_flush_pos_={file_id:992, file_offset:65138367}, shm_buf_->file_write_pos_={file_id:992, file_offset:65138367}, shm_buf_->log_dir_="/home/admin/oceanbase/store/cluster_name/clog_shm") BACKTRACE:0x7306a4a 0x72b1f75 0x2dc1f26 0x2dba3bd 0x6285e14 0x60745fa 0x60aafd2 0x60ab141 0x60ab1c7 0x60642be 0x5c1031d 0x470bb57 0x40003f9 0x2b70f4883445 0x4061375
ERROR [SERVER] main (main.cpp:430) [6936][0][Y0-0000000000000000] [lt=3] [dc=0] observer start fail(ret=-4016) BACKTRACE:0x7306a4a 0x72b1f75 0x41170e 0x410474 0x4000b8e 0x2b70f4883445 0x4061375
场景二:offset 不为 0
ERROR [CLOG] load_file (ob_clog_file_writer.cpp:155) [6936][0][Y0-0000000000000000] [lt=13] [dc=0] The clog start pos is unexpected, (ret=-4016, file_id=992, offset=65138214, shm_buf_->file_flush_pos_={file_id:992, file_offset:65138367}, shm_buf_->file_write_pos_={file_id:992, file_offset:65138367}, shm_buf_->log_dir_="/home/admin/oceanbase/store/cluster_name/clog_shm") BACKTRACE:0x7306a4a 0x72b1f75 0x2dc1f26 0x2dba3bd 0x6285e14 0x60745fa 0x60aafd2 0x60ab141 0x60ab1c7 0x60642be 0x5c1031d 0x470bb57 0x40003f9 0x2b70f4883445 0x4061375
ERROR [SERVER] main (main.cpp:430) [6936][0][Y0-0000000000000000] [lt=3] [dc=0] observer start fail(ret=-4016) BACKTRACE:0x7306a4a 0x72b1f75 0x41170e 0x410474 0x4000b8e 0x2b70f4883445 0x4061375
问题原因
根据错误信息,有两种可能原因:
场景一: 报错内容如果是
file_id=1, offset=0,说明 clog 目录已经被清空,一般是人为操作导致,但 clog 同级目录中的 clog_shm、ilog_shm 这两个文件没有删除,导致报错无法启动 observer 进程;这种情况的解决方法是手动删除 clog_shm、ilog_shm 文件再重试拉起(确保 clog、ilog 目录都已清空)。场景二: 报错内容中 file_id、offset 都是大于 0 的值,且 file_id 与
shm_buf_->file_flush_pos_中的 file_id 相同,说明是异常宕机的场景,最后一个 clog 文件中末尾部分的数据不是一条完整的 clog entry,这种情况的处理方法与上一个场景相同,都是删除 clog_shm、ilog_shm 文件。
解决方式
删除 clog 与 ilog 对应的缓存文件 clog_shm 与 ilog_shm。
[root@hostname /]# rm -rf /home/admin/oceanbase/store/cluster_name/clog_shm [root@hostname /]# rm -rf /home/admin/oceanbase/store/cluster_name/ilog_shm(可选)如果需要清空该 OBServer 的所有数据,那么也可以同时将 clog、ilog 目录都删除。
[root@hostname /]# rm -rf /home/admin/oceanbase/store/cluster_name/clog [root@hostname /]# rm -rf /home/admin/oceanbase/store/cluster_name/ilog