Mongodb

Mongo 集群 - 簡單的備份問題

  • June 22, 2020

我有一個帶有三個節點的 mongo 集群,執行 2.6,但可能會升級到 3.2

在三個 mongodb 伺服器的副本集中備份數據庫的最佳方法是什麼?我應該使用mongodump --db [dbname] --out [path]嗎?

我是從主節點還是從節點備份?數據庫大概30GB左右,那麼備份其他節點的時候性能會不會下降呢?

我查看了此處此處的文件,但找不到我的答案。

你可以使用:

  1. 備份軟體(用於數據的自動快照),
  2. mongodump/mongorestore,
  3. 或將 \data\db 目錄的簡單副本複製到您的備份位置。

對於選項 2,請確保將 mongodump 與 –oplog 選項一起使用。如果您需要恢復,請使用帶有 –oplogReplay 選項的 mongorestore。

使用選項 3,停止次要成員,並將數據複製出來。或者,如果您不想停止輔助,請使用 db.fsyncLock(),備份然後使用 db.fsyncUnlock()。

輔助副本集成員是報告和備份案例的理想選擇。

參考:https ://docs.mongodb.com/v3.2/core/backups/

幾個月前,我不得不將我的 3 台伺服器的生產副本集從 3.0 升級到 3.2。但是 3.0 曾經使用 mmvpa1 儲存引擎,因此 3.2 中的文件系統與 3.0 不同。所以在遷移中我使用了 mongodump 和 mongorestore。我用我的奴隸做 mongodump。但我確實在 AWS EBS 卷中進行了每日備份。每天都會備份while機器。我認為這是最好的選擇。如果您在每日備份中保留一個副本集從屬設備,它將完成這項工作。使用 MongoDB 3.2 及更高版本,您可以從這台機器備份中恢復數據庫,並使這台伺服器成為副本集成員非常容易。

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