副本集分片.第二个数据中心可以进行故障转移吗?



我们有3个碎片,每个复制到3个盒子上(总共9个盒子)。2个副本在我们的主托管提供商(站点A),我们在另一个托管提供商(站点B)上有第三个副本(仅设置为辅助)。如果站点A失败,(如何)我们可以自动接受来自站点B的请求?

我们已经将站点B的副本配置为仅在http://docs.mongodb.org/manual/core/replication/中建议的二级。我知道您可以在这些盒子上执行rs.SlaveOk()并接受请求,但这只会执行本地分片,这是数据库的三分之一。

感谢所有的帮助!

当大部分副本集不可用时,无法自动进行故障转移。

站点A丢失意味着您已经丢失了2/3的副本节点。为了让站点B节点接受读写,您必须重新配置副本集。您可以从配置中删除站点A的节点,或者添加仲裁器以恢复"多数"。

请注意,您不会以这种方式运行任何冗余,因此我建议您不要试图自动启动或尽可能快地启动新服务器,以便在服务器大量丢失的情况下,花时间启动将提供新配置冗余的新服务器。

如果您的应用程序需要在丢失数据中心的情况下存活下来,建议的配置是在DC1和DC2中拥有相同数量的节点,然后在第三个位置拥有一个仲裁器(这样无论哪个数据中心发生故障,您都可以确保大部分副本集仍然存在,并可以选择一个新的主)。

相关内容

  • 没有找到相关文章

最新更新