场景
上游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'"]
......
我尝试过的解决方案
- 重新部署drainer
- 清空备份库,并删除/home/deploy/data.drainer/, 重新部署 drainer
- 清空备份库,并使用 ansible-playbook unsafe_cleanup_data.yml --tags=drainer 清空数据,重新部署 drainer 以上尝试都未能解决,drainer 集群会发生 主键冲突的问题
期望
集群可以正常运行,不会在插入同一条数据时,产生主键冲突的异常,而导致drainer 下线