适用于后备方案的MySQL复制
时间:2020-03-05 18:39:01 来源:igfitidea点击:
当我有两个具有不同工作(容纳不同数据库)的mysql服务器,但又希望当另一个失败时能够使用其中一个插入时,我们将如何建议我将它们两个上的数据保持相等?实时"?
显然,不可能每x分钟进行一次完整的数据库转储。
我已经读过二进制日志,这就是我需要走的路吗?那会不会大大降低备用服务器的速度?有没有办法在数据没有变化的情况下不在二进制日志中包含某些表?
解决方案
回答
二进制日志绝对是必经之路。但是,我们应该意识到,使用MySQL不能仅仅在这样的服务器之间来回切换。
一台服务器将为主服务器,另一台将为从服务器。我们向主服务器写入/读取,但只能从从服务器读取。如果我们曾经写过奴隶,它们将不同步,并且没有简单的方法让它们再次同步(基本上,我们必须交换它们,使主人成为新的奴隶,但这是一个繁琐的手动过程)。
如果我们需要真正的热插拔备份数据库,则可能必须使用MySQL以外的系统。如果我们只需要只读的实时备份,可以在最坏的情况下立即使用它(主磁盘已永久销毁),二进制日志将非常适合我们。
回答
我们可能要考虑主-主复制方案,但要稍加改动。我们可以指定要复制的数据库,并限制每个服务器的复制。
对于server1,我将在服务器2上添加--replicate-do-db = server_2_db和server2上将--replicate-do-db = server_1_db添加到my.cnf(或者Windows上的my.ini)。这意味着仅将server_1_db的语句复制到server2,反之亦然。
还请确保我们定期执行完整备份,而不仅仅是依赖复制,因为它不能防止意外的`DROP DATABASE'语句或者类似语句带来的安全性。