Cette rubrique explique comment utiliser Data Transmission Service (DTS) pour migrer les données d’un cluster fragmenté MongoDB auto-géré sur une instance ECS vers une instance ApsaraDB for MongoDB. En tirant parti de la fonctionnalité de migration incrémentielle de DTS, vous assurez une transition fluide avec un temps d’indisponibilité minimal.
Cette rubrique décrit la procédure dans l’ancienne console DTS. Pour la procédure dans la nouvelle console DTS, consultez Migrer une base de données MongoDB auto-gérée (cluster fragmenté) vers une instance ApsaraDB for MongoDB (replica set ou cluster fragmenté).
Fonctionnement
DTS migre un cluster fragmenté shard par shard. Créez une tâche de migration distincte pour chaque shard.
La distribution des données dépend de la clé de fragmentation configurée. Configurer la fragmentation des données pour optimiser les performances des shards.

Prérequis
La base de données MongoDB auto-gérée doit être en version 3.0 ou ultérieure.
-
Assurez-vous que chaque shard de l’instance de cluster fragmenté de destination dispose d’un espace de stockage suffisant.
RemarquePar exemple, si votre base de données auto-gérée sur une instance ECS comporte trois shards et que le plus volumineux utilise 500 Go de stockage, chaque shard de l’instance de cluster fragmenté de destination doit disposer de plus de 500 Go d’espace de stockage.
Remarques d’utilisation
La migration complète des données augmente la charge sur les bases de données source et de destination. Exécutez la migration pendant les heures creuses pour éviter toute interruption de service.
Lors d’une migration entre différentes versions ou moteurs de stockage, vérifiez d’abord la compatibilité dans Versions et moteurs de stockage.
DTS écrit les données de manière concurrente ; la base de données de destination peut donc utiliser 5 % à 10 % d’espace de stockage supplémentaire par rapport à la source.
Vérifiez que la destination ne contient aucun document possédant la même clé primaire (_id par défaut) que celle de la source. Si des conflits existent et que leur suppression n’affecte pas votre activité, supprimez les documents conflictuels de la destination avant la migration.
Les bases de données admin et local ne peuvent pas servir de source ou de destination.
Le cluster fragmenté MongoDB source peut comporter au maximum 10 nœuds mongos.
Facturation
|
Type de migration |
Frais de configuration de la tâche |
Frais de trafic Internet |
|
Migration complète des données |
Gratuit. |
Les données migrées hors d’Alibaba Cloud via l’Internet public sont facturées. Tarification DTS. |
|
Migration incrémentielle des données |
Facturé. .Tarification DTS |
Types de migration
-
Migration complète des données : migre toutes les données existantes des objets sélectionnés de la base de données MongoDB source vers la base de données MongoDB de destination.
RemarqueCela inclut les bases de données, les collections et les index.
-
Migration incrémentielle des données : capture et réplique les modifications de données de la source vers la destination en temps réel une fois la migration complète des données terminée.
RemarqueCela inclut la création et la suppression de bases de données, de collections et d’index.
Cela inclut également l’insertion, la suppression et la mise à jour de documents.
Autorisations requises pour les comptes de base de données
|
Source de données |
Migration complète des données |
Migration incrémentielle des données |
|
Base de données MongoDB auto-gérée sur une instance ECS |
Autorisation de lecture sur la base de données source |
Autorisation de lecture sur la base de données source, la base de données admin et la base de données local |
|
Instance ApsaraDB for MongoDB |
Autorisation readWrite sur la base de données de destination |
Autorisation readWrite sur la base de données de destination |
Pour créer des comptes et accorder des autorisations :
Instances ApsaraDB for MongoDB : consultez Gérer les utilisateurs de bases de données MongoDB à l’aide de DMS.
Bases de données MongoDB auto-gérées : consultez db.createUser().
Préparatifs
Avant de démarrer la migration des données, désactivez l’équilibreur de charge (balancer) et nettoyez les documents orphelins dans la base de données source. Pour plus d’informations, consultez Préparatifs pour la migration d’une base de données en cluster fragmenté.
Procédure
-
Connectez-vous à la console DTS
.
Dans le volet de navigation de gauche, cliquez sur Data Migration.
En haut de la page Data Migration Tasks, sélectionnez la région de l’instance ApsaraDB for MongoDB de destination.
Dans le coin supérieur droit, cliquez sur Create Data Migration Task.
-
Configurez les informations relatives à la source and destination database.
Catégorie
Paramètre
Description
Nom de la tâche
-
DTS génère automatiquement un nom de tâche. Le nom de la tâche n’a pas besoin d’être unique.
Vous pouvez modifier ce nom. Spécifiez un nom descriptif pour une identification aisée.
Base de données source
Type d’instance
Sélectionnez Self-managed Database on ECS.
Région de l’instance
Sélectionnez la région de l’instance ECS.
ID de l’instance ECS
DTS migre un cluster fragmenté en migrant chaque shard individuellement. Pour cette tâche, sélectionnez l’ID de l’instance ECS du premier shard.
Lorsque vous créez la prochaine tâche de migration, sélectionnez l’ID de l’instance ECS du deuxième shard, et ainsi de suite, jusqu’à ce que tous les shards soient migrés.
Type de base de données
Sélectionnez MongoDB.
Port
Saisissez le port de service du premier shard.
Lorsque vous créez la prochaine tâche de migration, saisissez le port de service du deuxième shard, et ainsi de suite, jusqu’à ce que tous les shards soient migrés.
Nom de la base de données
Saisissez le nom de la base de données d’authentification.
Compte de base de données
Saisissez le compte permettant de se connecter à la base de données MongoDB auto-gérée. Pour connaître les autorisations requises, consultez Autorisations requises pour les comptes de base de données.
Mot de passe de la base de données
Saisissez le mot de passe du compte de base de données.
RemarqueAprès avoir configuré les informations de la base de données source, cliquez sur Test Connectivity à côté du champ Database Password pour vérifier les paramètres. Si les paramètres sont valides, un message Passed s’affiche. Si un message Failed s’affiche, cliquez sur Diagnose à côté du message Failed et modifiez les paramètres en fonction des résultats.
Base de données de destination
Type d’instance
Sélectionnez MongoDB Instance.
Région de l’instance
Sélectionnez la région de l’instance ApsaraDB for MongoDB de destination.
ID de l’instance MongoDB
Sélectionnez l’ID de l’instance ApsaraDB for MongoDB de destination.
Nom de la base de données
Saisissez le nom de la base de données d’authentification.
Compte de base de données
Saisissez le compte permettant de se connecter à l’instance ApsaraDB for MongoDB de destination. Pour connaître les autorisations requises, consultez Autorisations requises pour les comptes de base de données.
Mot de passe de la base de données
Saisissez le mot de passe du compte de base de données.
RemarqueAprès avoir configuré les informations de la base de données de destination, cliquez sur Test Connectivity à côté du champ Database Password pour vérifier les paramètres. Si les paramètres sont valides, un message Passed s’affiche. Si un message Failed s’affiche, cliquez sur Diagnose à côté du message Failed et modifiez les paramètres en fonction des résultats.
-
Dans le coin inférieur droit de la page, cliquez sur Test Connectivity and Proceed.
RemarqueSi la base de données source ou de destination est une instance de base de données Alibaba Cloud telle qu’ApsaraDB for MongoDB ou une base de données auto-gérée sur une instance ECS, DTS ajoute automatiquement les plages d’adresses IP des serveurs DTS de la région correspondante à la liste blanche de l’instance de base de données Alibaba Cloud ou aux règles de sécurité de l’instance ECS. Vous n’avez pas besoin de les ajouter manuellement. Pour plus d’informations, consultez Plages CIDR des serveurs DTS.
Si la base de données source ou de destination est une base de données auto-gérée, l’ajout des plages d’adresses IP publiques des serveurs DTS pour autoriser l’accès peut présenter des risques de sécurité. Utilisez une méthode de connexion plus sécurisée, telle que l’utilisation de mots de passe forts, la limitation des ports autorisés ou la connexion via un réseau interne à l’aide d’Express Connect, VPN Gateway ou Smart Access Gateway.
Une fois la tâche DTS terminée ou libérée, supprimez manuellement les plages d’adresses IP des serveurs DTS.
-
Sélectionnez le type de migration et les objets.
Paramètre
Description
Type de migration
Pour effectuer uniquement une migration complète des données, sélectionnez Full Data Migration.
RemarquePour garantir la cohérence des données, n’écrivez pas de nouvelles données dans la base de données MongoDB auto-gérée pendant la migration complète des données.
Pour une migration avec un temps d’indisponibilité minimal, sélectionnez à la fois Full Data Migration et Incremental Data Migration.
Objets source
Dans la zone Source Objects, sélectionnez les objets à migrer, puis cliquez sur
pour les déplacer vers la zone Selected Objects. RemarqueVous ne pouvez pas migrer les bases de données admin et local.
La base de données config est une base de données système interne. Ne la migrez pas sauf si cela est nécessaire.
Vous pouvez sélectionner des objets au niveau de la base de données ou de la collection/fonction.
Pour renommer des objets dans la base de données de destination, utilisez la fonctionnalité de mappage des noms d’objets. Pour plus d’informations, consultez Mapper les noms de bases de données, de tables et de colonnes.
-
Une fois les paramètres précédents configurés, cliquez sur Next: Precheck and Start Task dans le coin inférieur droit.
RemarqueAvant le démarrage de la tâche de migration, DTS effectue une pré-vérification. La tâche ne démarre qu’après avoir réussi cette pré-vérification.
Si la pré-vérification échoue, cliquez sur View Details à côté de l’élément ayant échoué, corrigez le problème selon l’invite, puis relancez la pré-vérification.
-
Si un avertissement est signalé lors de la pré-vérification :
Pour les éléments de vérification qui ne peuvent pas être ignorés, cliquez sur View Details à côté de l’élément ayant échoué, corrigez le problème selon l’invite, puis relancez la pré-vérification.
Pour les éléments de vérification qui peuvent être ignorés, vous pouvez cliquer sur Confirm Alert Details, Ignore, OK, puis Precheck Again pour ignorer l’élément d’avertissement et relancer la pré-vérification. Si vous choisissez d’ignorer un avertissement, cela peut entraîner des problèmes tels qu’une incohérence des données et présenter des risques pour votre activité.
Une fois la pré-vérification réussie, cliquez sur Next.
Sur la page Purchase, choisissez une Instance Class et cochez la case Data Transmission Service (Pay-As-You-Go) Service Terms.
Cliquez sur Buy and Start pour démarrer la tâche de migration.
Répétez les étapes 4 à 11 pour créer des tâches de migration pour les shards restants.
-
Terminez les tâches de migration.
-
Migration complète des données
N’arrêtez pas la tâche manuellement, car cela pourrait entraîner une perte de données. Elle s’arrête automatiquement une fois terminée.
-
Migration incrémentielle des données
La tâche ne s’arrête pas automatiquement. Arrêtez-la manuellement.
RemarqueArrêtez la tâche pendant les heures creuses ou lorsque vous êtes prêt à basculer vers l’instance ApsaraDB for MongoDB.
Attendez que toutes les tâches de migration de shard affichent Incremental Data Migration et Undelayed. Puis, suspendez les écritures dans la base de données source pendant quelques minutes. Le statut Incremental Data Migration peut brièvement afficher une latence.
Lorsque le statut Incremental Data Migration de toutes les tâches de migration de shard revient à Undelayed, arrêtez manuellement les tâches. Sélectionnez toutes les tâches de migration, confirmez qu’elles affichent toutes Undelayed, puis cliquez sur le bouton Stop en bas de la page pour terminer la migration.
-
Basculez votre activité vers l’instance ApsaraDB for MongoDB.