zoukankan      html  css  js  c++  java
  • mongodb系列~回收磁盘空间

    一 说明

        由于mongo版本众多,所以本文说明会进行分类汇总

    二 版本

        1 <3.2版本 官方版本 : repairDatabase确认并修复数据存储中的错误和不一致的地方,类似于linux下的文件操作命令fsck 。当数据库被意外重启或破坏时,使用repairDatabase命令来确保数据完整。

                          实际操作:压缩数据库中所有的collections,等同于分别在每个collection上进行compact命令。减少了磁盘中数据文件的总大小,并且重建了数据库中的所有索引。

                          需求  repairDatabase操作所需要磁盘的空余空间为当前数据总量再加上2G。如果当前磁盘分区空间不足,可以尝试用 –repairpath 参数指定一个空间足够的分区路径。

                          风险 : Repair过程中,其他所有操作都无法执行,直到修复完成。

                      语句命令 db.runCommand({repairDatabase :1})

     

    不仅能整理碎片还可以回收磁盘空间

         2 3.2版本 新的命令compact

                     语句命令 db.tablename.runCommand("compact");

                     风险  加集合所在DB的互斥写锁,会导致该DB上所有的读写请求都阻塞 执行的时间可能很长,跟集合的数据量相关,所以强烈建议在业务低峰期执行,避免影响业务。 适用于 WiredTiger 引擎

    三 其他方式

           1 如果只是主本身有问题,可以调整优先级,将主变成从 将从变成主 重新进行同步

           2 可以采用dump restore方式

  • 相关阅读:
    logging模块
    configparser模块
    hashlib模块
    shutil模块
    json与pickle模块
    random模块
    OS模块
    如何不使用共享内存实现windows与虚拟机中进行文件的传输
    结构体的定义方式(仅定义)
    数据结构练习之寻找顺序表中的主要元素
  • 原文地址:https://www.cnblogs.com/danhuangpai/p/14356007.html
Copyright © 2011-2022 走看看