Mongodb 如何替换分片副本集中的节点?

Mongodb 如何替换分片副本集中的节点?,mongodb,config,sharding,replicaset,Mongodb,Config,Sharding,Replicaset,我得到了带有两个副本集的分片mongodb设置: mongos> db.runCommand( { listShards : 1 } ) { "shards" : [ { "_id" : "rs01", "host" : "rs01/10.133.250.140:27017,10.133.250.154:27017" }, { "_id" : "rs02",

我得到了带有两个副本集的分片mongodb设置:

mongos> db.runCommand( { listShards : 1 } )
{
    "shards" : [
        {
            "_id" : "rs01",
            "host" : "rs01/10.133.250.140:27017,10.133.250.154:27017"
        },
        {
            "_id" : "rs02",
            "host" : "rs02/10.133.242.7:27017,10.133.242.8:27017"
        }
    ],
    "ok" : 1
}
节点10.133.250.140刚刚关闭,我用另一个节点替换了它(ip地址已更改)。副本集的重新配置非常简单,只需rs.remove()和rs.add()
现在我必须更新shard rs01的主机配置。正确的方法是什么?

好吧,删除问题碎片并再次添加它似乎是唯一的选择。

很多时候,您需要修改碎片的主机字符串。更改主机字符串的最简单方法是运行更新操作

连接到mongos并执行此操作-

> use config
> db.shards.update({ "_id" : "rs01"},{$set : { "host" : "rs01/newip:27017,anothernewip:27017"} })
您可能需要重新启动所有mongos


希望这有帮助:-)

节点是否仍然具有相同的IP?除此之外:此问题与SO无关。投票赞成关闭,因为它应该被要求从副本集中删除旧的,然后添加新的机器。