首批通过分布式安全可靠测评,为关键业务系统打造
问题排查手册
更新时间:2026-06-07 14:04:59
排查流程
在进行问题排查之前,请先确认使用的 OceanBase 数据库、ODP 与当前 obbinlog 组件适配。obbinlog 的版本适配情况见 版本发布记录。
常见问题的排查思路如下图所示:

如上述流程未能找到异常信息,或本文档的 常见问题 无法解决您遇到的问题,请在确认 问答社区 中无相似问题后,在社区内发帖求助。提问时请务必提供以下内容,以方便支持人员快速定位问题:
OceanBase 数据库、ODP 和 obbinlog 组件的版本号。
您在自主排查时获得的相关状态信息。
包含异常的原始日志文件。
常见问题
执行 CREATE BINLOG 命令时,返回报错 Node resources are insufficient。
请查看 log/logproxy.log 确认 Binlog 集群获取的资源使用情况,以如下返回为例:
[error] selection_strategy.cpp(519): [ResourcesFilter] The resource threshold of node [89842bbc393b3d1afea947f3267895d(10.10.10.1:2983)] does not meet requirements, used cpu: 6.7903543 >= 0.8 || used memory: 0.6238438 >= 0.85 || used disk: 0.12204241 >= 0.7000000000000001
上述条件中 CPU 检查条件 used cpu: 6.7903543 >= 0.8 为 true,即系统检查认为 CPU 使用率超过了阈值 0.8,因此创建 Binlog 任务失败。
特别的,上述举例中,Binlog Server 的部署环境为容器环境,获取的 CPU 信息不准确,因此得到的 CPU 使用率较真实值偏高。
如果您遇到类似的情况,可以根据需要修改元数据表 config_template 中的阈值大小,或者直接将资源使用率检查的开关关闭。关于元数据表的详情情参考 元数据信息。
-- 例:更新 CPU 使用率阈值为 0.9
UPDATE config_template SET value='90' WHERE key_name='node_cpu_limit_threshold_percent';
-- 例:关闭资源检查
UPDATE config_template SET value='false' WHERE key_name='enable_resource_check';
修改过后,需要重启 Binlog Server,之后再重新执行 CREATE BINLOG 命令。
# 非 supervisord 重启
./run.sh stop
./run.sh start
# supervisord 重启
supervisorctl restart binlog
Binlog 实例不产生新的 Binlog 日志,libobcdc 日志报错 start lsn from all server fail。
这种情况一般是数据字典被回收了,可以酌情调低数据字典的生成周期,此处以设置为 1 小时为例。
调整当前租户(非系统租户):
ALTER SYSTEM SET dump_data_dictionary_to_log_interval = '1h';
或者调整所有租户(连接到系统租户):
ALTER SYSTEM SET dump_data_dictionary_to_log_interval = '1h' TENANT all_user;
恢复或重启 Binlog 实例后,Binlog 实例日志报错 Failed to match gtid ...。
这种情况一般是 Binlog 日志文件与 Binlog 索引文件不一致。Binlog 服务的 Binlog 日志文件和索引文件均保存在 run/${instance_name}/data/ 目录,其中 Binlog 索引文件 mysql-bin.index 保存了所有 Binlog 日志文件的偏移量信息。
/home/ds/oblogproxy/run/ob4g1x9cpve0qo/data/mysql-bin.001352 1352 {hash:11302655175424709514, inc:938515546, addr:"10.10.10.10:2882", t:1690537006395697}=68058433 {hash:11268779827260349032, inc:938515541, addr:"10.10.10.10:2882", t:1690537006386235}=68058432 1690537005389969 414233659
如上的一行索引记录,表示 Binlog 日志文件 mysql-bin.001352 的最大偏移量为 414233659 (倒数第一列),对应的时间戳为 1690537005389969(倒数第二列)。
为了矫正 Binlog 日志文件与 Binlog 索引文件,请进入 run/${instance_name}/data/ 目录后进行以下操作:
确认目录内是否有 mysql-bin.index.tmp 文件,如果有,且 mysql-bin.index.tmp 最新一行记录比 mysql-bin.index 更新,请使用 mysql-bin.index.tmp 覆盖 mysql-bin.index。注意操作前请先备份原有的 mysql-bin.index。
根据 mysql-bin.index 最新一行数据拿到最新的 Binlog 文件和偏移量。
使用 split 命令对最新的 Binlog 文件进行裁剪。注意操作前请先备份。
cp mysql-bin.001352 mysql-bin.001352-bak split -b 414233659 mysql-bin.001352 # 默认生成的文件名是 xaa, xab mv xaa mysql-bin.001352再次尝试重启或恢复。