Linux 停止副本集MongoDB
在MongoDB Shell中启动副本集的命令是rs.initiate() 这个命令的反面是什么。如何停止复制集Linux 停止副本集MongoDB,linux,mongodb,Linux,Mongodb,在MongoDB Shell中启动副本集的命令是rs.initiate() 这个命令的反面是什么。如何停止复制集 有重新配置集合或删除成员的命令,但我不知道如何删除最后一个成员,从而销毁副本集合。这取决于您的目标。如果要将现有的mongod重新用作独立服务器,而不是副本集成员,则执行以下步骤: 重新启动mongod进程,但不使用--replSet参数 删除本地数据库: use local; db.dropDatabase(); 转到辅助服务器上的mongo shell 使用以下命令停止辅助
有重新配置集合或删除成员的命令,但我不知道如何删除最后一个成员,从而销毁副本集合。这取决于您的目标。如果要将现有的
mongod
重新用作独立服务器,而不是副本集成员,则执行以下步骤:
--replSet
参数use local;
db.dropDatabase();
>使用admin
>db.shutdownServer()
sudo服务mongod站
我只是在生产中遇到了这个问题@马格纳普(3月15日)的评论救了我一命 使用mongodb 3.2.10,无需转储oplog,只需在第一个成员上执行此操作:
use local
db.system.replset.remove({})
然后重新启动成员。它现在仍然有oplog和数据。只需运行:
rs.initiate()
rs.reconfig(conf)
其中conf是新的conf。然后在其他每个成员上,只需运行上面的replset数据垃圾处理并重新启动它们。当他们开始的时候,他们会加入剧组 最常见的方法是停止
mongod
,因为您必须在不使用复制选项的情况下重新启动mongod
,才能真正阻止它尝试使用复制集。当我启动mongo后,它会给我以下警告:“警告:mongod启动时没有--replSet,但本地.system.replSet中有1个文档”. 如何清理此问题?相关问题:请参阅此处以获取完整答案:“errmsg”:“复制处于活动状态时无法删除“local”数据库”在删除local.MongoDB 2.6错误日志声明只需清空local.system.replSet,而不必删除整个本地数据库之前,必须在没有--replSet标志的情况下重新启动服务器。所以,使用local
,然后db.system.replset.remove({})
。如果删除local,则不依赖于特定版本的实现内部。所有复制信息将始终存储在本地数据库中。