用于后备方案的MySQL复制

时间:2008-08-11 19:12:34

标签: mysql replication fallback binary-log

当我有两个具有不同作业的mysql服务器(持有不同的数据库)但希望能够在另一个失败时使用其中一个进入时,你会建议我如何将数据保存在它们两者上等于“接近实时”?

显然,每隔x分钟就无法进行完整的数据库转储。

我读过关于Binary Log的信息,那是我需要去的方式吗?请问这不会减慢后备服务器的速度吗?有没有办法在二进制日志中不包含一些表 - 数据发生变化并不重要?

2 个答案:

答案 0 :(得分:3)

您可能需要考虑 master-master 复制方案,但稍有不同。您可以指定要复制的数据库,并限制每个服务器的复制。

对于server1,我会将--replicate-do-db=server_2_db和server2 --replicate-do-db=server_1_db添加到my.cnf(或Windows上的my.ini)。这意味着只有server_1_db的语句才会被复制到server2,反之亦然。

还请确保定期执行完整备份,而不仅仅依赖复制,因为它不会提供意外DROP DATABASE语句或类似内容的安全性。

答案 1 :(得分:2)

二进制日志绝对是要走的路。但是,您应该知道,使用 MySQL ,您不能在这样的服务器之间来回切换。

一个服务器将是主服务器,另一个服务器将是从服务器。您可以写入/读取主服务器,但只能从从服务器读取。如果你曾经写过奴隶,他们将会失去同步,并且没有简单的方法让他们再次同步(基本上,你必须交换他们,因此主人是新的奴隶,但这是一个单调乏味的手动过程)。

如果您需要真正的热插拔备份数据库,则可能需要转到 MySQL 以外的系统。如果您想要的只是一个只读的实时备份,您可以在最坏的情况下立即使用(主服务器被永久销毁),二进制日志将很适合您。