我在 mongodb 上创建了一个集合,该集合在错误的键上分片。我想删除我的收藏并重建它,以便在正确的键上进行分片。
不幸的是,执行 db.removeCollection('mycollection') 会删除数据,但不会删除一些元数据信息。
db.printShardingStatus 仍然显示我错误地用于 mycollection 的分片信息,如果我再次创建集合,我无法使用新的好密钥对其进行分片,因为它显示“已经分片”。
有什么解决办法吗?
谢谢
托马斯
我在 mongodb 上创建了一个集合,该集合在错误的键上分片。我想删除我的收藏并重建它,以便在正确的键上进行分片。
不幸的是,执行 db.removeCollection('mycollection') 会删除数据,但不会删除一些元数据信息。
db.printShardingStatus 仍然显示我错误地用于 mycollection 的分片信息,如果我再次创建集合,我无法使用新的好密钥对其进行分片,因为它显示“已经分片”。
有什么解决办法吗?
谢谢
托马斯
如果您查看此 JIRA 票证,有一个非常详细的讨论如何在 mongoDB 中安全地取消分片(并使用不同的密钥重新分片)集合:https ://jira.mongodb.org/browse/SERVER-9845
该票证中描述的方法涉及将您的数据迁移到单个分片,删除元数据,然后重新分片。如果您宁愿完全删除数据,然后重建,您应该能够跳过迁移步骤。您仍然需要重新启动 mongos 和分片服务器才能使更改生效。