首批通过分布式安全可靠测评,为关键业务系统打造
OBServer 服务启动失败时日志报错 log entry deserialize error, maybe corrupted (ret= -4034 的原因和解决方法
更新时间:2026-05-13 07:31
问题现象
OBServer 服务启动失败,同时日志报错 log entry deserialize error, maybe corrupted (ret=-4034。
问题原因
OBServer 启动失败原因为,file_id_=741514 clog 的日志文件损坏,导致启动相关任务无法完成。
关键日志信息。
[2024-01-09 16:59:19.642661] WARN [CLOG] get_next_entry_ (ob_raw_entry_iterator.h:470) [20173][1116] [Y0-0000000000000000] [L=24][dc=1] log entry deserialize error, maybe corrupted (ret=-4034, item_type=1, buf_cur_=0xfffadecc6871, buf_end_=0xfffadecd1463, pos=0, cur_offset_=52914289, file_id_=741514)
[2024-01-09 16:59:19.662424] ERROR [CLOG.CSR] do_scan_files(ob_log_scan_runnable.cpp:434) [20173][1116][Y0-0008800000000000] [It=10][dc=5]handle_process_coordinate_ failed(ret=-4070, scan_thread_index=3, curr_file_id=741514) BACKTRACE:0xd040367 0x8bc2d3b 0x329f3d7 0x329f973 0x75a30eb 0x75b0ebf 0x8b84667 0x38f47a3 0x38f703b 0xcdfad27 0xcdf811b 0xcdf6a0f...
问题的风险及影响
节点 OBServer 服务无法启动成功。
影响租户
影响 OceanBase 数据库中的 SYS 租户和 Oracle 租户以及 MySQL 租户。
适用版本
OceanBase 数据库 V2.x、V3.x 版本。
解决方法及规避方式
解决方法:
该问题对于集群为单副本、多副本情况下,解决办法不一样。
单副本集群:建议重建集群。或者允许数据丢失情况下,可尝试将所有的 ilog 文件移到其他目录,同时将 clog 文件 id741501 及之后的 clog 文件移走,然后重新启动 OBServer。如果仍未能启动成功,只能重建集群,单副本集群本身无容灾能力。
三副本及以上多副本集群:对该节点 OBServer 做上下线,重拉数据副本。
规避方式:
系统运维层面,保障 clog 文件保存完整,避免损坏情况出现。