在开始编写 Web 应用程序之前,我正在测试一些基础架构选项。我希望在不同的物理位置拥有两个独立的 MySQL 数据库服务器,但如果其中一个服务器出现故障,我希望能够故障转移到另一个服务器,同时将数据丢失降至最低。
据我所知,MySQL 仅支持一个“主”服务器和多个“从”服务器。我假设这种设置背后的原因是在主服务器上执行写入操作,并尝试在从服务器上执行“读取”操作。
有没有办法设置它,以便我能够在主服务器发生故障时进行故障转移并写入从属服务器?
测试时需要注意的事项-我有两个来自不同提供商的 VPS,每个 VPS 都有一个外部 IP。
答案1
查看加莱拉。他们说它通过 WAN 或云进行复制。Galera 最近在 MySQL 圈子里引起了很多关注,但它并不是一个成熟的产品,所以你需要仔细评估你的回报/风险。
答案2
MySQL故障转移期间切换主服务器参考文档描述了如何在主/从复制方案中实现故障转移,以及多主服务器和循环复制本文档描述了几种其他复制方案,它们可能比具有故障转移的主/从复制更适合您的要求。
答案3
答案4
我建议如下:
四 (4) 项因素的结合可实现良好的高可用性
- MySQL 循环复制
- DRBD
- 乌卡普
- 数据库引擎InnoDB
这个问题的有趣之处在于,这是我第三次回答这样的问题。实际上,我在 DBA StackExchange 中回答过这个问题 3 次(2 个答案 + Meta 中的评论答案):
https://dba.stackexchange.com/questions/5153/mysql-replication-1-slave-multiple-masters/5174#5174