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.
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.
Rien ne fonctionne pour moi, sauf cela.
mongorestore --gzip --archive=/path/to/file.gz --db db_name
C'est parce que votre script mongodump a un --archive
drapeau.
Ensuite, vous devez l'utiliser lors de la mongorestore.