GridFS將文件存儲在兩個集合中:fs.files和fs.chunks。
更多這方面的信息可以在GridFS的說明文件中找到: http://www.mongodb.org/display/DOCS/GridFS+Specification
兩個集合可以使用mongodump,同任何其他集合進行備份。在mongodump文檔可以在這裏找到: http://www.mongodb.org/display/DOCS/Import+Export+Tools#ImportExportTools-mongodump
從終端,這看起來像以下:
對於本演示中,我的數據庫名稱是「GridFS的」:
首先,mongodump用於備份的fs.files和fs.chunks集合到一個文件夾在我的桌面上:
$ bin/mongodump --db gridFS --collection fs.chunks --out /Desktop
connected to: 127.0.0.1
DATABASE: gridFS to /Desktop/gridFS
gridFS.fs.chunks to /Desktop/gridFS/fs.chunks.bson
3 objects
$ bin/mongodump --db gridFS --collection fs.files --out /Desktop
connected to: 127.0.0.1
DATABASE: gridFS to /Desktop/gridFS
gridFS.fs.files to /Users/mbastien/Desktop/gridfs/gridFS/fs.files.bson
3 objects
現在,mongorestore用於備份的收藏拉入一個新的(對惡魔的目的登記領)被稱爲「gridFScopy」
$ bin/mongorestore --db gridFScopy --collection fs.chunks /Desktop/gridFS/fs.chunks.bson
connected to: 127.0.0.1
Thu Jan 19 12:38:43 /Desktop/gridFS/fs.chunks.bson
Thu Jan 19 12:38:43 going into namespace [gridFScopy.fs.chunks]
3 objects found
$ bin/mongorestore --db gridFScopy --collection fs.files /Desktop/gridFS/fs.files.bson
connected to: 127.0.0.1
Thu Jan 19 12:39:37 /Desktop/gridFS/fs.files.bson
Thu Jan 19 12:39:37 going into namespace [gridFScopy.fs.files]
3 objects found
數據庫現在蒙戈shell啓動,以便還原過程可以驗證:
$ bin/mongo
MongoDB shell version: 2.0.2
connecting to: test
> use gridFScopy
switched to db gridFScopy
> show collections
fs.chunks
fs.files
system.indexes
>
館藏fs.chunks和fs.files已成功恢復新的數據庫。
您可以編寫腳本來定期對fs.files和fs.chunks集合執行mongodump。
至於增量備份,它們並不真正被MongoDB支持。一個谷歌搜索「MongoDB的增量備份」揭示了關於這個問題的一個很好的MongoDB用戶的谷歌網上論壇討論: http://groups.google.com/group/mongodb-user/browse_thread/thread/6b886794a9bf170f
對於連續起坐,很多用戶使用的副本集。 (意識到在你原來的問題中,你說這不是一種選擇,這是包括在社區的其他成員,他們可能正在閱讀這個答案。)一個副本集的成員可以隱藏起來,以確保它永遠不會成爲小學,永遠不會被讀取。有關詳細信息,請參閱副本集配置文檔的「成員選項」部分。 http://www.mongodb.org/display/DOCS/Replica+Set+Configuration#ReplicaSetConfiguration-Memberoptions
雖然MongoDB沒有任何增量備份功能,但是任何外部增量備份工作至少應該能夠看到新舊fs.files/fs.chunks並且只備份新的備份?我打算玩一下,看看。我腦海中的複製有點粗略,我討厭依賴MongoDB本身進行備份。另外理想情況下,我希望每日快照用於存檔目的。非常感謝,非常豐富。 – c00kiemonster
如果目標集合已經存在,mongorestore將遍歷每個文檔的_id並僅添加新文檔。 您可以向mongodump提供查詢,因此如果您的文檔包含「上次更新」字段或同等字段,則只能轉儲上次備份日期之後更新或添加的文檔。 您還可以讓另一個實用程序備份您的dbpath目錄。在關於備份的Mongo文檔的「啓用日誌的備份」和「關閉和備份」部分中有一些註釋。 http://www.mongodb.org/display/DOCS/Backups – Marc
這會非常方便。謝謝你的提示 – c00kiemonster