Si vous avez sauvegardé une base de données à l'aide de mongodump
utilitaire, vous pouvez le restaurer en utilisant le mongorestore
utilitaire.
Le mongorestore
l'utilitaire charge les données à partir d'un vidage de base de données binaire créé par mongodump
ou l'entrée standard dans un mongod
ou mongos
exemple.
Vérifiez les outils de base de données MongoDB
Le mongorestore
L'utilitaire fait partie du package MongoDB Database Tools. Les outils de base de données MongoDB sont une suite d'utilitaires de ligne de commande permettant de travailler avec MongoDB.
Si vous n'êtes pas sûr d'avoir les outils de base de données MongoDB/mongorestore
installée. Essayez d'exécuter la commande suivante dans votre terminal ou invite de commande pour vérifier :
mongorestore --version
Si vous ne l'avez pas, vous pouvez utiliser les instructions d'installation sur le site Web de MongoDB pour l'installer sur votre système.
Où exécuter les commandes ?
Vous devez exécuter mongorestore
commandes à partir de la ligne de commande de votre système (par exemple, un nouveau terminal ou une fenêtre d'invite de commande).
Ne les exécutez pas depuis le mongo
coquille.
Restaurer toutes les bases de données à partir d'un répertoire
La commande suivante restaure toutes les bases de données qui ont été sauvegardées dans le dump/
répertoire :
mongorestore dump/
Cet exemple restaure les bases de données sur l'instance locale exécutée sur le port par défaut 27017. Nous le savons, car nous n'avons fourni aucune information d'hôte, de port, d'authentification, etc.
Restaurer une base de données spécifique
Vous pouvez utiliser le --nsInclude
paramètre pour spécifier une base de données à restaurer.
Exemple :
mongorestore --nsInclude="PetHotel.*" dump/
Dans ce cas, nous avons restauré le PetHotel
base de données. Nous avons restauré toutes les collections, car nous avons utilisé un caractère générique astérisque (*
) pour spécifier toutes les collections.
Restaurer une collection spécifique
Vous pouvez également utiliser le --nsInclude
paramètre pour spécifier une collection à restaurer.
Exemple :
mongorestore --nsInclude="PetHotel.pets" dump/
Cet exemple restaure la collection d'animaux de compagnie de PetHotel
base de données. Si la base de données n'existe pas, elle est créée avec une seule collection (pets
).
Cet exemple est presque identique à l'exemple précédent, sauf qu'au lieu d'utiliser le caractère générique astérisque (*
) pour spécifier toutes les collections, nous avons explicitement spécifié la collection que nous voulons restaurer.
Renommer une collection
Vous pouvez utiliser le --nsFrom
et --nsTo
paramètres pour spécifier un nouveau nom pour la collection.
Exemple :
mongorestore --nsFrom='PetHotel.pets' --nsTo='PetHotel.pets2' dump/
Cela renomme les pets
collecte vers pets2
.
Notez que le code ci-dessus restaure également toutes les autres bases de données et collections dans le dump/
annuaire. La seule différence est que les pets
la collection est restaurée en tant que pets2
.
Si vous ne souhaitez restaurer qu'une seule collection (et la renommer dans le processus), utilisez le --nsInclude
paramètre.
Exemple :
mongorestore --nsFrom='PetHotel.pets' --nsTo='PetHotel.pets2' --nsInclude="PetHotel.pets" dump/
Renommer une base de données
Vous pouvez utiliser le même concept pour renommer une base de données. Utilisez simplement le --nsFrom
et --nsTo
paramètres pour spécifier un nouveau nom pour la base de données.
Exemple :
mongorestore --nsFrom='PetHotel.pets' --nsTo='PetHouse.pets' --nsInclude="PetHouse.*" dump/
Dans ce cas, j'ai renommé le PetHotel
base de données à PetHouse
.
Notez que le --nsInclude
paramètre spécifie le nouveau nom de la base de données. De plus, j'utilise le caractère générique astérisque (*
) afin de restaurer toutes les collections de cette base de données.
Hors collections
Vous pouvez utiliser le --nsExclude
paramètre pour spécifier une collection à exclure du processus de restauration.
Exemple :
mongorestore --nsInclude="PetHotel.*" --excludeCollection="dogs" dump/
Cet exemple restaure toutes les collections dans le PetHotel
base de données sauf pour les dogs
collecte.
Vous pouvez utiliser --nsExclude
plusieurs fois pour exclure plusieurs collections du processus de restauration.
Exemple :
mongorestore --nsInclude="PetHotel.*" --excludeCollection="dogs" --excludeCollection="employees" dump/
Contrôle d'accès/Authentification
Les exemples précédents ont été réalisés sur la machine locale en utilisant le port par défaut. Cela signifie que nous avons pu exécuter mongodump
sans spécifier des choses comme --host
, --port
, --username
, etc.
Voici un exemple qui utilise ces paramètres pour s'authentifier en tant que homer
:
mongorestore --host=myhost.example.com --port=37017 --username=homer --authenticationDatabase=admin /backups/mongodump-2020-12-30
On aurait pu aussi utiliser le --password
paramètre, mais nous ne l'avons pas fait. Si vous passez --user
mais pas --password
, vous serez invité à entrer le mot de passe.
Restauration à partir de fichiers compressés
Vous pouvez utiliser le --gzip
paramètre à restaurer à partir de fichiers compressés ou de flux de données créés par mongodump --gzip
.
Exemple :
mongorestore --gzip --nsInclude="krankykranes.*" dump3/
Mode silencieux
Vous pouvez utiliser le --quiet
paramètre pour limiter la sortie dans votre fenêtre de terminal ou d'invite de commande.
mongorestore --quiet
Sans l'utiliser, vous verrez probablement une grande liste de vues, de collections, etc. qui sont restaurées.
Mode détaillé
D'un autre côté, vous pouvez utiliser le --verbose
ou -v
paramètres à augmenter la sortie dans votre fenêtre de terminal ou d'invite de commande.
mongorestore --verbose
Vous pouvez augmenter la verbosité en répétant le -v
former plusieurs fois.
Exemple :
mongorestore -vvvv
Plus d'informations sur mongodump
Le mongorestore
accepte de nombreux autres paramètres utiles, et il existe également divers facteurs à prendre en compte lors de son utilisation dans le cadre d'une stratégie de sauvegarde et de récupération.
Voir le mongorestore
documentation sur le site Web de MongoDB pour plus d'informations.
Autres options
mongodump
et mongorestore
sont des outils simples et efficaces pour sauvegarder et restaurer de petits déploiements MongoDB, mais ne sont pas idéaux pour capturer des sauvegardes de systèmes plus importants.
Voir Méthodes de sauvegarde MongoDB sur le site Web MongoDB pour d'autres méthodes de sauvegarde et de restauration de vos bases de données MongoDB.