如何关闭mongodb中的副本集?

时间:2013-03-04 03:59:10

标签: mongodb mongodb-replica-set

我使用的是ubuntu。

我按如下方式启动三个mongod副本集:

$ mongod --replSet setname --logpath "1.log" --dbpath /data/rs1 --port 27017 --smallfiles --fork
$ mongod --replSet setname --logpath "2.log" --dbpath /data/rs2 --port 27018 --smallfiles --fork
$ mongod --replSet setname --logpath "3.log" --dbpath /data/rs3 --port 27019 --smallfiles --fork

如何关闭它们?

8 个答案:

答案 0 :(得分:16)

从Unix shell运行以下命令:

mongo --port 27017 --eval 'db.adminCommand("shutdown")'
mongo --port 27018 --eval 'db.adminCommand("shutdown")'
mongo --port 27019 --eval 'db.adminCommand("shutdown")'

答案 1 :(得分:11)

我认为接受的答案是正确的。经过一些谷歌搜索后,我发现mongodb-user组中的this是最好的答案。

  

关闭:
   - 在辅助节点上运行db.runCommand({replSetFreeze:numOfSeconds})   防止升级到初级    - 在主服务器上运行rs.stepDown(seconds);它会检查以确保   至少有一个辅助语言足以接受oplog   在下台之前。选择一个相当长的等待时间    - 一切都是次要的,db / shutdownServer()就是一切

     

启动:
   - 在两个辅助节点上运行replSetFreeze并超时(例如,   1-2分钟)
   - 培养初级    - 使用stepDown修复辅助以某种方式成为主要

仅仅关闭是不够的,您必须阻止辅助节点升级到主要节点。

答案 2 :(得分:3)

1)在辅助服务器上登录mongo shell

2)使用以下命令停止辅助服务器:

use admin
db.shutdownServer()

2]转到Linux shell-on辅助服务器并输入以下命令:

sudo service mongod stop

有关详情,请查看以下链接:

http://www.tutespace.com/2016/03/stopping-and-starting-mongodb.html

答案 3 :(得分:1)

使用ps -ef | grep mongod,获取端口号为27017-27019的mongodb的pod,并使用thats pids终止进程。

答案 4 :(得分:0)

mongod --port 27017 --shutdown 
mongod --port 27018 --shutdown
mongod --port 27019 --shutdown

顺便说一下,如果将来有可能使用分片,最好避免端口27018和27019.这些是分片群集的某些组件的默认端口。

答案 5 :(得分:0)

在Windows上的MongoDB 3.2中,我使用以下序列:

mongo mongodb://localhost:27019/admin --eval "db.shutdownServer({timeoutSecs: 10})"
mongo mongodb://localhost:27018/admin --eval "db.shutdownServer({timeoutSecs: 10})"
mongo mongodb://localhost:27017/admin --eval "db.shutdownServer({timeoutSecs: 10})"

答案 6 :(得分:0)

首先关闭secondaries以防止回滚。

mongo admin --port <port> --eval "<db.auth if needed>;db.shutdownServer()"

来源:mongodb大学课程

答案 7 :(得分:0)

这是一个老问题,但我仍然认为我应该回答这个问题。

在unix shell中运行以下命令

ps -ef | grep mongo

这将为您提供与端口27017,27018和27019对应的pid(进程ID)列表。您可以使用pid来杀死replicaset的所有成员