搜索

首页  >  问答  >  正文

如何安全转移mongodb集合的collection和index文件以腾出空间

单机环境下使用mongodb缓存爬虫抓取的网页的源码,没有复制集、分片等,使用mongodb纯粹为了取用方便并提升存储效率。
现在一个collection占用了50多G的空间,已将数据提取完毕,短期内不会用到它了,但抓取下来十分不容易,后面可能还用得到,所以不想删掉,问题是硬盘没空间了,我想把collection和index文件转移到移动硬盘上,需要时再拷回来或者将移动硬盘目录作为数据目录。但拿一个新建的测试集合测试发现,一旦将这些文件移走,mongod就无法启动了,必须再转移回来才能启动。

我的问题是:
1、如何保证将占空间的collection及其对应的index文件挪走后,不影响mongod的启动和其他collection的使用(数据目录下还有其他collection)
2、如果不是拷贝整个数据目录,只将collection和index文件拷贝到新目录,后面如果将新目录作为数据目录,是不是也无法启动
3、数据目录下的collection、index、日志、锁文件之外的文件,是不是有些是类似注册表的作用,怎么实现类似绑定、解除绑定的操作

我查看了db、collection相关的操作,没发现文档中有做上述工作的函数,所以请知者指教。

附数据目录截图:

大家讲道理大家讲道理2799 天前747

全部回复(2)我来回复

  • PHP中文网

    PHP中文网2017-05-02 09:26:50

    可以考虑这边文章所讲的两种数据迁移的方法。
    文章

    回复
    0
  • 淡淡烟草味

    淡淡烟草味2017-05-02 09:26:50

    一种简单的做法供参考:

    1、假设数据文件和相关日志放置在data文件夹;

    2、正常关闭MongoDB数据库;

    3、拷贝data文件夹到便携式磁盘;

    4、修改mongod.conf中相关参数,例如

    systemLog:
        destination: file
        path: F:\mongodb\data\log\mongod.log
    storage:
        dbPath: F:\mongodb\data\db

    5、正常启动MongoDB

    在你的描述中,可能是没有修改mongod.conf配置文件,或者没有重新设置data/log的路径吧。

    供参考。

    Love MongoDB! Have Fun!

    ------------------------华丽的分割符--------------------------------

    MongoDB中文社区线下活动缤纷,请猛戳下方:

    2017华山论剑|MongoDB中文社区

    三月份杭州站在即!!! 感兴趣的朋友火速报名!!!

    回复
    0
  • 取消回复