2014-06-26 7 views
15

Gibt es sowieso Targ gzip Mongo Dumps wie Sie mit MySQL Dumps tun können?tar gzip mongo dump wie MySQL

Zum Beispiel für mysqldumps, können Sie einen Befehl als solche schreiben:

mysqldump -u <username> --password=<password> --all-databases | gzip > all-databases.`date +%F`.gz 

Gibt es ein Äquivalent Art und Weise, das gleiche zu tun für Mongo Dumps?

Für Mongo Dumps ich diesen Befehl ausführen:

mongodump --host localhost --out /backup 

Gibt es eine Möglichkeit, nur Rohr, das auf gzip? Ich habe es versucht, aber das hat nicht funktioniert.

Irgendwelche Ideen?

+0

Wenn Sie mongodump laufen --help Sie eine Option zur Ausgabe an die Standardausgabe zu sehen, die --out ist "-". Dies sollte Ihnen erlauben, in gzip zu pipen, wie Sie es mit mysql tun. Ich habe es nicht getestet, aber einen Versuch wert. –

+0

Wenn dies nicht wie bei MySQL möglich ist, werden die Ergebnisse von mysqldump nur in gzip, native Linux-Funktionalität übertragen – Sammaye

Antwort

14

Update (Juli 2015): TOOLS-675 wird nun als abgeschlossen markiert, die für die Ablagerung auf ein Archivformat in 3.2 und gzip wird ermöglicht, eine der Optionen in den 3.2-Versionen der mongodump/mongorestore Tool. Ich werde mit den entsprechenden Dokumenten aktualisieren, sobald sie für 3,2

Original-Antwort Live sind (3,0 und unten):

Sie können dies mit einer einzigen Sammlung von mongodump zu stdout ausgeben, dann ist es mit einer Rohrleitung Komprimierungsprogramm (gzip, bzip2), aber Sie erhalten nur Daten (keine Indexinformationen) und Sie können es jetzt nicht für eine vollständige Datenbank (mehrere Sammlungen) tun. Die relevante Funktionsanforderung für diese Funktionalität ist SERVER-5190 für Upvoting/Watching-Zwecke.

Hier ist ein kurzer Probelauf durch von dem, was möglich ist, mit bzip2 in diesem Beispiel:

./mongo 
MongoDB shell version: 2.6.1 
connecting to: test 
> db.foo.find() 
{ "_id" : ObjectId("53ad8a3eb74b5ae2ff0ec93a"), "a" : 1 } 
{ "_id" : ObjectId("53ad8ba445be9c4f7bd018b4"), "a" : 2 } 
{ "_id" : ObjectId("53ad8ba645be9c4f7bd018b5"), "a" : 3 } 
{ "_id" : ObjectId("53ad8ba845be9c4f7bd018b6"), "a" : 4 } 
{ "_id" : ObjectId("53ad8baa45be9c4f7bd018b7"), "a" : 5 } 
> 
bye 
$ ./mongodump -d test -c foo -o - | bzip2 - > foo.bson.bz2 
connected to: 127.0.0.1 
$ bunzip2 foo.bson.bz2 
$ ./bsondump foo.bson 
{ "_id" : ObjectId("53ad8a3eb74b5ae2ff0ec93a"), "a" : 1 } 
{ "_id" : ObjectId("53ad8ba445be9c4f7bd018b4"), "a" : 2 } 
{ "_id" : ObjectId("53ad8ba645be9c4f7bd018b5"), "a" : 3 } 
{ "_id" : ObjectId("53ad8ba845be9c4f7bd018b6"), "a" : 4 } 
{ "_id" : ObjectId("53ad8baa45be9c4f7bd018b7"), "a" : 5 } 
5 objects found 

Vergleichen Sie das mit einer geraden mongodump (Sie erhalten die gleiche foo.bson aber die extra foo.metadata. json die Indizes beschreiben, nicht oben) enthalten:

$ ./mongodump -d test -c foo -o . 
connected to: 127.0.0.1 
2014-06-27T16:24:20.802+0100 DATABASE: test to  ./test 
2014-06-27T16:24:20.802+0100 test.foo to ./test/foo.bson 
2014-06-27T16:24:20.802+0100   5 documents 
2014-06-27T16:24:20.802+0100 Metadata for test.foo to ./test/foo.metadata.json 
$ ./bsondump test/foo.bson 
{ "_id" : ObjectId("53ad8a3eb74b5ae2ff0ec93a"), "a" : 1 } 
{ "_id" : ObjectId("53ad8ba445be9c4f7bd018b4"), "a" : 2 } 
{ "_id" : ObjectId("53ad8ba645be9c4f7bd018b5"), "a" : 3 } 
{ "_id" : ObjectId("53ad8ba845be9c4f7bd018b6"), "a" : 4 } 
{ "_id" : ObjectId("53ad8baa45be9c4f7bd018b7"), "a" : 5 } 
5 objects found 
36

3,2 Version gzip und archive Option eingeführt:

mongodump --db <yourdb> --gzip --archive=/path/to/archive

Dann können Sie mit wiederherstellen:

mongorestore --gzip --archive=/path/to/archive