簡體   English   中英

如何以最簡單的方式備份MongoDB GridFS數據庫?

[英]How can I backup a MongoDB GridFS database the easiest way?

就像標題所說,我有一個包含各種文件類型的MongoDB GridFS數據庫(例如,text,pdf,xls),我想以最簡單的方式備份這個數據庫。

復制不是一種選擇。 我希望以通常的數據庫方式將數據庫轉儲到文件然后備份該文件(如果需要可以用於100%以后恢復整個數據庫)。 可以用mongodump完成嗎? 我還希望備份是增量備份。 這會是GridFSmongodump的問題嗎?

最重要的是,這是最好的方式嗎? 我對MongoDB不是很熟悉, mongodumpMySQL 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM