標籤:http ar sp 檔案 資料 on log ad bs
翻譯自 http://docs.mongodb.org/manual/core/backups/
有以下幾種方法來備份MongoDB群集:
- 通過複製底層資料檔案來備份
- 通過mongodump來備份
- 通過MMS (MMS:MongoDB Management Service)雲備份
- 通過MMS On Prem 備份軟體備份
1. 通過複製底層資料檔案來備份
如果存放裝置支援按時間點產生快照(snapshot),你可以用這些快照來建立mongodb的備份。比如Amazon的EBS儲存系統支援EC2的快照。在Linux上LVM Manager能夠產生快照。
如果Mongodb正在運行,要得到一個正確的快照的話,MongoDB必須開啟日誌功能,並且記錄檔和mongoDB的資料檔案再同一個邏輯卷(logical volume)上。如果不開啟日誌(journaling)功能,則無法保證得到的快照裡的資料的一致性。
對於分區系統(sharded system), 你必須關閉balancer並且在同一時間擷取每個shard和每個config server的snapshot。
你也可以用cp, rsync或者其它工具去拷貝檔案。但是拷貝多個檔案不是一個原子型操作,你必須在拷貝之前停止所有寫操作,否則的話可能會使拷貝的資料處於不一致的狀態。
2. mongodump
通過拷貝底層檔案不支援複集(replica set)的時間點復原(point in time recovery),並且很難去管理大型的分區群集。另外,這些拷貝很大,因為它們包含了索引以及底層的Padding和片段。而mongodump則能產生更小的備份。
mongodump工具從mongodb資料庫中讀取資料並產生bson檔案。mongorestore則能夠將這些資料恢複到mongodb資料庫。mongodump對小型的資料庫是非常有效工具,對大型的資料庫系統則不是很理想。
mongodump和mongorestore能夠在mongod進程啟動並執行時候操作,並且能夠操作底層的資料檔案。
mongodump不會備份索引檔案,所以恢複資料庫後需要重建index。
用mongodump和mongorestore的具體操作詳見 http://docs.mongodb.org/manual/tutorial/backup-with-mongodump/
MongoDB 備份方法