我有一个MongoDB数据库,其中有4个副本集成员。我只需要关闭一个复制副本。如果我执行这个命令:
db.shutdownServer()
当我连接到要关闭的副本成员时,我可以安静地让其他成员继续工作吗?
如果您有4个投票成员,并且如果您关闭了SECONDARY成员,则在目标SECONDARY:上执行后,您的PRIMARY将继续为PRIMARY
use admin
db.shutdownServer()
p.S。这是在您为了维护而短时间关闭会员的情况下,通常情况下,4个有投票权的会员只允许1个会员同时关闭,如果一个会员出现问题,您将只有4个(50%<多数(中的2个有效投票会员,并且PRIMARY将切换到SECONDARY。从长远来看,最好按照@Alex Blex评论中的建议步骤删除该成员。
Total members Allowed to be down at once(default voting config -> 1x vote each member )
in replicaSet and still keeping PRIMARY online
1 0
2 0
3 1
4 1
5 2
6 2
7 3
此外,最好在关闭成员之前提前将其重新配置为HIDDEN状态,以向应用程序隐藏该成员,并减少稍后启动过程中的问题。如果你只是想短时间停止它,不建议删除它,因为如果你再次添加它,稍后需要一些时间来初始化同步它。