小编Jef*_*ard的帖子

moveChunk未能在数据传输中使用TO-shard:因为无法接受新的块

我有一个运行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中的至少一个.

  1. 现在2.6世界中这种常见行为吗?每次我用另一个碎片培养环境时,我是否需要对所有分片集合进行处理?
  2. 知道如何进行清理吗?或者我应该在shard1上放下主要版本,这似乎是个问题?
  3. 如果我放弃主要版本,我仍然会在辅助文件上有"删除/清理"文件吗?或者这会处理事情,所以我可以开始分割一些新的集合?

提前感谢任何见解.

sharding mongodb

10
推荐指数
1
解决办法
3634
查看次数

标签 统计

mongodb ×1

sharding ×1