设为首页 收藏本站
查看: 2597|回复: 0

[经验分享] 从mongodb的存储中回收磁盘空间

[复制链接]

尚未签到

发表于 2017-12-15 21:34:09 | 显示全部楼层 |阅读模式
1. 前言
  mongodb文档中存储一节中关于磁盘空间回收的说明,简单处理、备注记于此。标号为另加,原文档见:https://docs.mongodb.com/v3.2/faq/storage/

2. Why are the files in my data directory larger than the data in my database?

2.1 ...(省略3节,关于预分配空间、oplog、journal)

2.2 Empty records
  MongoDB maintains lists of empty records in data files as it deletes documents and collections. MongoDB can reuse this space, but will not, by default, return this space to the operating system.
  To allow MongoDB to more effectively reuse the space, you can de-fragment your data. To de-fragment, use the compact command. The compact requires up to 2 gigabytes of extra disk space to run. Do not use compact if you are critically low on disk space. For more information on its behavior and other considerations, see compact.
  compact only removes fragmentation from MongoDB data files within a collection and does not return any disk space to the operating system. To return disk space to the operating system, see How do I reclaim disk space?.

2.3 按
  上文提到可通过compact命令处理空记录导致的fragmentation,说这并不会向OS返还磁盘空间;但查询文档发现如果采用的是WiredTriger存储引擎,这部分磁盘空间是被返还给OS的;另外compact的用法是:
  

db.yourCollection.runCommand("compact");  

  
db.runCommand({ compact : 'yourCollection' });
  

3. How do I reclaim disk space?
  The following provides some options to consider when reclaiming disk space.
  NOTE

  You do not need to reclaim disk space for MongoDB to reuse freed space. See Empty records for information on reuse of freed space.


3.1 repairDatabase
  You can use repairDatabase on a database to rebuilds the database, de-fragmenting the associated storage in the process.

  repairDatabase requires free disk space equal to the>  WARNING

  Do not use repairDatabase if you are critically low on disk space.


  repairDatabase will block all other operations and may take a long time to complete.

  You can only run repairDatabase on a standalone mongod instance.
  You can also run the repairDatabase operation for all databases on the server by restarting your mongod standalone instance with the --repair and --repairpath options. All databases on the server will be unavailable during this operation.

3.2 按
  运行compact命令需要至少2G的磁盘空间,repairDatabase需要的磁盘空间则与数据库大小有关,若数据库为x,则需要至少预留x+2。

3.3 ...(省略1节,关于复制集的同步)

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-424509-1-1.html 上篇帖子: MongoDB学习笔记五 下篇帖子: MongoDB学习笔记一:MongoDB的下载和安装
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表