web-dev-qa-db-fra.com

Comment restaurer à partir d'une sauvegarde .gz avec un nouveau nom de base de données en utilisant mongorestore r3.2.9?

J'essaie de sauvegarder/restaurer la base de données mongodb vers/à partir de fichiers .gz comme exemple de script ici

#01 create .gz backup - ok for r3.2.9 and r3.4.10 
mongodump --db ${DB_NAME} --gzip --archive=${BACKUP_FILE_GZ}

#02 restore from .gz file - NOT ok for r3.2.9
mongorestore --gzip --archive=${BACKUP_FILE_GZ} --nsFrom "${DB_NAME}.*" --nsTo "${DB_NAME_RESTORE}.*"

Étape 01, c'est-à-dire que la sauvegarde est bonne pour les deux versions de mongodb r3.2.9 et r3.4.10; bien que l'étape 02 ne fonctionne PAS pour r3.2.9

Comment puis-je obtenir mongorestore version r3.2.9 pour restaurer à partir du fichier .gz et pouvoir renommer la base de données?

p.s.

Nous avons la solution ici mais cela nécessite que la sauvegarde soit un dossier; mes fichiers de sauvegarde sont énormes, c'est-à-dire 1 Go-2 Go, donc l'extraction prend trop de temps.

7
Nam G VU

Avec 3.2.x, vous ne pouvez pas utiliser --nsFrom ou --nsTo paramètres. Cette paire de commandes devrait fonctionner dans toutes les versions:

mongodump --db ${DB_NAME} --gzip -o ${BACKUP_FILE_GZ}

mongorestore --gzip --db "${DB_NAME_RESTORE}" ${BACKUP_FILE_GZ}/${DB_NAME}

Maintenant, vous obtenez un répertoire avec des fichiers compressés et vous pouvez restaurer toutes les collections (ou une seule) dans une base de données différente.

9
JJussi

Rien ne fonctionne pour moi, sauf cela.

mongorestore --gzip --archive=/path/to/file.gz --db db_name
9
Siraj Alam

C'est parce que votre script mongodump a un --archive drapeau.

Ensuite, vous devez l'utiliser lors de la mongorestore.

3
Jorge Lopez