Mongodb can';无法接受新的数据块,因为上一次迁移中仍有1次删除

Mongodb can';无法接受新的数据块,因为上一次迁移中仍有1次删除,mongodb,sharding,chunks,Mongodb,Sharding,Chunks,我有一个运行在2.6.11中的mongodb生产集群,其中包含20个ReplicateSet。我遇到了磁盘空间问题,因为大部分块存储在一个replicatSet中。当我检查日志时,我可以看到移动块失败是因为“从以前的迁移中删除” 2015-12-28T17:13:32.164+0000[conn6504]即将记录元数据事件:{u id:“db1-2015-12-28T17:13:32-56816dbc6b0464b0a5801db8”,服务器:“db1”,客户端地址:“xx.xx.xx.xx.1

我有一个运行在2.6.11中的mongodb生产集群,其中包含20个ReplicateSet。我遇到了磁盘空间问题,因为大部分块存储在一个replicatSet中。当我检查日志时,我可以看到移动块失败是因为“从以前的迁移中删除”

2015-12-28T17:13:32.164+0000[conn6504]即将记录元数据事件:{u id:“db1-2015-12-28T17:13:32-56816dbc6b0464b0a5801db8”,服务器:“db1”,客户端地址:“xx.xx.xx.xx.11:50077”,时间:新日期(1451322812164),内容:“moveChunk.start”,ns:“通过电子邮件发送nQafExtB.reports”,详细信息:{min:{email:{email:“xxxxxxx”},max:{email:“xxxxxxx”},发件人:“shard16”,致:“shard22”} 2015-12-28T17:13:32.675+0000[conn6504]即将记录元数据事件:{u id:“db1-2015-12-28T17:13:32-56816dbc6b0464b0a5801db9”,服务器:“db1”,客户端地址:“xx.xx.xx.xx.11:50077”,时间:新日期(1451322812675),内容:“moveChunk.from”,ns:“通过电子邮件发送nQafExtB.reports”,详细信息:{min:{email:{email:“xxxxxx”},max:{email:{email:“xxxxxx”},第1步(共6步):3,第2步(共6步):314,注意:“已中止”,errmsg:“moveChunk在数据传输中未能与碎片接合:无法接受新块,因为上一次迁移仍有1次删除”}

我遵循这个答案,但不适合我。我在一个主服务器和我的所有集群主服务器上运行降压命令。我对cleanupoverned命令也这样做

这个问题有什么问题吗


提前感谢您的帮助。

您是否使用noTimeout游标?如果是,并且这些游标没有关闭,它们可以阻止迁移后数据的删除。这是最初的问题。我们看到并修复了它(我们在代码中添加了超时选项)。在这次修复之后,我对所有的主服务器都进行了降级。删除的数量减少了,但看起来仍然有一些锁定。我仔细检查了每个主日志文件,cleanupoverned命令delete none documents:conn206432]rangeDeleter从{email:MinKey}->中删除了0个用于通过电子邮件发送的文档?如果没有,您可以在每个原色上运行db.currentOp()以查找阻塞操作。不,区块迁移仍然锁定,但当我检查当前op时,它们在此db上没有活动。