从副本集中删除所有辅助主机 (rs.remove('host:port')),重新启动不带 replSet 参数的 mongo 守护程序(编辑 /etc/mongo.conf),辅助主机再次以独立模式启动。
Primary 主机是一个棘手的问题,因为您无法使用 rs.remove 从副本集中删除它。
一旦副本集中只有主节点,您应该退出 mongo shell 并停止 mongo。然后编辑 /etc/mongo.conf 并删除 replSet 参数并再次启动 mongo。
启动 mongo 后,您已经处于独立模式,但 mongo shell 会提示如下消息:
2015-07-31T12:02:51.112+0100 [initandlisten] ** 警告:mongod 在没有 --replSet 的情况下启动,但 local.system.replset 中存在 1 个文档
要删除警告,您可以执行 2 个步骤:
1)删除本地数据库并重新启动mongo:
use local
db.dropDatabase();
/etc/init.d/mongod restart
2)或者如果你不想这么激进,你可以这样做:
use local
db.system.replset.find()
它会提示如下消息:
{ "_id" : "replicaSetName", "version" : 1, "members" : [ { "_id" : 0, "host" : "hostprimary:mongoport" } ] }
然后您将使用以下方法擦除它:
db.system.replset.remove({ "_id" : "replicaSetName", "version" : 1, "members" : [ { "_id" : 0, "host" : "hostprimary:mongoport" } ] })
它可能会提示:
WriteResult({ "nRemoved" : 1 })
现在,您可以重新启动 mongo,警告应该消失了,您的 mongo 将处于独立模式而不会出现警告