You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MongoDB2.6.8用mongodump备份okapp库后文件远小于实际库大小问题

MongoDB备份文件远小于show dbs统计值的原因

  • show dbs统计的是磁盘占用而非实际数据大小
    MongoDB 2.6默认使用MMAPv1存储引擎,该引擎会预先分配连续的磁盘空间给数据文件,避免频繁磁盘分配带来的性能损耗。同时删除文档、触发文档移动的更新操作产生的空闲磁盘空洞,不会被立刻释放给操作系统,会被MongoDB预留复用。这两部分空间都会被计入show dbs的统计结果,但mongodump仅导出当前实际存在的有效文档,不会备份空闲空间。
  • 索引统计规则差异
    show dbs的统计值包含所有集合已构建的索引物理文件占用的空间,而mongodump仅备份索引的创建规则(存储在.metadata.json文件中),不会备份索引实体数据,索引会在mongorestore恢复时根据规则重新生成,若你的库之前存在大量大体积索引,这部分的空间差可达数GB。
  • 存储引擎额外开销被剔除
    MMAPv1为了优化性能,会为每个文档预留填充空间避免后续文档变长需要移动位置,同时存储引擎本身还有大量元数据管理开销,这些都会计入磁盘占用。但mongodump导出的是紧凑的纯BSON文档数据,不会包含这些存储层的额外开销。

你可以执行db.stats()命令验证:返回结果中的dataSize字段是实际有效数据的大小,会和你备份的7.7MB接近,fileSize字段就是数据库实际磁盘占用大小,和show dbs显示的6.497GB一致。


内容的提问来源于stack exchange,提问作者markzhu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 18:15:04