MongoDB分片块已经具有相同的



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

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

W 分片 [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 上或所有分片中删除?

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

最新更新