我正在尝试使用复制设置我的第一个数据库。我打算将我的本地实例用作主要实例,将测试服务器用作辅助实例。事情搞砸了,所以我想重置所有复制并从头开始。我希望使用以下方法删除复制成员:
rs.remove("some.server.com:27017")
每个成员,但我收到错误:
replSetReconfig只能在PRIMARY上运行,但我的状态是 拆除;使用“force”参数覆盖
然后我尝试添加force属性:
rs.remove("some.server.com:27017", {force: true})
但得到了同样的信息。即使这样做,它会完全重置我的复制设置吗?
完全重置已在mongodb实例上设置的任何复制的正确方法是什么?
答案 0 :(得分:1)
我通常按照以下步骤执行此操作。
获取副本集配置。 rs.config()
从主要本身删除配置中的所有成员。
rs.reconfig(updated_config)
从system.replset
- >中删除所有文件db["system.replset"].deleteMany({})
答案 1 :(得分:0)
您需要从主实例(您说是本地实例)运行删除命令。然后您的主实例将告知辅助实例它不再是RS的一部分。
如果您只是从复制集中分离实例,则分离的实例将保留数据,因此您实际上需要从分离的辅助服务器中删除该数据。你可以通过删除数据目录的内容来实现这个目的(/ var / lib / mongodb /我认为)