Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Cet article vous aide à planifier et à exécuter une migration de MongoDB vers Azure DocumentDB. Il couvre les outils de migration disponibles, les phases clés d’une migration et les meilleures pratiques pour réduire les risques et réduire les temps d’arrêt.
Que vous migrez à partir d’un serveur MongoDB local, d’une machine virtuelle hébergée dans le cloud ou d’un service MongoDB managé, des options de migration, des conseils et des meilleures pratiques de cet article s’appliquent.
Phases de migration clés
Une migration réussie suit ces phases distinctes. Chaque phase a des objectifs et des critères de réussite spécifiques.
1. Évaluer
Exécutez une analyse automatisée de votre base de données MongoDB source à l’aide de l’extension de migration Azure DocumentDB pour identifier les fonctionnalités, commandes, syntaxe de requête et types d’index non pris en charge. L’évaluation fournit également une vue d’ensemble de la version, de la licence, du type d’instance et des métriques de base de données et de collecte MongoDB. Utilisez ces résultats pour planifier les modifications de schéma et identifier toute refactorisation requise avant la migration.
Conseil / Astuce
Nous vous recommandons de consulter en détail les fonctionnalités et la syntaxe MQL (MongoDB Query Language) prises en charge et d’effectuer une preuve de concept avant la migration réelle.
2. Préparer
Analysez le rapport d’évaluation et mesurez le TPS source (transactions par seconde). Exécutez des migrations d’essai sur des données représentatives pour établir le niveau de calcul cible, le niveau de stockage et le nombre de partitions. Effectuez des tests de performances pour vous assurer que la configuration cible répond à vos besoins.
3. Affiner
Préparez des collections cibles avec des clés de fragment et des index appropriés qui s'alignent sur vos modèles de requête de production. Si vous utilisez plusieurs fragments, décidez comment distribuer les collections entre les fragments pour équilibrer la charge et réduire les opérations inter-fragments.
4. Migrer
Exécutez la tâche de migration pour déplacer des données en mode hors connexion ou en mode en ligne :
- Migration hors connexion : prend un instantané de la source au début et la copie en bloc sur la cible. Toutes les données ajoutées, mises à jour ou supprimées sur la source après la création de l’instantané ne sont pas copiées. Le temps d’arrêt requis dépend du temps nécessaire pour la copie en bloc.
- Migration en ligne : effectue la même copie en bloc que hors connexion, mais surveille également le flux de modification tout au long du processus. Les modifications apportées lors de la migration sont répliquées vers la cible, de sorte que le temps d’arrêt de l’application est minimal. Nécessite un flux de modification et un oplog suffisamment volumineux sur la source.
Conseil / Astuce
Pour les migrations en ligne, vérifiez que le flux de modification est activé et que l’oplog est dimensionné correctement sur votre mongoDB source pour capturer toutes les modifications pendant la fenêtre de migration.
Pour obtenir les outils disponibles, consultez Outils de migration.
5. Valider
Vérifiez que toutes les données ont été copiées, y compris les dernières mises à jour. Comparez les nombres de documents, exécutez la validation basée sur des exemples et vérifiez que les index et les structures de données correspondent aux attentes sur la cible. Utilisez des scripts automatisés pour rendre la validation reproductible et cohérente.
6. Basculement
Déplacez le trafic de lecture vers la cible et vérifiez qu’il n’existe aucun problème fonctionnel ou de performances. Une fois la validation de lecture réussie, déplacez le trafic d’écriture vers la cible. Surveillez attentivement les anomalies pendant la fenêtre de basculement.
Outils de migration
Les outils décrits dans cet article vous aident à migrer vos charges de travail MongoDB à partir des sources suivantes :
- Machine virtuelle MongoDB
- MongoDB Atlas
- AWS DocumentDB
Extension de migration DocumentDB Azure
Créez et gérez vos travaux de migration dans Visual Studio Code avec l'extension de migration Azure DocumentDB (préversion publique) — une solution conçue pour la simplicité, la sécurité et zéro temps d'arrêt.
Cet outil fournit des instructions claires, étape par étape, pour vous aider à migrer des charges de travail sans interruption du service. Vous pouvez:
- Sélectionner des bases de données et des collections spécifiques pour la migration
- Effectuer toutes les étapes dans l'interface familière de VS Code
- Garantir la connectivité sécurisée tout au long du processus
- Profitez de zéro coût pour l’utilisation de l’extension
Avec Azure extension de migration DocumentDB, vous pouvez simplifier votre parcours de migration tout en conservant le contrôle et la sécurité, sans infrastructure ou complexité supplémentaire.
Utilitaire d’application web (en ligne)
Simplifiez votre migration vers Azure DocumentDB avec MongoMigrationwebBasedUtility un outil conçu pour l’efficacité, la fiabilité et la facilité d’utilisation. Le référentiel fournit des instructions détaillées et étape par étape pour la migration de vos charges. Cet outil offre une expérience transparente pour les migrations de données en ligne et hors connexion. Le processus est convivial, nécessitant uniquement les détails source et cible à fournir. Il vous permet de migrer facilement vos collections MongoDB tout en conservant le contrôle, la sécurité et l’évolutivité, en déverrouillant le plein potentiel de Azure DocumentDB.
Les principales fonctionnalités sont les suivantes :
- Prend en charge le déploiement privé au sein de votre réseau virtuel pour une sécurité renforcée
- Fonctionnalités de reprise automatique en cas de perte de connexion ou d’erreurs temporaires
- Interface conviviale
- Accès au code source C# sur GitHub
L’outil prend en charge les options de déploiement flexibles et fonctionne indépendamment sans dépendances sur d’autres ressources Azure. En outre, il offre des performances évolutives avec des plans tarifaires Azure Web App personnalisables.
Outils MongoDB natifs (hors connexion)
Vous pouvez également utiliser les outils MongoDB natifs tels que mongodump/mongorestore, mongoexport/mongoimport pour migrer des jeux de données hors connexion (sans répliquer les modifications actives) vers Azure offre DocumentDB.
| Scénario | Outil natif MongoDB |
|---|---|
| Déplacer un sous-ensemble de données de base de données (selon JSON/CSV) | mongoexport/mongoimport |
| Déplacer une base de données entière (basée sur BSON) | mongodump/mongorestore |
-
mongoexport/mongoimport est la meilleure paire d’outils de migration pour la migration d’un sous-ensemble de votre base de données MongoDB.
- mongoexport exporte vos données existantes vers un fichier JSON ou CSV lisible par l'homme. mongoexport accepte un argument qui spécifie le sous-ensemble de vos données existantes à exporter.
- mongoimport ouvre un fichier JSON ou CSV et insère le contenu dans l’instance de base de données cible (Azure DocumentDB dans ce cas).)
- JSON et CSV ne sont pas un format compact ; vous pouvez entraîner des frais réseau excédentaires en tant que mongoimport envoie des données à Azure DocumentDB.
-
mongodump/mongorestore est la meilleure paire d’outils de migration pour la migration de l’ensemble de votre base de données MongoDB. Le format BSON compact utilise plus efficacement les ressources réseau, car les données sont insérées dans Azure DocumentDB.
- mongodump exporte vos données existantes sous la forme d’un fichier BSON.
- mongorestore importe votre vidage de fichier BSON dans Azure DocumentDB.
Note
Les outils natifs MongoDB permettent de déplacer des données aussi rapidement que le matériel hôte le permet.
Meilleures pratiques de migration
Utilisez ces meilleures pratiques pour réduire les risques, estimer la capacité plus précisément, améliorer la vitesse de migration et exécuter le basculement en toute sécurité.
Réduire les défaillances
Utilisez des mots de passe encodés par URL dans les chaînes de connexion. Les caractères spéciaux tels que
@,#et:peuvent interrompre l’analyse lorsqu’ils ne sont pas encodés. L’encodage d’URL permet d’éviter les échecs de connexion pendant les exécutions d’évaluation et de migration.Exécutez une évaluation de prémigration avant la migration. L’évaluation vous aide à identifier les fonctionnalités non prises en charge, les lacunes de compatibilité et les bloqueurs potentiels au début. Résolvez les constats avant la migration pour réduire les retouches pendant la transition.
Pratiquez la migration et le basculement avant la production. Exécutez une ou plusieurs migrations de répétition dans un environnement hors production. La pratique améliore la précision du minutage, la préparation de l’équipe et la confiance pendant le basculement de production.
Dimensionner l’infrastructure avec précision
Exécutez une migration d’évaluation sur un jeu de données petit mais représentatif. Utilisez la version d’évaluation pour capturer le débit réaliste, la latence et la consommation des ressources. Un échantillon représentatif donne de meilleures estimations que les données de test synthétiques.
Extrapoler les résultats de l’essai pour estimer le niveau de calcul, le niveau de stockage et le nombre de partitions. Utilisez les métriques d’essai observées pour projeter les besoins de dimensionnement final en fonction de votre volume de jeu de données complet. Revisitez l’estimation si votre distribution de données de production diffère de l’exemple.
Utilisez un nombre, une taille et une structure de documents représentatifs avec des paramètres similaires à ceux d'un environnement de production. Faire correspondre les paramètres d'indexation et de partitionnement de production lors de l'essai pour éviter de sous-estimer le coût ou la durée de la migration. Les paramètres de non-production peuvent produire des résultats trompeurs.
Estimer le stockage cible à partir des résultats de l’essai au lieu de supposer que les tailles source et cible sont égales. Les empreintes de stockage source et de destination peuvent différer en raison des différences entre les définitions d’index et la disposition des données. Utilisez les résultats d’évaluation pour planifier le stockage avec une mémoire tampon sécurisée.
Optimiser la vitesse de migration
Migrez dans la même région si possible. La conservation de la source et de la cible dans la même région réduit la latence du réseau et améliore les performances de transfert de données. Il peut également réduire les coûts de transfert de données inter-régions.
Effectuez un scale-up pendant la migration, puis effectuez un scale-down après basculement. Par exemple, vous pouvez adapter temporairement la taille du cluster cible à M200 pour augmenter le débit de migration. Après la migration, effectuez un scale-down vers un niveau approprié dans la plage prise en charge pour les charges de travail à état stable.
Choisissez des disques avec des E/S par seconde plus élevées pour des écritures plus rapides. Des IOPS plus élevées peuvent améliorer considérablement les performances de migration à forte intensité d'écriture. Étant donné que la taille du disque ne peut généralement pas être mise à l’échelle ultérieurement, sélectionnez soigneusement la taille du disque pendant la planification.
Planifiez soigneusement le basculement parce qu’il n’y a pas de roll-back
Planifiez les temps d’arrêt pendant une fenêtre à faible trafic. Le temps d’arrêt requis dépend de la durée que prennent vos étapes de validation après le rattrapage de la migration. Une fenêtre à faible trafic réduit l’impact de l’entreprise.
Arrêtez toutes les écritures dans la source juste avant le basculement. Cette étape empêche la divergence de dernière minute entre la source et la cible. Vérifiez que l’activité d’écriture est entièrement suspendue avant la fin du basculement.
Validez les données migrées avant de déplacer des écritures. Comparez les nombres de documents, puis exécutez la comparaison de documents aléatoires (par exemple, les vérifications basées sur le hachage). Utilisez un script si possible pour rendre la validation reproductible.
Mettez à jour les chaînes de connexion d’application et testez sur la cible. Exécutez la validation fonctionnelle et de performances sur les lectures cibles et testez le trafic avant d’activer les écritures de production. Vérifiez que les chemins critiques se comportent comme prévu.
Déplacez le trafic d’écriture uniquement après la validation. Transférez les écritures de production vers la cible uniquement une fois que les résultats de test sont cohérents et réussis. Utilisez un déploiement intermédiaire si votre architecture d’application la prend en charge.
Coordonner les équipes pour une migration transparente
Obtenez l'adhésion de toutes les parties prenantes : équipes des applications, données, infrastructure, sécurité, réseau et gestion. Aligner les attentes et les responsabilités dès le début. La propriété partagée réduit les malentendus et les retards pendant l’exécution.
Utilisez les essais pilotes de planification et d'essai pour renforcer la confiance de l’équipe et affiner les procédures. Il n’existe aucun raccourci vers une migration fluide. Les essais révèlent des problèmes dans un environnement moins risqué et donnent l'occasion aux équipes de s'entraîner.
Traitez la transition comme étant critique et urgente. Le basculement nécessite une coordination précise et une communication claire. Désigner les décideurs et établir des chemins d’escalade avant de commencer.
Sachez qui effectuera chaque étape, quand elle devrait se produire et comment réduire les temps d’arrêt. Attribuez des responsabilités, établissez des chronologies et alignez-les sur les critères de réussite. Documentez le runbook de basculement et partagez-le avec tous les participants.
Coordonnez-vous avec toutes les parties prenantes lorsque le basculement nécessite des mises à jour simultanées de plusieurs charges de travail. Planifiez le basculement pendant une fenêtre de maintenance convenable pour toutes les équipes. Évitez les nuits de vendredi ou les périodes proches des événements d’affaires majeurs.
Ne vous précipitez pas et n'ignorez pas les étapes de diligence raisonnable : il n'y a pas de retour en arrière. Une validation approfondie et une exécution minutieuse empêchent les erreurs coûteuses. Accepter ce basculement prend du temps ; Les raccourcis axés sur la vitesse créent des risques.
Contenu connexe
- Migrez des données vers Azure DocumentDB à l’aide des outils MongoDB natives.
- Migrez des données vers Azure DocumentDB à l’aide du MongoMigrationwebBasedUtility.