Backup

使用 mongoexport 或 mongodump 備份?

  • May 16, 2018

對於生產備份,MongoDB 建議使用mongodump而不是mongoexport以確保數據的準確性。但是,我需要在備份之前從 MongoDB 數據庫中“清除”數據。我不知道除mongoexport之外的任何伺服器端數據清理選項。兩個問題:

  1. mongoexport是否訪問 RAM 中的 MongoDB 記憶體?它會像mongodump那樣改變 RAM 中的工作集嗎?
  2. mongodump命令有這個–query選項。“提供 JSON 文件作為查詢,可選擇限制 mongodump 輸出中包含的文件。” 是否需要查詢才能排除文件中的某些欄位?

作為對第一個問題的回答,這兩個工具(預設情況下)只會遍歷_id索引以獲取數據,然後將其寫入磁碟。所以,是的,這兩種工具都會同樣影響您的工作集,這就是為什麼我通常建議在輔助設備上執行它們(如果可能的話,最好是隱藏的輔助設備)。如果您正在處理大量數據,我將在此處的評論中回應 Stennie 並推薦其他備份方法。

對於第二個問題,我假設您正在尋找與僅轉儲特定欄位的選項mongodump等效的--fields選項。查詢選項可用於過濾結果,但不能與投影一起使用(選擇返回的欄位) - 這是在 TOOLS-28 中跟踪但尚未計劃的mongoexport功能請求。正如 Stennie 還提到的,這裡的另一個選擇是編寫一個適合您需求的自定義導出器(同樣,我仍然建議將它執行在輔助設備上以保護您的工作集)。

引用自:https://dba.stackexchange.com/questions/107549