通过互联网实现高可用性的MySQL冗余

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

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

有没有办法设置它,以便我有能力故障转移,并写入从服务器,如果主服务器宕机?

要记住我的testing – 我有两个来自不同供应商的VPS,每个都有一个外部IP。

结帐加莱拉 。 他们说它通过广域网或云进行复制。 Galera最近在MySQL界引起了很多关注,但它不是一个成熟的产品,所以你需要仔细评估你的奖励/风险。

MySQL 切换主服务器在故障切换过程中参考文档描述了如何在主/从复制scheme中实现故障切换, 多主服务器和循环复制文档描述了其他几种复制scheme,这些复制scheme可能比主从复制故障切换更适合您的要求。

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

不,甚至放弃ndb集群的选项,你可以有多个主人和多个奴隶。 主 – 主复制可以很好地满足您的要求。 看看mysqlproxy / HAproxy的工具来处理失败的节点。

在主/从复制发生故障的情况下,可以对从节点进行脚本升级 – 但除非您有足够的理由采取这种方法,否则我build议您将其清除。

我想推荐以下内容:

四(4)件高品质的组合

  • MySQL循环复制
  • DRBD
  • ucarp
  • 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