2013-05-28 99 views
15

在MongoDB Shell中启动副本集的命令是rs.initiate()。停止副本集MongoDB

这个命令的反面是什么。如何停止副本集?

有一些命令可以重新配置设置或删除成员,但不知道如何删除最后一个成员并因此销毁副本集。

+1

最常见的方法是停止'mongod',因为您必须重新启动没有副本选项的'mongod'才能实际阻止它尝试使用副本集。 – Sammaye

+0

当我在做这件事后启动mongo时,它给了我这个警告:“警告:mongod启动时没有--replSet,但1个文件存在于local.system.replset中”。我如何清理它? –

+0

相关问题:http://stackoverflow.com/q/10953752/490018 –

回答

33

这一切都取决于你的目标是什么。如果你想重用现有的mongod作为独立的服务器,而不是一个副本集成员,那么步骤做,这将是:

  1. 重启mongod的过程中没有--replSet说法。
  2. 掉落本地数据库:

    use local; 
    db.dropDatabase(); 
    
+0

非常感谢你的工作。 –

+0

“errmsg”:“在复制处于活动状态时无法删除”本地“数据库” – alexserver

+1

必须在没有--replSet标志的情况下重新启动服务器,然后才能删除本地。 –

0

1)转到通过以下命令MONGO辅助服务器

2)停止辅助服务器壳:

使用管理员分贝.shutdownServer()

2]转到Linux shell - 在辅助服务器上并键入以下命令:

须藤服务的mongod停止

欲了解更多信息,请检查下面的链接:

http://www.learnit.net.in/2016/03/stopping-and-starting-mongodb.html

2

我只是有这个问题的产生。 @ maganap的(3月15日)评论保存了我的培根!

使用MongoDB的3.2.10,没必要转储OPLOG,只是这样做的第一个成员:

use local 
db.system.replset.remove({}) 

然后重启成员。它现在仍然有oplog,它是数据。刚刚运行:

rs.initiate() 
rs.reconfig(conf) 

其中conf是新conf。然后在其他每个成员上面,运行上面的replset数据的废除并重新启动它们。当他们开始时,他们会加入这个组合。