如果数据量不大,dump不需要太长时间的情况下,或者经常备份有dump文件的情况下,这种方法很简单。
2. repair database 即在mongo shell中运行
, 或者
, 第二种方法可以带其他几个参数
repairDatabase是官方文档中认为唯一可以回收硬盘空间的方法。 repairDatabase is the appropriate and the only way to reclaim disk space. 当你有多个shard的且数据量巨大时,dump & restore方法会花费巨大的时间,这时第二种方法的优势就很明显,就是分别在每个shard上运行repairDatabase,结果会快很多。
PS:格式化mongo shell的输出 如果数据量大的情况下,mongo shell 默认的输出很乱,几乎没法阅读。我们可以用.pretty() 来解决这样的问题:
这样的输出会漂亮很多,每个field一行,
配置使其成为Default: 添加如下配置到$HOME/.mongorc.js, 如果不存在则创建。
这样就不需要每次使用pretty()方法了,直接db.collection.find()即可。