如何从MongoDB分片集群中彻底安全移除mongos路由器?
关于安全移除mongos实例的说明
目前MongoDB并没有提供专门的官方命令来安全移除mongos实例。mongos作为无状态的路由节点,集群不会自动清理已经离线的mongos实例在config.mongos集合中的记录,所以你手动删除对应文档的方式是目前可行的方案。
不过有几点需要注意:
- 务必确认目标mongos实例已经完全停止运行,防止删除记录后它重新上线并再次注册到集群中。
- 推荐使用更现代的
deleteOne()方法替代remove()(remove()属于遗留API),执行命令如下:
mongos> use config switched to db config mongos> db.mongos.deleteOne({ _id: "62-62-udp-1:6601" }) { "acknowledged" : true, "deletedCount" : 1 }
- 这类操作不会影响集群的正常运行,
config.mongos中的记录仅用于跟踪活跃mongos节点,离线节点的残留记录只会在sh.status()等管理命令中显示,不会对集群功能造成实质影响。
内容的提问来源于stack exchange,提问作者Steve Wu
相关产品推荐
相关产品推荐

