为啥 MongoDB 将已删除的文件保留在磁盘上?
Posted
技术标签:
【中文标题】为啥 MongoDB 将已删除的文件保留在磁盘上?【英文标题】:Why MongoDB keeps deleted file on disk?为什么 MongoDB 将已删除的文件保留在磁盘上? 【发布时间】:2019-10-17 07:27:06 【问题描述】:我在使用 MongoDB 磁盘时遇到问题。我有一个应用程序并在我的服务器上使用单个 MongoDB 实例。此外,我正在处理大数据(例如,一个记录存储平均为 800MB),我正在为此存储 GridFS。过了一会儿,我发现 fs.chunks 集合大小为 110GB 并删除了所有数据 除了过去 1 个月外,使用 mongo shell。
现在 fs.chunks 集合在“MongoDB Compass”上似乎是 32GB,但 ...\MongoDBDatas\data 文件夹仍然是 110GB,我的磁盘使用量没有改变。
我能做些什么呢?
我试过 db.repairDatabase();和紧凑的命令。也重新启动了 mongo 服务器,但没有任何改变。
这是我的 mongo.cfg
systemLog:
destination: file
path: d:\HealthcarePlatform\MongoDBDatas\log\mongod.log
storage:
dbPath: d:\HealthcarePlatform\MongoDBDatas\data
net:
port: 28019
bindIp: 0.0.0.0
security:
authorization: enabled
【问题讨论】:
【参考方案1】:有时我们会删除数据库,但它并没有释放空间。所以用这个
sudo lsof +L1
【讨论】:
以上是关于为啥 MongoDB 将已删除的文件保留在磁盘上?的主要内容,如果未能解决你的问题,请参考以下文章
为啥有关MongoDB采用B树索引,以及Mysql B+树做索引