详解清除MongoDB所占用的多余的磁盘空间的方法


本文整理自网络,侵删。

首先一点就是mongodb 不会释放已经占用的硬盘空间,即使drop collection也不行,除非drop database。如果一个db曾经有大量的数据一段时间后又删除的话,硬盘空间就是一个问题,如何收回被mongdodb占用的多余空间?方法有两种
1. dump & restore

mongodump -d databasename -o /path/to/dump_dir
echo 'db.dropDatabase()' | mongo <databasename>
mongorestore -d <databasename> /path/to/dump_dir

如果数据量不大,dump不需要太长时间的情况下,或者经常备份有dump文件的情况下,这种方法很简单。

2. repair database
即在mongo shell中运行

db.repairDatabase()

, 或者

db.runCommand({ repairDatabase: 1 })

, 第二种方法可以带其他几个参数

{ repairDatabase: 1,
 preserveClonedFilesOnFailure: <boolean>,
 backupOriginalFiles: <boolean> }

repairDatabase是官方文档中认为唯一可以回收硬盘空间的方法。
repairDatabase is the appropriate and the only way to reclaim disk space.
当你有多个shard的且数据量巨大时,dump & restore方法会花费巨大的时间,这时第二种方法的优势就很明显,就是分别在每个shard上运行repairDatabase,结果会快很多。

阅读剩余部分

相关阅读 >>

mongodb使用自带的命令行工具进行备份和恢复的教程

对标mongodb存储类json数据文档统计分析详解

mongodb中强大的统计框架aggregation使用实例解析

mongodb 数据类型(null字符串数字日期内嵌文档数组等)

mongodb数据库条件查询技巧总结

mongodblinux下集群搭建过程

关于mongodb索引管理-索引的创建、查看、删除操作详解

mongodb的基本安装与管理命令脚本总结

mongodb 主从复制实例讲解

mongodb基础之文档操作

更多相关阅读请进入《mongodb》频道 >>


数据库系统概念 第6版
书籍

数据库系统概念 第6版

机械工业出版社

本书主要讲述了数据模型、基于对象的数据库和XML、数据存储和查询、事务管理、体系结构等方面的内容。



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...