2016-10-07 63 views
0

我有两个独立的节点,其上运行mongodb。它们都有一个副本集配置rs0并以 rs.initiate()开头。但在某些情况下,我希望它们作为单独的节点运行,但在某些情况下,我希望一个成为主要的,另一个成为次要的。但由于我已经完成了 rs.initiate(),我将无法将任何节点添加为辅助节点。那么是否有办法撤销副本集配置,以便我可以启用添加辅助节点。有没有办法恢复或取消副本集配置

+0

你能解释为什么你想要这个设置?你的要求听起来很奇怪。也许我们可以找到更合适的解决方案。 –

+0

嘿@MarkusWMahlberg和mongodb一起我还有其他服务,例如运行在这些节点上的nginx,Vault等。我想创建一个设置,其中可以在独立模式或集群模式下运行。所以我希望我的设置具有一定的灵活性,这将使它可以轻松地从独立模式转换为集群模式。在集群模式下,所有服务将仅在主节点中运行,但只有mongodb应在辅助节点上运行,因为数据将从主服务器复制到辅助服务器,如果主服务器出现故障,辅助服务器可能会接管。 –

+0

此设置存在问题:a)您不应该在机器上运行其他任何MongoDB节点。它需要大量的RAM,并且万一你有许多并发用户,这些部件将争夺这个宝贵的资源。 b)复制是一个利用oplog的连续过程,oplog是一个封顶的集合。如果您的更改超过oplog,那么如果您的主服务器出现故障,您将被迫重新同步 - 不好主意。 c)我要做的是为前端做一些HA设置(在不同的节点上,可能会根据负载动态添加一些),并根据MongoDB制定标准的replset。 –

回答

0

您可以简单地准备一个新的配置文档并重新配置复制。

rs.reconfig(new_config_file)

+2

嘿@satish做重新配置在这种情况下无济于事,因为主要需要使用'rs.add'命令添加辅助节点,但考虑到辅助节点也是使用'rs.initiate'配置了rs0,它不会让我添加主节点上的辅助节点。我不知道如何重新配置​​辅助工作,因为我正在寻找一些可以撤消rs.initiate配置的东西 –

相关问题