MongoDB Shard块已经具有相同的功能

时间:2018-08-24 17:04:25

标签: mongodb chunks mongodb-cluster

我们有一个配置有4个分片(A,B,C,D)的MongoDB分片。在A,B,C之后添加了碎片D。一些集合可以与D正确平衡,但是只有一个集合存在迁移方面的问题。

D日志上始终显示此消息。

  

W SHARDING [migrateThread]无法接收块[{_id:   ObjectId('5ad5586b7ee7821b48139cfb')},{_id:   收集产品的ObjectId('5ad6d2d77ee78222283cc9d5')})   因为我们已经有一个同名的UUID集合   c16daf18-9412-437b-a1ba-a9e000e694ac,与捐赠者的   UUID 25a21963-d9ba-4022-becc-648d4d39a68c。手动放下   如果该碎片包含先前的数据,则收集   产品的化身。

我了解该错误,但是我不知道该怎么做。 如果我去mongos并使用status(),则收集产品不会显示在分片D上,但是会显示在日志上相反。 我不知道,如果我连接到分片D并运行db.products.drop(),此操作是仅删除D还是所有分片?

1 个答案:

答案 0 :(得分:1)

是的,您需要直接连接到分片D并将其放到那里,如果从其他分片中删除则不会删除。然后,当平衡器再次运行时,平衡器将能够自己创建集合。不知何故,在将副本集作为分片添加之前,副本集中存在该集合。 (您也可能希望直接从分片副本集(而不是mongodump进行mongos,以防万一有想要的数据。