我有一个运行2.6.5的MongoDb生产集群,我最近从两个分片迁移到了三个分片.我已经作为两个碎片运行了大约一年.每个分片都是一个3服务器副本集,我有一个分片集合.
分片集合大约为240G,使用新分片,我现在在每个分片上均匀分布了2922个块.我的制作环境似乎表现得很好.访问数据没有问题.
[注意:1461应该是从rs0和shard1移动到shard2上的2922的块数.]
我的意图是再打三个集合,所以我从一个开始,并期望它分散在整个分片中.但不 - 我最终得到了这个重复的错误:
2014-10-29T20:26:35.374 + 0000 [Balancer] moveChunk结果:{cause:{ok:0.0,errmsg:"无法接受新的块,因为之前的迁移仍有1461个删除"},
ok:0.0,错误:"moveChunk未能在数据传输中使用TO-shard:无法接受新的块,因为以前的迁移仍有1461个删除"}
2014-10-29T20:26:35.375 + 0000 [Balancer]平衡器移动失败:{原因:{ok:0.0,错误:"无法接受新块,因为以前的迁移仍有1461个删除"},
ok:0.0,错误:"moveChunk未能在数据传输中使用TO-shard:无法接受新的块,因为从以前的迁移仍有1461个删除"}从:rs0到:shard1 chunk:min:{account_id:MinKey } max:{account_id:-9218254227106808901}
通过一些研究,我认为我应该给它一些时间,因为显然它需要在移动后清理一些东西.我运行了sh.disableBalancing("collection-name")来阻止错误尝试对新集合进行分片.sh.getBalancerState和sh.isBalancerRunning一样显示true.但是,我给了它24小时,错误信息是相同的.我认为它会清除/删除它需要删除的1461中的至少一个.
提前感谢任何见解.