mongo 副本设置为单台服务器

mongo 副本设置为单台服务器

我有一个 mongodb 副本集,想将其移动到单个服务器设置

rs.remove()这和对其他两个节点执行操作一样简单吗?

答案1

在副本集的当前主节点上,您可以rs.remove()对这些节点发出,从而停止对它们的复制尝试。

您可能必须关闭想要以单一模式运行的服务器,然后在没有该--replSet <name>选项的情况下重新启动它(或它可能在配置文件中设置的任何内容),因为这将以单一模式启动服务器,并且不会尝试复制到任何其他节点。

答案2

您可以完全跳过删除,事实上您应该这样做。解释一下:如果您一次 rs.remove() 一个,那么在第一次删除之后,您将无法获得足够的投票来形成多数(不可能有 2 个节点形成多数)。

因此,正如 Mike 所建议的,只需重新启动主节点(不带 --replSet)(或等效的配置文件)并关闭其他节点。

答案3

根据我的经验,要完全关闭故障转移(并从池中删除当前主服务器),您需要执行以下操作:

  • 从当前主节点开始,用于rs.remove()从组中删除所有辅助节点。
  • 停止当前主节点上的 mongod。
  • 按照说明操作这里- 即删除主实例上的所有本地。* 文件并从主实例的 mongo 配置文件中删除所有副本集配置。
  • 在当前主节点上启动 mongod。

这将导致您的旧主服务器成为新的单一服务器(所有其他服务器都可以关闭/销毁)。

每当我尝试在没有任何副本集配置/--replSet 标志的情况下进行简单重启时,它都不起作用,大概是因为本地数据库仍然具有副本集的配置。

相关内容