如何从mongodb实例中删除所有复制?

时间:2016-03-22 14:26:56

标签: mongodb

我正在尝试使用复制设置我的第一个数据库。我打算将我的本地实例用作主要实例,将测试服务器用作辅助实例。事情搞砸了,所以我想重置所有复制并从头开始。我希望使用以下方法删除复制成员:

rs.remove("some.server.com:27017")

每个成员,但我收到错误:

  

replSetReconfig只能在PRIMARY上运行,但我的状态是   拆除;使用“force”参数覆盖

然后我尝试添加force属性:

rs.remove("some.server.com:27017", {force: true})

但得到了同样的信息。即使这样做,它会完全重置我的复制设置吗?

完全重置已在mongodb实例上设置的任何复制的正确方法是什么?

2 个答案:

答案 0 :(得分:1)

我通常按照以下步骤执行此操作。

  1. 获取副本集配置。 rs.config()

  2. 从主要本身删除配置中的所有成员。

  3. rs.reconfig(updated_config)

  4. system.replset - >中删除所有文件db["system.replset"].deleteMany({})

  5. MongoDb website

    上查看更多信息

答案 1 :(得分:0)

您需要从主实例(您说是本地实例)运行删除命令。然后您的主实例将告知辅助实例它不再是RS的一部分。

如果您只是从复制集中分离实例,则分离的实例将保留数据,因此您实际上需要从分离的辅助服务器中删除该数据。你可以通过删除数据目录的内容来实现这个目的(/ var / lib / mongodb /我认为)

Resync Replica Set Member