Utilisez les outils mongodump et mongorestore pour effectuer une migration complète hors ligne d'une base de données MongoDB autogérée vers une instance de cluster fragmenté ApsaraDB for MongoDB. Cette méthode impose l'arrêt des écritures pendant la migration et convient aux environnements tolérant une brève interruption de service.
Pour les migrations nécessitant des écritures continues et aucune interruption de service, privilégiez le service Data Transmission Service (DTS). Consultez la rubrique Migrer des données d'une base de données MongoDB autogérée utilisant l'architecture de cluster fragmenté vers ApsaraDB for MongoDB à l'aide de DTS .
Prérequis
Avant de commencer, vérifiez que :
Les outils
mongodumpetmongorestoresont installés dans la même version que vos bases de données MongoDB autogérées. Consultez la page Install MongoDB pour les instructions d'installation.L'instance de cluster fragmenté de destination dispose d'une capacité de stockage supérieure à la taille des données de vos bases de données autogérées. Si la capacité est insuffisante, mettez à niveau l'instance avant de poursuivre.
Vous pouvez exécutermongodumpetmongorestoresur le même serveur que vos bases de données autogérées ou sur un serveur distinct.
Contraintes de migration
Cette migration est complète. Arrêtez toutes les écritures sur les bases de données autogérées avant la migration afin de garantir la cohérence des données.
Si le dossier
dumpcontient déjà des fichiers issus d'une exécution précédente, déplacez-les d'abord vers un autre répertoire. L'outilmongodumpécrase les fichiers existants dans le dossierdump.Exécutez
mongodumpetmongorestoredepuis un shell système, et non depuis le shell mongo.
Étape 1 : Sauvegarder les bases de données MongoDB autogérées
Sur le serveur hébergeant vos bases de données autogérées, exécutez la commande suivante :
mongodump --host <mongodb_host> --port <port> -u <username> --authenticationDatabase <database>
| Paramètre | Description | Valeur par défaut |
|---|---|---|
<mongodb_host> |
Adresse du serveur hébergeant les bases de données autogérées | 127.0.0.1 |
<port> |
Port de service des bases de données autogérées | 27017 |
<username> |
Compte utilisé pour se connecter à la base de données | — |
<database> |
Base de données d'authentification du compte | — |
Exemple :
mongodump --host 127.0.0.1 --port 27017 -u test --authenticationDatabase admin
Lorsque l'invite Enter password: s'affiche, saisissez le mot de passe de la base de données et appuyez sur Entrée. La sauvegarde se lance et enregistre les données dans le dossier dump de votre répertoire actuel.
Étape 2 : (Facultatif) Configurer le sharding
Sans configuration du sharding, toutes les données sont écrites uniquement sur le shard principal, laissant les autres shards inutilisés. Pour répartir les données entre les shards, configurez le sharding avant ou après la migration.
Créez les bases de données et les collections requises dans l'instance de cluster fragmenté de destination avant de migrer les données. Vous pouvez configurer le sharding avant ou après la migration.
Pour connaître les étapes de configuration, consultez la rubrique Configurer le sharding pour optimiser les performances des shards.
Étape 3 : Restaurer les données dans l'instance de cluster fragmenté de destination
3,1 Obtenir la chaîne de connexion mongos
Récupérez la chaîne de connexion publique ou interne d'un nœud mongos de votre instance de cluster fragmenté de destination. Consultez la rubrique Présentation des connexions aux instances de cluster fragmenté.
Les endpoints publics ne sont pas activés par défaut. Pour utiliser une connexion publique, vous devez d'abord demander un endpoint public .
3,2 Ajouter l'adresse IP de votre serveur à la liste d'autorisation
Ajoutez l'adresse IP du serveur exécutant mongorestore à la liste d'autorisation de votre instance de cluster fragmenté de destination. Consultez la rubrique Configurer une liste d'autorisation pour une instance.
Réseau interne : Ajoutez l'adresse IP privée de l'instance ECS hébergeant vos bases de données autogérées.
Internet : Ajoutez l'adresse IP publique du serveur hébergeant vos bases de données autogérées.
3,3 Restaurer la sauvegarde dans l'instance de destination
Exécutez la commande suivante pour restaurer tous les fichiers de sauvegarde dans l'instance de cluster fragmenté de destination :
mongorestore --host <Mongos_host> -u <username> --authenticationDatabase <database> <backup_directory>
| Paramètre | Description | Valeur par défaut |
|---|---|---|
<Mongos_host> |
Chaîne de connexion de n'importe quel nœud mongos de l'instance ApsaraDB for MongoDB | — |
<username> |
Compte utilisé pour se connecter à l'instance de destination (le compte initial est root) |
— |
<database> |
Base de données d'authentification du compte (utilisez admin pour le compte root) |
— |
<backup_directory> |
Répertoire contenant les fichiers de sauvegarde | dump |
Exemple (compte : test, base de données d'authentification : admin) :
mongorestore --host s-bp19f409d7512****-pub.mongodb.rds.aliyuncs.com:3717 -u test --authenticationDatabase admin dump
Lorsque l'invite Enter password: s'affiche, saisissez le mot de passe. Les caractères sont masqués lors de la saisie.
Étapes suivantes
Une fois la restauration terminée, redirigez le trafic de votre application vers l'instance de cluster fragmenté de destination. Planifiez ce basculement pendant les heures creuses afin de minimiser l'impact sur vos utilisateurs.
Pour obtenir un aperçu des options de migration et de synchronisation disponibles, consultez la rubrique Migration et synchronisation des données.