rs.remove()
定义
rs.remove(hostname)
从当前副本集删除
hostname
参数描述的节点。 此函数将短暂断开shell的连接,并在副本集重新协商哪个节点主节点 (primary node in the replica set)节点时强制重新连接。 因此,即使此命令成功, shell也会显示错误。rs.remove()
方法具有以下参数:Parameter类型说明hostname
字符串
副本集中系统的主机名。
注意
在运行
rs.remove()
操作之前,最好先关闭要删除的副本集节点。
兼容性
此方法可用于以下环境中托管的部署:
MongoDB Enterprise:基于订阅、自我管理的 MongoDB 版本
MongoDB Community:源代码可用、免费使用且可自行管理的 MongoDB 版本
行为
默认情况下,副本集节点等待 5 分钟,然后再删除到删除的节点的连接。在分片副本集中,您可以使用 ShardingTaskExecutorPoolHostTimeoutMS
服务器参数修改该超时。
要立即删除从副本集到已删除成员的所有传出连接,请对副本集的每个剩余成员运行 dropConnections
管理命令:
db.adminCommand( { "dropConnections" : 1, "hostAndPort" : [ "<hostname>:<port>" ] } )
将 <hostname>
替换为已删除成员的主机名,将 <port>
替换为 mongod
监听的端口。