Utilisez mongodump et mongorestore pour sauvegarder une base de données MongoDB Atlas et la restaurer dans ApsaraDB for MongoDB. Vous pouvez exécuter ces outils sur un serveur local ou une instance ECS.
Cette rubrique prend pour exemple un serveur local.
Remarques d'utilisation
Les versions de mongodump et mongorestore doivent correspondre à celle de votre base de données MongoDB Atlas. Pour les étapes d'installation, consultez la documentation officielle Install MongoDB.
Pour connaître les versions et les moteurs de stockage pris en charge par ApsaraDB for MongoDB, consultez la section Versions and storage engines. Vérifiez la compatibilité avant de migrer des données entre différentes versions ou moteurs de stockage.
Il s'agit d'une migration complète des données. Pour garantir la cohérence des données, arrêtez les opérations d'écriture sur la base de données source avant de commencer la migration.
L'exécution de la commande
mongodumpécrase les fichiers de sauvegarde existants dans le répertoire dump. Si vous avez déjà exécuté mongodump sur la base de données source, déplacez les fichiers existants hors du répertoire dump et assurez-vous que ce dernier est vide.Exécutez mongodump et mongorestore sur un serveur où MongoDB est installé, et non depuis le shell mongo.
Autorisations requises
|
Base de données |
Autorisations requises |
|
Instance MongoDB Atlas source |
Autorisation de lecture sur la base de données source |
|
Instance ApsaraDB for MongoDB de destination |
Autorisation readWrite sur la base de données de destination |
Prérequis
Dans la console ApsaraDB for MongoDB, effectuez les étapes suivantes :
-
Créez une instance ApsaraDB for MongoDB. Pour plus d'informations, consultez les sections Create a replica set instance ou Create a sharded cluster instance.
RemarqueL'espace de stockage de l'instance ApsaraDB for MongoDB doit être supérieur à celui de l'instance MongoDB Atlas.
Pour migrer des données vers une instance de cluster fragmenté, activez d'abord le sharding. Pour plus d'informations, consultez la section Enable sharding.
-
Définissez un mot de passe de base de données pour l'instance ApsaraDB for MongoDB. Pour plus d'informations, consultez la section Reset the password.
RemarqueIgnorez cette étape si vous avez défini un mot de passe de base de données lors de la création de l'instance.
Sur le serveur local, effectuez les étapes suivantes :
-
Installez MongoDB. Pour plus d'informations, consultez la section Install MongoDB.
RemarqueCe serveur sert d'intermédiaire temporaire pour le processus de sauvegarde et de restauration et n'est plus nécessaire une fois la migration terminée.
L'espace disque disponible dans la partition du répertoire de sauvegarde doit être supérieur à l'espace de stockage utilisé par la base de données MongoDB Atlas.
Ajoutez l'adresse IP publique de votre serveur local à la liste d'autorisation de l'instance ApsaraDB for MongoDB. Pour plus d'informations, consultez la section Configure a whitelist.
Migrer les données MongoDB Atlas
Connectez-vous à la console MongoDB Atlas.
Ajoutez l'adresse IP publique de votre serveur local à la liste d'accès IP de l'instance MongoDB Atlas. Dans le volet de navigation de gauche, cliquez sur Clusters. Sous l'onglet Security, cliquez sur Network Access, puis sur + ADD IP ADDRESS dans le coin supérieur droit. Dans la boîte de dialogue Add IP Access List Entry, saisissez l'adresse IP publique de votre serveur local et cliquez sur Confirm.
Sur la page Clusters, cliquez sur le nom de votre cluster.
Sous l'onglet Command Line Tools, cliquez sur COPY à côté de la commande mongodump pour copier la commande avec les informations de connexion de votre base de données MongoDB Atlas.
-
Sur votre serveur local, sauvegardez la base de données MongoDB Atlas.
Collez la commande mongodump contenant les informations de connexion de votre base de données MongoDB Atlas.
Remplacez
<PASSWORD>par votre mot de passe de base de données et<DATABASE>par le nom de la base de données à sauvegarder.Exécutez la commande et attendez la fin de la sauvegarde.
-
Connectez-vous à la console ApsaraDB for MongoDB et récupérez l'endpoint public de votre instance ApsaraDB for MongoDB.
Pour une instance de jeu de réplicas, récupérez l'endpoint public du nœud principal. Pour plus d'informations, consultez la section Connect to a replica set instance.
Pour une instance de cluster fragmenté, récupérez l'endpoint public de n'importe quel nœud mongos. Pour plus d'informations, consultez la section Connect to a sharded cluster instance.
RemarqueVous devez demander manuellement un endpoint public avant cette étape. Pour plus d'informations, consultez la section Apply for a public endpoint.
-
Sur votre serveur local, exécutez la commande suivante pour importer les données dans l'instance ApsaraDB for MongoDB.
mongorestore --host <mongodb_host>:3717 --authenticationDatabase admin -u <username> -d <database> <database_backupfile_directory>Remarque<mongodb_host>: l'endpoint public du nœud principal de l'instance de jeu de réplicas ou d'un nœud mongos de l'instance de cluster fragmenté.<username>: le compte de base de données de l'instance ApsaraDB for MongoDB. Par exemple,test.<database>: la base de données à restaurer. Si la sauvegarde contient plusieurs bases de données, répétez cette étape pour chacune d'elles.<database_backupfile_directory>: le répertoire où se trouve le fichier de sauvegarde de la base de données.
Exemples :
Restaurez la base de données mongodbtest :
mongorestore --host dds-bp**********-pub.mongodb.rds.aliyuncs.com:3717 --authenticationDatabase admin -u test -d mongodbtest /dump/mongodbtestRestaurez la base de données test123 :
mongorestore --host dds-bp**********-pub.mongodb.rds.aliyuncs.com:3717 --authenticationDatabase admin -u test -d test123 /dump/test123 Lorsque l'invite
Enter password:s'affiche, saisissez le mot de passe de votre instance ApsaraDB for MongoDB et appuyez sur Entrée.
Une fois la restauration terminée, la base de données MongoDB Atlas est migrée avec succès vers votre instance ApsaraDB for MongoDB.