GridFS przechowuje pliki w dwóch kolekcjach: fs.files i fs.chunks.
Więcej informacji na ten temat można znaleźć w dokumencie GridFS Specyfikacja: http://www.mongodb.org/display/DOCS/GridFS+Specification
Oba zbiory mogą być wspierane za pomocą mongodump, tak samo jak każdy inny kolekcji. Dokumentacja na mongodump można znaleźć tutaj: http://www.mongodb.org/display/DOCS/Import+Export+Tools#ImportExportTools-mongodump
z terminala, będzie to wyglądać mniej więcej tak:
Na tej demonstracji, nazywam dB jest „gridFS”:
pierwsze, mongodump służy do OBEJRZEĆ fs.files i fs.chunks zbiory do folderu na pulpicie:
$ 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
teraz mongorestore służy do wyciągania kopii zapasowych zbiorów do nowego (dla celów demonów tracja) bazy danych o nazwie „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
Teraz Mongo shell jest uruchamiany, tak aby przywrócić można zweryfikować:
$ 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
>
zbiorach fs.chunks i fs.files zostały pomyślnie przywrócone nowy DB.
Możesz napisać skrypt, aby okresowo wykonywać mongodump na kolekcjach fs.files i fs.chunks.
Jeśli chodzi o przyrostowe kopie zapasowe, nie są one obsługiwane przez MongoDB. Wyszukiwarka Google dla „MongoDB przyrostowych kopii zapasowych” ujawnia dobry MongoDB-user Google Groups dyskusję na ten temat: http://groups.google.com/group/mongodb-user/browse_thread/thread/6b886794a9bf170f
Dla ciągłych kopii zapasowych, wielu użytkowników korzysta z zestawu replik. (Zdawszy sobie sprawę, że w pierwotnym pytaniu stwierdziliście, że nie jest to opcja. Jest to uwzględnione dla innych członków społeczności, którzy mogą czytać tę odpowiedź.) Członek zestawu replik może zostać ukryty, aby upewnić się, że nigdy nie będzie Główny i nigdy nie będzie czytany. Więcej informacji na ten temat można znaleźć w sekcji "Opcje członkowskie" w dokumentacji konfiguracji zestawu replik. http://www.mongodb.org/display/DOCS/Replica+Set+Configuration#ReplicaSetConfiguration-Memberoptions
Mimo że MongoDB nie ma żadnych przyrostowych możliwości tworzenia kopii zapasowych, każde zewnętrzne przyrostowe zadanie kopii zapasowej powinno co najmniej być w stanie zobaczyć, że istnieją stare i nowe pliki fs.files/fs.chunks i tylko tworzyć nowe kopie zapasowe? Zamierzam trochę się z tym pobawić. Replikacja w moim umyśle jest trochę pobieżna, nie chciałbym być zależny od MongoDB dla kopii zapasowych. A do tego najlepiej chciałbym zrobić codzienną migawkę do celów archiwizacji. Bardzo dziękuję, bardzo informacyjny. – c00kiemonster
Jeśli zbiór docelowy już istnieje, mongorestore przejdzie przez _id każdego dokumentu i doda tylko nowe dokumenty. Możesz dostarczyć zapytanie do mongodump, więc jeśli twoje dokumenty zawierają pole "ostatnio zaktualizowane" lub równoważne, możesz zrzucić tylko te dokumenty, które zostały zaktualizowane lub dodane po dacie ostatniej kopii zapasowej. Możesz także użyć innego narzędzia, aby wykonać kopię zapasową katalogu dbpath. Jest kilka uwag na ten temat w sekcjach "Kopie zapasowe z włączonym rejestrowaniem" i "Zamykanie i tworzenie kopii zapasowych" dokumentacji Mongo na temat kopii zapasowych. http://www.mongodb.org/display/DOCS/Backups – Marc
To byłoby bardzo przydatne. Dzięki za wskazówkę – c00kiemonster