[问题澄清]
binlog同步过程中遇到报错:Duplicate entry
[原因分析]
- 上游数据存在重复
- 存在多个源写入
[解决方案]
-
查看上游数据是否有重复写入,调整业务
-
对于合库合表的同步,确认不同分表间数据不存在重复
-
找出多个源信息,查找方法:
-
停止已知的数据源,观察下游数据是否继续发生变更
-
分析下游 entry 的 MVCC 信息,对比与已知数据源的写入时间是否一致
-
通过下游数据库 log 或 show processlist 观察到下游的连接是否存在异常(是否有已知数据源之外机器的连接)
-
对于 DM,可查找是否有其他 DM 进程或 syncer 进程在同步相同的表;对于 DM 有多个 task 在运行的情况,对比是否多个 task 在同步相同的表