syncer 增量同步mysql数据出错

为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。

  • 【TiDB 版本】:TiDB-v3.0.2
  • 【问题描述】:[2020/01/14 20:41:23] [info] binlogsyncer.go:776 rotate to (mybinlog.000057, 1044281595) [2020/01/14 20:47:29] [error] binlogsyncer.go:656 io.CopyN failed. err EOF, copied 5684, expected 8203: connection was bad
  1. 是同步到一半报错的吗?
  2. 上游 MySQL 有没有发生异常宕机之类的情况
  3. 可以使用 mysqlbinlog 工具解析一下上游 MySQL mybinlog.000057 文件,看是否正常

1、不是同步到一半,是主库有新增数据,但tidb未同步,即 增量数据完全没有同步;
2、上游mysql正常;
3、mybinlog.000057日志正常,show binlog events in ‘mybinlog.000057’ FROM 1044281595 limit 100;,截图如下;

完整的 syncer 日志文件上传一下,看下

syncer.log (9.2 KB)

可以检查一下下游 TiDB 是否发生过重启,看日志像是下游 TiDB 发生重启导致连接断开,syncer 目前对于 bad conection 的错误没有重试的机制,如果需要使用 syncer 可以考虑使用后台进程拉起,当退出时自动拉起

启动synce就是拉起的,后台运行,我看下tidb是否有重启过吧,但理论不太可能,tidb直连上去都是可以查的

可以写个脚本自动拉起,如果拉起失败,再手动介入解决