因此,我在两台不同的物理服务器上的两台虚拟机上设置了MySQL的主从复制。 现在我头脑发痒的问题是,当主人瘫痪时,客户端如何切换到从服务器进行读取?
例如:
Master (192.168.1.1) mysql1.mydomain.com Slave (192.168.1.2) mysql2.mydomain.com
目前所有的客户端连接到mysql1.mydomain.com,我怎么configuration这个? 似乎我需要IP故障转移,或一些DNS魔术。 一个总是指向MySQL或者主服务器的mysql-cluster.mydomain.com的DNS魔术logging将是完美的。
您可以使用心跳 :它可以pipe理您的两个节点之间的虚拟IP地址。 您的客户端将使用此vip连接到mysql – 如果主服务器发生故障,则心跳检测到并在第二个节点上升VIP。 当主节点返回时,请小心不要在主节点上设置自动故障转移,因为显然他的数据将会过时
如果你想去“DNS魔术”,那么selectRound Robin DNS 。
这只是一个部分的解决scheme:由于slave是只读的,MySQL更新怎么办? 在这种情况下,也许MySQL master-master复制是一个更好的解决scheme。