TiDB 3.0.2 drainer 异常 [error="Error 1062: Duplicate entry '主键' for key 'PRIMARY'"]

场景

上游TiDB
下游 MariaDB 使用 pump/drainer 做binlog 同步 pump 3台 drainer 3台

我做了什么

测试一: 做主从数据同步测试, 3台pump 1台drainer 同步, 运行72小时没问题

测试二: 做主从数据同步测试, 3台pump 3台drainer 同步, 运行时发生 异常导致其中两个drainer 暂停,异常信息如下

[2019/08/26 15:24:30.327 +08:00] [ERROR] [executor.go:85] ["exec fail"] [query="INSERT INTO `dev2_paas`.`paas_login_log`(`id`,`user_id`,`user_login`,`ip`,`login_time`,`tenant_id`,`tenant_code`,`logout_time`,`session_id`,`paas_create_user`,`paas_create_time`,`paas_update_user`,`paas_update_time`,`paas_version_no`,`paas_is_del`,`paas_id`) VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)"] [args="[\"ZmU2MWI4ZjdmMWRlNDIxYWE4ZTBkZmUxYjYxNGJlODY=\",\"MzE1N2I2ZjA0YzUwNGYwMzhjMDliYjAxZWViOGU4NTg=\",\"c3VwZXJhZG1pbg==\",\"MTcyLjE2LjI2LjE3\",\"2019-08-26 15:24:28\",\"MDAwMDAwMDA2YmY0MzBkZTAxNmJmNDQzZGU1ODAwMDQ=\",\"cGZpemVy\",null,\"YWQ1NjdiNWEtMGQ1Ny00OGM4LThhYTItYjRkMTM4MzUwYTZk\",\"bHVjYXMud2FuZw==\",\"2019-08-26 15:24:28\",\"bHVjYXMud2FuZw==\",\"2019-08-26 15:24:28\",null,null,\"ZmY4MDgwODE2Y2JkMWVkYzAxNmNjY2NmZDM3ZTAwZGI=\"]"] [error="Error 1062: Duplicate entry 'ff8080816cbd1edc016ccccfd37e00db' for key 'PRIMARY'"]
......
我尝试过的解决方案
  1. 重新部署drainer
  2. 清空备份库,并删除/home/deploy/data.drainer/, 重新部署 drainer
  3. 清空备份库,并使用 ansible-playbook unsafe_cleanup_data.yml --tags=drainer 清空数据,重新部署 drainer 以上尝试都未能解决,drainer 集群会发生 主键冲突的问题
期望

集群可以正常运行,不会在插入同一条数据时,产生主键冲突的异常,而导致drainer 下线

一个 drainer 对应一个下游。不能多个 drainer 对应一个下游。

原来如此,我应该在文档上找到原因才对,实际上我并没有做到,谢谢大神。