在MySQL/MariaDB中解决双主拓扑与副本的数据漂移问题

在MySQL/MariaDB中解决双主拓扑与副本的数据漂移问题

💡 原文英文,约6900词,阅读约需25分钟。
📝

内容提要

本文介绍了使用pt-table-sync修复数据漂移时出现的删除行问题。作者建议使用REPLACE语句来添加或更新行,但如果出现重复键错误,则需要在所有实例上执行REPLACE语句。作者提醒DBA应该保护数据的完整性。

🎯

关键要点

  • 在管理服务中,遇到双主拓扑和副本的情况。
  • 接收到PS-primary-2的警报,提示无法在表foo.persons中找到记录。
  • 有人可能通过跳过错误或执行空事务解决了复制问题。
  • 建议运行pt-table-checksum检查数据差异,并使用pt-table-sync修复数据漂移。
  • 在执行pt-table-sync时,使用--print选项查看将要执行的操作。
  • 在双主拓扑中,建议对另一个主服务器进行校验,以确保数据一致性。
  • 数据漂移可能由多种原因引起,包括在主服务器上禁用二进制日志记录等。
  • 使用pt-table-sync时,可能会出现删除行的情况,但在某些情况下不应删除行。
  • 与客户讨论后,决定添加和更新缺失的行,而不是删除任何行。
  • 在执行REPLACE语句时,可能会遇到重复键错误,因此需要谨慎处理。
  • 维护双主拓扑可能会很复杂,使用pt-table-checksum和pt-table-sync工具是解决问题的关键。
  • 在运行pt-table-sync时,始终使用--print选项与客户确认将要执行的操作。
➡️

继续阅读