MySQL 复制:让主服务器与从服务器再次同步

MySQL 复制:让主服务器与从服务器再次同步

我在同一个网络上有两台计算机,采用主从复制设置。

为了测试故障转移,我直接将一些数据插入从属数据库。因此,现在从属数据库包含的信息比主数据库多。

现在我想让主服务器与从服务器再次同步,以恢复真正的主从设置。我该怎么做?

答案1

我们不要称它们为“主”和“从”,而是这样概括它们:

  • HostA:最初的“主人”
  • HostB:最初的“奴隶”

当您直接将数据插入 HostB 时,HostA 落后于二进制 oplog。您首先需要通过使用以下命令将 HostA 设置为 HostB 的从属服务器来克服此问题CHANGE MASTER TO(http://dev.mysql.com/doc/refman/5.0/en/change-master-to.html)。这应该会导致 HostA 与 HostB 同步。

一旦 HostA 赶上了 HostB,您将需要重置 HostA 的二进制日志并将其提升为主服务器。

  1. 在 HostA 上:RESET MASTER;
  2. 在 HostB 上:CHANGE MASTER TO...

如需了解更多信息,请查看http://dev.mysql.com/doc/refman/5.0/en/replication-solutions-switch.html#figure_replication-redundancy-after

答案2

替代解决方案:

  • 停止 SLAVE 和 MASTER。
  • 运行像 Navicat 这样的程序来将数据从 SLAVE 同步到 MASTER。
  • 重置从站和主站。
  • 启动主站和从站。

数据应该可以正常传输。

相关内容