Backup
使用 OpsManager 或 mongodump 備份 MongoDB 的參數?
我有一個執行著兩個 MongoDB 節點的副本集(帶有一個仲裁器),我現在想知道最好的備份和恢復解決方案。我知道官方文件,但它沒有為每個解決方案提供足夠的優缺點。特別是,我們的團隊希望在 OpsManager-solution 或mongodump之間做出決定。我對他們中的任何一個都沒有經驗,所以你能這麼好,請幫助我更多的爭論和經驗嗎?到目前為止我收集的以下論點,如果它們不正確,請隨時編輯它們:
mongodump和 OpsManager的爭論
- 更簡單,只是一個用於快照的命令行和另一個用於恢復的命令行
- 不需要額外的伺服器和/或許可證,這是 OpsManager 的建議解決方案
支持 OpsManager 和反對mongodump的論點
- 經過測試的解決方案,由開發 MongoDB 的團隊直接提供
- 更清潔且可持續,因為它可以通過 GUI 配置並且不需要命令行訪問
- 可以輕鬆記錄每次備份執行,這與mongodump需要自定義(電源?)shell 腳本形成對比
Stackexchange 上的相關問題沒有解決我的問題:
- https://stackoverflow.com/questions/22555280/best-way-to-make-hot-backup-mongodbtokumx-database-instance
- https://stackoverflow.com/questions/31502601/how-should-i-backup-mongodb-on-digitalocean
- https://stackoverflow.com/questions/39169209/backup-mongodb-data
- https://stackoverflow.com/questions/17458124/how-to-get-a-consistent-mongodb-backup-for-a-single-node-setup
- 使用 mongoexport 或 mongodump 備份?
這可能不是一個完整的答案(因為其他人會有有效的意見),但我可以接受沒有得到信用。
支持 OpsManager 的論點:
- 連續備份,可以恢復到最後送出的事務。
- 您可以設置一次保留時間,而不必擔心。
- 您可以自動製作備份的多個副本以實現冗餘。
- 在幾分鐘內恢復非生產環境 (DEV/QA/INT)。
- mongodump 在其輸出中排除了本地數據庫的內容,這對於分片集群和副本集來說是有問題的。
- mongodump 僅在其備份數據中擷取數據庫中的文件,不包括索引數據。mongorestore 或 mongod 必須在恢復數據後重建索引。
- mongodump 會對 mongod 的性能產生不利影響。如果您的數據大於系統記憶體,mongodump 會將工作集推出記憶體。
- Mongodump 不適合大型數據庫。這是來自官方文件。
mongodump 和 mongorestore 實用程序與 BSON 數據轉儲一起使用,對於創建小型部署的備份很有用。對於彈性和無中斷備份,請使用文件系統或塊級磁碟快照功能,例如 MongoDB 備份方法文件中描述的方法。
因為 mongodump 和 mongorestore 通過與正在執行的 mongod 實例互動操作,它們會影響正在執行的數據庫的性能。這些工具不僅為正在執行的數據庫實例創建流量,還強制數據庫通過記憶體讀取所有數據。當 MongoDB 讀取不經常使用的數據時,它可能會驅逐更頻繁訪問的數據,從而導致數據庫正常工作負載的性能下降。