我已经建立了一个9节点的MongoDB分片群集。我需要删除其中一个节点,所以我调用了:
mongos> db.runCommand( { removeShard: "clustnode9:27017" } )
请记住,我的数据集包含大约2500万行数据,因此每个节点大约有2.7万行。
由于某种原因,排水操作需要很长时间。如果我调用的话,我可以看到它每半小时左右就会前进:
mongos> db.collection.getShardDistribution()
我可以看到我的第9个碎片正在消耗,从8.34%到8.33%等等......但它花了这么长时间。另外,我实际上需要不仅删除这一个碎片而是删除3个额外的碎片,但MongoDB不允许我在任何给定时间删除多个碎片,所以我只关心删除操作花了这么长时间时间,并寻找加快排水的方法......