MongoDB - 直接从主分片中删除文档

时间:2017-11-28 16:59:00

标签: mongodb

我的群集生产出现问题。
我们的监控无法监控磁盘空间,而这已经过了 我需要直接在主分片节点上删除部分数据 我用命令说mongod:
db.collection.remove({query})

我知道这很危险但是我现在唯一的选择是因为我不能在mongos上打开mongo shell。 现在集群运作良好,但我需要知道我的行动的真正影响。 以及如何解决。

1 个答案:

答案 0 :(得分:1)

真正的影响是您丢失了删除的数据。对数据库本身不应产生其他操作影响。在请求受影响的文档时,它应该只返回任何内容。

我确定您明白,直接删除分片(绕过mongos)不是任何建议的操作。通常,绕过mongos可能会导致群集的未定义行为,并且由此产生的问题可能会长时间处于休眠状态。在最坏的情况下,这会导致备份损坏。

话虽如此,与进入mongo目录并删除文件相比,使用dbPath shell(或驱动程序)进行删除更为可取。该行动可能导致无法恢复的数据库。

应用程序可能会感受到更直接的影响,例如:如果您的应用程序需要一个结果而它没有收到任我鼓励您测试应用程序的所有工作流程,并确认一切都按预期工作。