搜尋

首頁  >  問答  >  主體

如何安全地轉移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相關的操作,沒發現文檔中有做上述工作的函數,所以請知者指教。

附資料目錄截圖:

大家讲道理大家讲道理2839 天前767

全部回覆(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
  • 取消回覆