Dra*_*ag0 10 database database-design mongodb
是否可以创建仅包含1个主要成员和1个次要成员的MongoDB副本集?我希望有一个延迟的副本集,它将从主要数据中复制数据,延迟24小时.我知道我可以在其中一个服务器上安装仲裁服务器(主服务器或辅助服务器,我知道这不建议,但我唯一的愿望是在两台服务器上运行此配置)并且运行正常,但我想知道是否可能完全踢出仲裁者.它看起来像这样:
Mar*_*erg 12
简答:不要.
答案很清楚:MongoDB中自动故障转移的工作方式是副本集需要合格的多数才能成功选出新的主节点.延迟成员确实在选举中投票.因此,如果您的任何一个节点发生故障,副本集会发现它没有这个多数,并且即使它没有失败,当前主节点也会降低.所以你基本上做的是使你的副本集失败的可能性增加一倍.仲裁器是一个非常便宜的过程,就RAM使用率,CPU甚至磁盘空间而言,--smallfiles --no-journal --noprealloc
在配置文件中设置或等效选项时运行.请注意,上述选项可以安全使用,因为仲裁器基本上只检查数据承载节点的心跳.例如,您可以将仲裁服务器放在应用程序服务器上.
免责声明:强烈建议不要使用以下程序.继续需要您自担风险.
您可以将延迟服务器的投票设置为0.这样,如果延迟成员失败,未延迟节点将调用选举,得出结论它是副本集的唯一在线节点并且它占多数投票(1/1)并将继续按预期工作.此操作过程需要引起注意,因为如果稍后将成员添加到副本集并且需要重新配置副本集,则将再次进行偶数投票.它还对网络碎片问题产生严重影响.再次:使用风险自负
是的,这是可能的,但不推荐。这种方法的缺点是没有自动故障转移。
如果您的主服务器出现故障,那么您将必须手动将其他服务器设为主服务器。
如果您仅将辅助设备作为主设备的镜像,并且您可以接受手动故障转移,那么它应该适合您。
更多信息请点击这里:
http://openmymind.net/Does-My-Replica-Set-Need-An-Arbiter/
是的,您可以并且您真正需要做的就是将成员设置为没有资格成为主要成员。
有关于如何确保成员不能被选为主要成员的文档:http : //docs.mongodb.org/manual/tutorial/configure-secondary-only-replica-set-member/