因此,我在两台不同的物理服务器上的两个虚拟机上设置了 MySQL 的主从复制。现在令我头疼的问题是,当主服务器宕机时,客户端如何切换到从服务器进行读取?
例如:
Master (192.168.1.1) mysql1.mydomain.com
Slave (192.168.1.2) mysql2.mydomain.com
所有客户端当前都连接到 mysql1.mydomain.com,我该如何配置它?似乎我需要 IP 故障转移或一些 DNS 魔法。如果 DNS 魔法记录为 mysql-cluster.mydomain.com,并且始终指向已启动或主控的 MySQL 服务器,那就完美了。
答案1
您可以使用心跳:它可以管理两个节点之间的虚拟 IP 地址。您的客户端将使用此 vip 连接到 mysql - 如果主节点发生故障,heartbeat 会检测到它并在第二个节点上启动 vip。注意不要在主节点恢复时设置自动故障转移,因为显然他的数据会过时
答案2
如果你想体验“DNS魔法”,那么选择轮询 DNS。
这只是一个部分解决方案:既然从服务器是只读的,那么 MySQL 更新怎么办?也许MySQL 主主复制在这种情况下是一个更好的解决方案。