Backup

使用 OpsManager 或 mongodump 備份 MongoDB 的參數?

  • August 2, 2017

我有一個執行著兩個 MongoDB 節點的副本集(帶有一個仲裁器),我現在想知道最好的備份和恢復解決方案。我知道官方文件,但它沒有為每個解決方案提供足夠的優缺點。特別是,我們的團隊希望在 OpsManager-solution 或mongodump之間做出決定。我對他們中的任何一個都沒有經驗,所以你能這麼好,請幫助我更多的爭論和經驗嗎?到目前為止我收集的以下論點,如果它們不正確,請隨時編輯它們:

mongodump和 OpsManager的爭論

  • 更簡單,只是一個用於快照的命令行和另一個用於恢復的命令行
  • 不需要額外的伺服器和/或許可證,這是 OpsManager 的建議解決方案

支持 OpsManager 和反對mongodump的論點

  • 經過測試的解決方案,由開發 MongoDB 的團隊直接提供
  • 更清潔且可持續,因為它可以通過 GUI 配置並且不需要命令行訪問
  • 可以輕鬆記錄每次備份執行,這與mongodump需要自定義(電源?)shell 腳本形成對比

Stackexchange 上的相關問題沒有解決我的問題:

這可能不是一個完整的答案(因為其他人會有有效的意見),但我可以接受沒有得到信用。

支持 OpsManager 的論點:

  • 連續備份,可以恢復到最後送出的事務。
  • 您可以設置一次保留時間,而不必擔心。
  • 您可以自動製作備份的多個副本以實現冗餘。
  • 在幾分鐘內恢復非生產環境 (DEV/QA/INT)。
  • mongodump 在其輸出中排除了本地數據庫的內容,這對於分片集群和副本集來說是有問題的。
  • mongodump 僅在其備份數據中擷取數據庫中的文件,不包括索引數據。mongorestore 或 mongod 必須在恢復數據後重建索引。
  • mongodump 會對 mongod 的性能產生不利影響。如果您的數據大於系統記憶體,mongodump 會將工作集推出記憶體。
  • Mongodump 不適合大型數據庫。這是來自官方文件。

mongodump 和 mongorestore 實用程序與 BSON 數據轉儲一起使用,對於創建小型部署的備份很有用。對於彈性和無中斷備份,請使用文件系統或塊級磁碟快照功能,例如 MongoDB 備份方法文件中描述的方法。

因為 mongodump 和 mongorestore 通過與正在執行的 mongod 實例互動操作,它們會影響正在執行的數據庫的性能。這些工具不僅為正在執行的數據庫實例創建流量,還強制數據庫通過記憶體讀取所有數​​據。當 MongoDB 讀取不經常使用的數據時,它可能會驅逐更頻繁訪問的數據,從而導致數據庫正常工作負載的性能下降。

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