gpt4 book ai didi

mongodb - 可能的大错误。 "db.repairDatabase()"到底是做什么的?数据库

转载 作者:可可西里 更新时间:2023-11-01 10:40:16 26 4
gpt4 key购买 nike

我有一个拥有数百万用户的 mongodb 数据库。我想释放空间并创建了一个机器人来删除超过 6 个月的不活跃用户。

我已经看了几分钟磁盘我已经看到它有所不同,但不会释放大空间,甚至 1 MB 也不会。这很奇怪。

我读过,如果“remove” 没有简单地标记它可以被删除或覆盖,它实际上并没有删除光盘。这是真的吗?

这对我来说似乎很有意义。所以,我一直在寻找能够真正释放空间的东西......

我应用了 repairDatabase(),但我认为我做错了。一切都被阻止了!

我试过运气,我已经重启了服务器。有一个 MongoDB 服务在工作,但其状态保持在“正在启动”(而不是正在运行)。

我从其他网站了解到,repairDatabase() 需要的空间是数据库原始大小的两倍,但它没有。

我不知道,这是在做什么,这可能在几个小时、几天...

数据库丢失了吗?我想我会停止所有服务并删除数据库。

最佳答案

repairDatabase 类似于fsck。也就是说,它会尝试清除数据库中任何损坏的文档,这可能会阻止 MongoDB 启动。具体工作方式因存储引擎而异,但 repairDatabase 可能会从数据库中删除文档

MongoDB 文档页面中非常清楚地概述了该命令的详细信息(包括所有警告):https://docs.mongodb.com/manual/reference/command/repairDatabase/

我建议下次最好先阅读官方文档,而不是阅读人们在论坛上所说的内容。这些二手信息可能已经过时,或者完全错误。

话虽如此,您应该让进程一直运行直到完成,如果数据库无法启动,则执行任何故障排除。它可能需要 2 倍的数据磁盘空间,但也有可能该命令只需要时间来完成。

关于mongodb - 可能的大错误。 "db.repairDatabase()"到底是做什么的?数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46893813/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com