首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当数据中心失败时,MongoDB如何选择新的主服务器?

当数据中心失败时,MongoDB如何选择新的主服务器?
EN

Database Administration用户
提问于 2017-01-18 17:44:09
回答 2查看 1K关注 0票数 1

在设置MongoDB集群时,我很好奇下面的情况。

2个数据中心,每个数据中心2个节点,共4个节点复制集。由于任何原因,这两个数据中心中的一个变得不可用,从而使主数据中心和次要数据中心关闭。

https://docs.mongodb.com/manual/core/replica-set-architectures/的每一个容错部分:我需要至少3张选票来选举一个新的初选,但只有两个幸存的选民。

我无法扩展到第三个数据中心。

如何设置群集,使其能够承受数据中心故障并继续写入幸存的数据中心?

EN

回答 2

Database Administration用户

回答已采纳

发布于 2017-01-18 22:32:40

在这种情况下,需要从其余节点的服务器配置中删除丢失的节点的投票能力。这会将有效的集群大小缩小到2,其中优先级系统可以创建仲裁并选择主服务器。

示例:

代码语言:javascript
复制
#Note: members[0],[1] are in datacenter1, members[2],[3] are in datacenter2. 
cfg = rs.conf()
cfg.members[0].priority = 0
cfg.members[1].priority = 0
cfg.members[0].votes = 0
cfg.members[1].votes = 0
rs.reconfig(cfg)
#Now members[2] is elected primary.

不幸的是,在数据中心失败时,需要手动干预,才能将服务恢复到任何依赖写入此数据库的服务。它还需要手动干预,以便在丢失的节点返回服务并已恢复后(给它们返回表决特权)将集群恢复到启动状态。

票数 0
EN

Database Administration用户

发布于 2017-01-18 17:59:11

您需要第三个数据中心中的另一个副本集成员(或仲裁者)。但是,如果不能扩展到第三个中心,那么将副本集的第5个成员添加到主数据中心。您的备份数据中心将保留在两个成员中。

如果备份数据中心关闭,主中心将保持不动,副本集操作将继续。

如果主中心关闭,复制集操作将被只读,您将需要执行手动干预。

参考文献:

部署地理冗余副本集

分布在两个或多个数据中心的副本集

票数 3
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/161499

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档