MongoDB复制故障转移

时间:2014-04-03 21:29:29

标签: mongodb replication database-replication redundancy

我想让mongod复制在多个站点之间实现冗余。

我正在考虑部署以下内容:部署5个Mongod实例(必须是奇数,或者需要仲裁员),A站点为3,站点B站点为2。

如果站点B出现故障,那么一切都很好,我们仍有3个站点A正在运行。但是如果站点A出现故障,那么我们只会运行2个Mongod。这个可以吗?哪一个会成为大师?他们可以自己管理,直到我手动开始第三个吗?

第二个问题,在网站重新连接后,mongo将如何处理?

1 个答案:

答案 0 :(得分:1)

只有超过50%的节点可用时,mongo副本集才可用。

如果您的网站A失败,那么您的副本集将会脱机

一种可能的替代方法是在A中运行2个副本节点,在B中运行2个。然后在外部位置运行仲裁程序或延迟副本。

延迟副本将为您的数据提供进一步备份,但是我会确保您将其优先级设置为0,这将确保虽然它是投票成员,但它不会被提升为主要数据。

拥有第三个网站可能并不可行,但这是最安全的方法。

显然,并发症将确保您确保站点A之间的通信 - >站点C,站点B - >网站C。

如果您真正受限于2个站点,那么确保副本集保持健康的唯一真正方法是监视健康的节点数量并具有一些自动缩放功能以确保您始终拥有足够的节点投票给小学。但是,我认为在这个解决方案中,当新服务器启动并添加到副本集时,您仍会遇到一些停机时间。