目前,我已经让服务器A和服务器B运行了以下Mon神明实例:
服务器A
服务器B
当服务器A崩溃时,服务器B无法选择自己作为接管一切的主服务器。因此,由于数据库不可用,我的整个应用程序都处于脱机状态。
我的问题是,在不增加物理服务器数量的情况下,如何确保服务器B在服务器A崩溃时正确接管?
以下是个好主意吗?
服务器A
服务器B
我没有在B中添加仲裁器,因为这会使服务器的总数均匀。问题是:当服务器A关机时,这是让服务器B接管的最有效的方法吗?或者我可以删除一些服务器来保存RAM/CPU/HDD?
发布于 2012-06-01 00:24:55
让仲裁者和你的单神程序在同一台机器上是不太有效的。您是否有第三个无关的服务器来运行仲裁程序?
(记录在这里:http://www.mongodb.org/display/DOCS/Replica+Set+Tutorial#ReplicaSetTutorial-Runningwithtwonodes)
在同一服务器上运行多个单神进程将导致性能问题。此外,在同一台机器上有两个可用的单神进程和一个仲裁程序意味着,如果这两个物理服务器彼此断开连接,它们将各自选择一个本地主服务器。
发布于 2012-05-28 07:59:52
当A关闭时,让服务器B接管的最有效的方法是将您当前的仲裁者转移到B。然而,这意味着如果B失败了,A将不再是主要的,因为它将无法形成多数。
有两种选择--让另一个仲裁实例准备在A/B上进行重新配置,当无法将其添加到集合中并移除另一个仲裁器时,或者在另一个副本集之外重新启动A/B作为独立的单神,而另一个则在事情恢复正常时重新配置。
对于2台机器,您将始终遇到这样的问题:必须手动干预才能恢复设置。我能想到的每一个自动解决方案都涉及到另一台机器。
https://serverfault.com/questions/393072
复制相似问题