2

我已经成功设置了一个主从环境,它肯定工作正常。

我唯一的问题是从表中选择计数,它们不一样,但在从主站 5 分钟后选择,在从站上创建了 50 行,也创建了 50 行(这就是为什么我说我确定工作正常)

掌握:

+----------+
| COUNT(*) |
+----------+
|    77634 |
+----------+
1 row in set (0.00 sec)

奴隶:

+----------+
| COUNT(*) |
+----------+
|    76932 |
+----------+
1 row in set (0.00 sec)

知道为什么会这样吗?是否有可能当我使用“CHANGE MASTER TO”命令将从属更改为指向主控时,二进制日志文件@主控的位置已经移动了?

4

2 回答 2

2

在从属设备上尝试“SHOW SLAVE STATUS”以查看是否发生任何错误。

您也可以尝试从 master 加载数据以重新建立同步。

于 2011-09-07T11:52:18.157 回答
0

MySQL 复制不是“可靠的”,如果出错,它也不能自动重新同步。即使没有计划外的重启等,也有很多方法可能出错。

您需要积极监控它,以使其有机会在任何时间段内正常工作。

你至少需要做两件事:

  1. 检查 SHOW SLAVE STATUS 的输出(在每个从站上),确保线程正在运行,没有报告错误,并且 seconds_behind_master 不会太多。
  2. 定期在每个从机/主机上运行某种一致性检查 - 我推荐使用 --replication 选项的 mk-table-checksum

并将这些检查的输出连接到您的监控系统,以便您的操作人员收到警报。

您的运营人员还需要知道如何修复它(转储/恢复或其他修复)。您肯定需要为 Ops 编写某种知识库文章。

我以前做过 - 这不是微不足道的,你很容易弄错。

于 2011-09-07T13:01:33.427 回答