分享更有价值
被信任是一种快乐

清除MongoDB所占用的多余的磁盘空间的方法是什么

文章页正文上

这期内容当中小编将会给大家带来有关清除MongoDB所占用的多余的磁盘空间的方法是什么,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。
首先一点就是mongodb 不会释放已经占用的硬盘空间,即使drop collection也不行,除非drop database。如果一个db曾经有大量的数据一段时间后又删除的话,硬盘空间就是一个问题,如何收回被mongdodb占用的多余空间?方法有两种:

1. dump & restore

mongodump -d databasename -o /path/to/dump_dir
echo ‘db.dropDatabase()’ | mongo
mongorestore -d /path/to/dump_dir
如果数据量不大,dump不需要太长时免费主机域名间的情况下,或者经常备份有dump文件的情况下,这种方法很简单。

2. repair database

即在mongo shell中运行db.repairDatabase(), 或者
db.runCommand({ repairDatabase: 1 })
, 第二种方法可以带其他几个参数

{ repairDatabase: 1,
preserveClonedFilesOnFailure: ,
backupOriginalFiles: }
repairDatabase是官方文档中认为唯一可以回收硬盘空间的方法。

repairDatabase is the appropriate and the only way to reclaim disk space.

当你有多个shard的且数据量巨大时,dump & restore方法会花费巨大的时间,这时第二种方法的优势就很明显,就是分别在每个shard上运行repairDatabase,结果会快很多。

PS:格式化mongo shell的输出

如果数据量大的情况下,mongo shell 默认的输出很乱,几乎没法阅读。我们可以用.pretty() 来解决这样的问题:

db.collection.find().pretty()
这样的输出会漂亮很多,每个field一行,

{
“_id” : ObjectId(“5396cd3823e97923ba689ef3”),
“batch” : 66,
“category” : 4,
“cover_imgs” : [
“/post_imgs/5396cd3823e97923ba689ef3/c_2.jpg”,
“/post_imgs/5396cd3823e97923ba689ef3/c_3.jpg”,
“/post_imgs/5396cd3823e97923ba689ef3/c_4.jpg”
],
“created_at” : ISODate(“2014-06-10T09:18:06.383Z”),
“fav_count” : 0,
“host_reply_count” : 338,
“last_reply_date” : “2014-06-17 21:22:00”,
“post_date” : “2014-06-06 19:57:00”,
“referer” : “http://tieba.baidu.com/f?kw=%B9%C5%D7%B0%B5%E7%CA%D3%BE%E7”,
“reply_count” : 716,
“reuse_type” :免费主机域名 2,
“section” : “古装电视剧”,
“seq” : 27180,
“serial” : false,
“sort_index” : 0.997,
“source_site” : “贴吧”,
“updated_at” : ISODate(“2014-06-18T09:04:55.228Z”),
“visible” : true
}
{
“_id” : ObjectId(“5396c7ca23e97921fb7de8e4”),
“batch” : 74,
“category” : 4,
}
配置使其成为Default:

添加如下配置到$HOME/.mongorc.js, 如果不存在则创建。

DBQuery.prototype._prettyShell = true
这样就不需要每次使用pretty()方法了,直接db.collection.find()即可。
上述就是小编为大家分享的清除MongoDB所占用的多余的磁盘空间的方法是什么了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注云技术行业资讯频道。

相关推荐: Linux怎么用源码安装MySQL 5.7

这篇文章主要讲解了“Linux怎么用源码安装MySQL 5.7”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Linux怎么用源码安装MySQL 5.7”吧!有两种方法来使用源码安装MySQL:.使用一种标准的M…

文章页内容下
赞(0) 打赏
版权声明:本站采用知识共享、学习交流,不允许用于商业用途;文章由发布者自行承担一切责任,与本站无关。
文章页正文下
文章页评论上

云服务器、web空间可免费试用

宝塔面板主机、支持php,mysql等,SSL部署;安全高速企业专供99.999%稳定,另有高防主机、不限制内容等类型,具体可咨询QQ:360163164,Tel同微信:18905205712

主机选购导航云服务器试用

登录

找回密码

注册