2011-09-07 61 views
2

我已经成功建立了一个主从服务器环境,并且它确实工作正常。mysql复制 - 主从服务器

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

站长:

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

奴隶:

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

任何想法,为什么会这样?是否有可能当我使用'CHANGE MASTER TO'命令将主站更改为主站时,主站上的二进制日志文件的位置已经移动了?

+0

您的从站在复制运行前不包含最新的快照 – ajreal

+0

您的意思是说,我没有使用sqldump的二进制日志文件的正确位置? – hex4

+0

最有可能的是,当您创建转储时,您并未锁定主写入。 – ajreal

回答

2

尝试在从属服务器上显示“SLAVE STATUS”,看是否有错误发生。

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

0

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

您需要主动监控它,以保持它在任何时间段内工作的可能性。

你所需要的,起码,做两件事情:

  1. 检查SHOW SLAVE STATUS的输出(每个从站),以确保正在运行的线程,不报告的错误和的Seconds_Behind_Master不太多了。
  2. 每个主/从定期运行某种一致性检查的 - 我建议MK-表校验和与--replication选项

和挂钩这些检查的输出到您的监测系统,使您的操作人员会收到警报。

您的Ops工作人员还需要知道如何解决它(转储/恢复,或其他一些修复)。您肯定需要为Ops编写一些基于知识的文章。

我之前做过这件事 - 它不是微不足道的,你可以很容易地弄错。