2011-10-24 18 views
5

ho scaricato un database MongoDB con la seguente riga di comando mongodumpripristino di una discarica con MongoDB fallisce

mongodump -h www.myhost.com -u myusername -p mypassword -d mydb > dump.bson 

E sto cercando di ripristinare il dump sul mio server locale:

mongorestore -h localhost -d mydb dump.bson 

Purtroppo non riesce con il seguente errore:

assertion: 10264 invalid object size: 1096040772 

qualcuno sa che cosa potrebbe causare questo errore?
Sulla versione entrambi i server di Mongo è 1.8.3

Grazie

+0

Sono entrambi sistemi a 32/64 bit? Potrebbe anche aiutare a riparare il db originale prima di scaricarlo. – zulkamal

+0

il server locale è 64 bit ma il telecomando, non lo so ancora in realtà. Altrimenti, ho provato repairDatabase() ma sill lo stesso errore ... – PierrOz

+0

Se sono gli stessi bit allora è probabilmente meglio chiedere sulla mailing list mongodb. Ho avuto questo errore una volta su una piccola collezione e la riparazione ha funzionato. – zulkamal

risposta

6

Perché prima uscita stringa dal mongodump è "il blocco a livello db attivata: 0"

È necessario per fare questo

 
tail -n+2 dump.bson > dump_fix.bson 
mongorestore -h localhost -d mydb dump_fix.bson 
+0

interessante! Farò un tentativo, thw for the tip – PierrOz

+0

Nella nuova versione di mongo (2.1 stable) questo deve essere corretto. Vedere https://github.com/mongodb/mongo/pull/204 – azat

+0

ha funzionato per me! Grazie! – jsh

6

scusa il mio inglese: P questo è accaduto a me quando ho fatto di esportazione con mongoexport e si tenta di importare con mongorestore: D il mio errore! ho dovuto usare mongoimport. Ricorda: mongoexport/mongoimport, e mongodump/mongorestore

Spero che questo sia utile a qualcuno: P

+0

Anche questo è stato un errore stasera! –

1

Ho anche riscontrato questo problema. E alla fine ho scoperto che questo problema era causato dall'utilizzo del comando mongodump in modo sbagliato.

+0

Ciao @zwalker. Sarebbe probabilmente una buona idea dirci quale comando e cosa hai fatto per risolverlo :) –

+0

Concordo con wutg @TarynEast. –

0

ben utilizzare mongo ripristino invece di mongodump

0

Questo non è spiegato molto bene da nessuna parte che ho trovato, ma ho trovato una soluzione che ha funzionato.

Ho scaricato un file .tgz da mongolab, che conteneva file .bson e .json. Ho creato una cartella ~/dump sul mio mac. Ho copiato tutti quei file .son e .json nella cartella ~/dump, quindi ho avuto ~/dump/users.bson per esempio.

ho eseguito questo comando nel terminale:

mongorestore -h 127.0.0.1 -db <the_db_name_on_server_this_backup_is_from> 

E 'importata in pochi secondi. Sono sicuro che ci sono altri modi/opzioni, ma questo è ciò che ha funzionato per me.