不停机下,mongodb数据库碎片如何整理?

查看:99
本文介绍了不停机下,mongodb数据库碎片如何整理?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

我将mongo里面大量多余的数据都删除后,发现内存和文件并没有收缩,仍然占用大量内存和硬盘,性能变化不大,请问,mongodb怎么进行碎片整理?

解决方案

什么版本的MongoDB,什么引擎?
3.2以上的WT引擎可以使用Compact来释放空间,之前的版本无论是WT还是MMAPv1都只能通过重新同步复制集的方式释放空间。
问题是,生产环境一般来说没有必要释放,因为早晚还会占回来,而且空闲的空间反正也还会重用,如果不是真的缺那点空间,就别去释放了。
至于是不是停机的问题,不止是这个问题,大部分时候都应该考虑复制集来解决,多个结点并行运行就是为了不停机准备的,拿掉一个下来做维护不会有多大的问题,拿主结点的时候可能会有几秒钟不可写而已。

理论上说回收磁盘空间对性能不会有任何有益的影响。但是在3.0.6和3.0.7所使用的WiredTiger引擎上发生过一个bug,在大量删除文档时BTree会有错误的平衡从而导致性能严重下降。详细情况请参考JIRA Ticket SERVER-21063

这篇关于不停机下,mongodb数据库碎片如何整理?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆