MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Restaurer une base de données MongoDB à l'aide de mongorestore

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.