每天mysqldumper 备份,syncer 同步数据会断开

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

  • 【TiDB 版本】:4.0.8
  • 【问题描述】: 每天mysqldumper 备份,syncer 同步数据会断开

若提问为性能优化、故障排查类问题,请下载脚本运行。终端输出的打印结果,请务必全选并复制粘贴上传。

请问断开有报告什么错误吗?

TiDB 无法维持长连接 麻烦看看防火墙是不是有设置?

防火墙是关闭的,下面是报错信息
[mysql] 2021/01/13 01:53:34 packets.go:141: write tcp 10.207.10.28:54202->10.207.66.251:3358: write: broken pipe
[mysql] 2021/01/13 01:57:17 packets.go:141: write tcp 10.207.10.28:54132->10.207.66.251:3358: write: broken pipe
[mysql] 2021/01/13 01:58:12 packets.go:141: write tcp 10.207.10.28:54188->10.207.66.251:3358: write: broken pipe
[mysql] 2021/01/13 01:59:56 packets.go:141: write tcp 10.207.10.28:54350->10.207.66.251:3358: write: broken pipe
[mysql] 2021/01/13 02:03:12 packets.go:36: read tcp 10.207.10.28:54360->10.207.66.251:3358: i/o timeout

下面内容是syncer 的日志
2021/01/13 02:03:12 db.go:154: [error] exec sqls[[REPLACE INTO o2o_comment.order_comment (id,order_id,store_id,org_code,org_name,store_name,city,delivery_carrier_no,buyer_phone,score3,score3_content,score3_content_show,img_list,tags,tags_key,score4,score4_content,score4_content_show,vender_tags,vender_tage_key,score3_content_status,score4_content_status,delivery_confirm_time,delivery_confirm_time2,delivery_dif_time,delivery_dif_time2,org_comment_content,org_comment_time,org_comment_status,compensate_goods,compensate_coupon,bad_carrier_audit_status,bad_carrier_audit_content,bad_carrier_responsible_body,is_update,appeal_review_status,app_version,create_pin,create_time,update_pin,update_time,sys_version,yn,ts) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?);]] commit failed driver: bad connection
2021/01/13 02:03:12 db.go:115: [error] [exec][sql][REPLACE INTO o2o_comment.order_comment (id,order_id,store_id,org_code,org_name,store_name,city,delivery_carrier_no,buyer_phone,score3,score3_content,score3_content_show,img_list,tags,tags_key,score4,score4_content,score4_content_show,vender_tags,vender_tage_key,score3_content_status,score4_content_status,delivery_confirm_time,delivery_confirm_time2,delivery_dif_time,delivery_dif_time2,org_comment_content,org_comment_time,org_comment_status,compensate_goods,compensate_coupon,bad_carrier_audit_status,bad_carrier_audit_content,bad_carrier_responsible_body,is_update,appeal_review_status,app_version,create_pin,create_time,update_pin,update_time,sys_version,yn,ts) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?);][args][[21109182 2100958967000062 11750141 322625 xxx xxx(xxx) xxxx 9966 xxxxxxxxxxx,2327 5 [“xxx”,“xxx”,“xxx”,“xxxxxx”,“xxxxx”,“xxxx”] [“10000”,“10002”,“10001”,“10004”,“10003”,“10005”] 5 [“xxx”,“xxxx”,“xxxxx”,“xxxxx”,“xxx”,“xxx”,“xxx”] [“10001520002”,“1000152000b”,“10001520001”,“10001520004”,“10001520003”,“10001520006”,“10001520005”] 0 0 2021-01-12 09:47:17 0 0 0 0 0 1 0 8.5.5 JD_b120626e0f39000 2021-01-13 02:01:37 JD_b120626e0f39000 2021-01-13 02:01:37 0 0 2021-01-13 02:01:37]][error]driver: bad connection
2021/01/13 02:03:12 syncer.go:515: [fatal] [error rows event] driver: bad connection
/home/jenkins/workspace/build_tidb_enterprise_tools_master/go/src/github.com/pingcap/tidb-enterprise-tools/syncer/db.go:155:
/home/jenkins/workspace/build_tidb_enterprise_tools_master/go/src/github.com/pingcap/tidb-enterprise-tools/syncer/db.go:116:

确认几个事情

  1. 同步的链路是怎么样子的?
  2. dump 操作是在上游还是下游

bad connection 报错一般就是数据库连接出现了异常(如网络故障、TiDB 重启等)且当前请求的数据暂时未能发送到 TiDB。可以将 dump 语法发出来看下,并简述下 dump 对象的服务器配置,感谢配合

在 tidb端备份,备份命令如下:
mydumper -h 127.0.0.1 -P 4000 -u root -p ‘xxx’ -t 12 -F 256 --skip-tz-utc -o /export/data/tidb/dumps/202101/13 > /export/data/tidb/dumps/202101/13/mydumper.log 2>&1

在 tidb 服务器上执行,dmesg -T 看下有木有 tidb-server 的 oom 信息

看了所有机器均没有oom ,近期加了个备份,备份任务开始后,syncer数据同步就断开。

请反馈需要的信息,感谢配合
因为此问题的一般处理都是这样的:
https://docs.pingcap.com/zh/tidb-data-migration/stable/error-handling#原因-1

我模拟下这个问题 ,看看集群状态或抓些日志

syncer log 感觉就够了,检查网络和 tidb 负载情况吧,可以尝试把 dumo 线程调小,应该可以缓解这个问题。