[英]How can I backup a MongoDB GridFS database the easiest way?
就像標題所說,我有一個包含各種文件類型的MongoDB
GridFS
數據庫(例如,text,pdf,xls),我想以最簡單的方式備份這個數據庫。
復制不是一種選擇。 我希望以通常的數據庫方式將數據庫轉儲到文件然后備份該文件(如果需要可以用於100%以后恢復整個數據庫)。 可以用mongodump
完成嗎? 我還希望備份是增量備份。 這會是GridFS
和mongodump
的問題嗎?
最重要的是,這是最好的方式嗎? 我對MongoDB
不是很熟悉, mongodump
和MySQL
mysqldump
一樣嗎? 什么是MongoDB
GridFS
和增量備份的最佳實踐?
我正在運行Linux
如果這有任何區別。
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
現在啟動Mongo 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用戶Google Groups關於這個主題的討論: http : //groups.google.com/group/mongodb-user/browse_thread/thread/6b886794a9bf170f
對於連續備份,許多用戶使用副本集。 (意識到在您的原始問題中,您聲明這不是一個選項。這包括在社區中可能正在閱讀此響應的其他成員。)可以隱藏副本集的成員以確保它永遠不會成為小學,永遠不會被讀。 有關此內容的更多信息,請參見“副本集配置”文檔的“成員選項”部分。 http://www.mongodb.org/display/DOCS/Replica+Set+Configuration#ReplicaSetConfiguration-Memberoptions
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.