文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

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

2024-04-02 19:55

关注

这期内容当中小编将会给大家带来有关清除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所占用的多余的磁盘空间的方法是什么了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注亿速云行业资讯频道。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     801人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     348人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     311人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     432人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     220人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-数据库
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯