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, чтобы можно было проверить восстановление:
$ 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
>
Коллекции фс.chunks и fs.files были успешно восстановлены в новой БД.
Вы можете написать скрипт для периодического выполнения mongodump для ваших коллекций fs.files и fs.chunks.
Что касается инкрементных резервных копий, они не поддерживаются MongoDB.Поиск Google по запросу «инкрементное резервное копирование mongodb» обнаруживает хорошее обсуждение групп Google пользователя mongodb на эту тему: http://groups.google.com/group/mongodb-user/browse_thread/thread/6b886794a9bf170f
Для непрерывных резервных копий многие пользователи используют набор реплик.(Понимая, что в исходном вопросе вы указали, что это не вариант. Это включено для других членов Сообщества, которые могут читать этот ответ.) Член набора реплик может быть скрыт, чтобы гарантировать, что он никогда не станетПервичный и никогда не будет прочитан.Дополнительную информацию об этом можно найти в разделе «Параметры участника» документации по настройке набора реплик.http://www.mongodb.org/display/DOCS/Replica+Set+Configuration#ReplicaSetConfiguration-Memberoptions