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-user 谷歌组关于这个主题的讨论:
http ://groups.google.com/group/mongodb-user/browse_thread/thread/6b886794a9bf170f
对于连续备份,许多用户使用副本集。(意识到在您最初的问题中,您说这不是一个选项。这包括给可能正在阅读此回复的其他社区成员。)可以隐藏副本集的成员以确保它永远不会成为主要的,永远不会被读取。有关这方面的更多信息,请参阅副本集配置文档的“成员选项”部分。
http://www.mongodb.org/display/DOCS/Replica+Set+Configuration#ReplicaSetConfiguration-Memberoptions