将mongo副本设置为单个服务器

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

是否就像做一个rs.remove()到其他2个节点一样简单?

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

您可能必须closures要在单一模式下运行的服务器,然后在没有--replSet <name>选项(或者可能在您的configuration文件中设置的任何选项)的情况下重新启动它,因为这将启动服务器处于单一模式,而不是尝试复制到任何其他节点。

你可以跳过删除,实际上你应该。 要解释一下:如果你一次只有一个rs.remove(),那么在第一次删除之后,你最终将没有足够的票数来形成多数(不可能有2个节点的多数)。

所以,正如Mike所build议的那样,只需重新启动主服务器,而不需要–replSet(或者相当于configuration文件)并closures其他节点。

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

  • 从当前主节点使用rs.remove()从组中删除所有辅助节点。
  • 停止当前小学的mongod。
  • 按照这里的说明 – 即删除主实例上的所有本地。*文件,并从主mongoconfiguration文件中删除任何副本集configuration。
  • 在当前小学上启动mongod。

这将导致您的旧主服务器成为您的新单服务器(所有其他服务器可能会被closures/销毁)。

每当我尝试一个简单的重启没有任何副本集config /的–replSet标志它没有奏效,可能是因为本地数据库仍然有副本集的configuration。