我有一个mongodb副本集,并希望将其移动到一个单一的服务器设置
是否就像做一个rs.remove()
到其他2个节点一样简单?
在副本集的当前主节点上,可以为这些节点发出rs.remove()
,从而停止对它们的复制尝试。
您可能必须closures要在单一模式下运行的服务器,然后在没有--replSet <name>
选项(或者可能在您的configuration文件中设置的任何选项)的情况下重新启动它,因为这将启动服务器处于单一模式,而不是尝试复制到任何其他节点。
你可以跳过删除,实际上你应该。 要解释一下:如果你一次只有一个rs.remove(),那么在第一次删除之后,你最终将没有足够的票数来形成多数(不可能有2个节点的多数)。
所以,正如Mike所build议的那样,只需重新启动主服务器,而不需要–replSet(或者相当于configuration文件)并closures其他节点。
根据我的经验,完全closures故障转移(并从池中删除当前的主),您需要执行以下操作:
rs.remove()
从组中删除所有辅助节点。 这将导致您的旧主服务器成为您的新单服务器(所有其他服务器可能会被closures/销毁)。
每当我尝试一个简单的重启没有任何副本集config /的–replSet标志它没有奏效,可能是因为本地数据库仍然有副本集的configuration。