MySQL Redundancy for High-Availability over the internet

MySQL Redundancy for High-Availability over the internet

在开始编写 Web 应用程序之前,我正在测试一些基础架构选项。我希望在不同的物理位置拥有两个独立的 MySQL 数据库服务器,但如果其中一个服务器出现故障,我希望能够故障转移到另一个服务器,同时将数据丢失降至最低。

据我所知,MySQL 仅支持一个“主”服务器和多个“从”服务器。我假设这种设置背后的原因是在主服务器上执行写入操作,并尝试在从服务器上执行“读取”操作。

有没有办法设置它,以便我能够在主服务器发生故障时进行故障转移并写入从属服务器?

测试时需要注意的事项-我有两个来自不同提供商的 VPS,每个 VPS 都有一个外部 IP。

答案1

查看加莱拉。他们说它通过 WAN 或云进行复制。Galera 最近在 MySQL 圈子里引起了很多关注,但它并不是一个成熟的产品,所以你需要仔细评估你的回报/风险。

答案2

MySQL故障转移期间切换主服务器参考文档描述了如何在主/从复制方案中实现故障转移,以及多主服务器和循环复制本文档描述了几种其他复制方案,它们可能比具有故障转移的主/从复制更适合您的要求。

答案3

MySQL 仅支持一个“主”服务器和多个“从”服务器

不,即使不考虑 ndb 集群选项,您也可以拥有多个主服务器和多个从服务器。主主复制可能完全满足您的要求。请查看mysql代理/HA代理用于处理故障节点的工具。

在主/从复制发生中断时,可以编写从属节点的升级脚本 - 但除非您有充分的理由采用这种方法,否则我建议您避免使用。

答案4

我建议如下:

四 (4) 项因素的结合可实现良好的高可用性

  • MySQL 循环复制
  • DRBD
  • 乌卡普
  • 数据库引擎InnoDB

这个问题的有趣之处在于,这是我第三次回答这样的问题。实际上,我在 DBA StackExchange 中回答过这个问题 3 次(2 个答案 + Meta 中的评论答案):

https://dba.stackexchange.com/questions/5153/mysql-replication-1-slave-multiple-masters/5174#5174

https://dba.stackexchange.com/questions/1974/mysql-high-availability-failover-and-replication-with-latency/1983#1983

https://dba.meta.stackexchange.com/questions/207/mysql-high-availability-failover-and-replication/215#215

相关内容