[FAQ] binlog 同步报错 Duplicate entry

[问题澄清]

binlog同步过程中遇到报错:Duplicate entry

[原因分析]

  1. 上游数据存在重复
  2. 存在多个源写入

[解决方案]

  1. 查看上游数据是否有重复写入,调整业务

  2. 对于合库合表的同步,确认不同分表间数据不存在重复

  3. 找出多个源信息,查找方法:

  4. 停止已知的数据源,观察下游数据是否继续发生变更

  5. 分析下游 entry 的 MVCC 信息,对比与已知数据源的写入时间是否一致

  6. 通过下游数据库 log 或 show processlist 观察到下游的连接是否存在异常(是否有已知数据源之外机器的连接)

  7. 对于 DM,可查找是否有其他 DM 进程或 syncer 进程在同步相同的表;对于 DM 有多个 task 在运行的情况,对比是否多个 task 在同步相同的表