如何使用 maatkit 工具同步 mysql 表

如何使用 maatkit 工具同步 mysql 表

我知道我的奴隶至少与主人有点不同步......阅读后我发现很多地方都说mk-table-checksum+mk-table-sync来自马特吉特是我应该用来修复此问题的工具。

问题是我找不到任何关于它的好例子:

这是我的架构:

Host1 -> master
      |_ table1


Host2 -> slave
      |_ table1

我的问题是:

  • 我应该在哪里运行命令:主命令还是从命令?
  • (当然)怎么样...有语法示例吗?

答案1

我已经很久没有这样做了,但如果我记得正确的话,你可以对主服务器使用 mk-table-checksum,并使用 --replicate 选项。这会为主表和从表写入校验和数据。然后,从从服务器运行 mk-table-sync --sync-to-master,这将通过更新主服务器中的行来使从服务器行保持一致,以便将它们复制到从服务器。

正如我所说,我对此的记忆可能不太清楚,因此请阅读工具的文档以确保您了解它们在做什么,并在您的测试环境中进行测试。

如果您的数据集不是很大,最好关闭足够长的时间以复制主服务器上的 mysql 数据目录并重新创建从服务器,因为这是确保您获得一致副本的最安全方法。如果您能够使用 LVM 快照,那就更好了 - 但除非您已考虑到这一点来配置文件系统,否则这是不可能的。

答案2

Jon Topper 的回答是正确的。我想补充一点,在副本上,您还应该将 --replicate 选项添加到 mk-table-sync,以便它利用 mk-table-checksum 已经完成的工作。

相关内容