Tutoriel : Migration de MySQL vers Azure Database pour MySQL hors connexion à l’aide de DMS

Vous pouvez utiliser Azure Database Migration Service pour effectuer une migration transparente de votre instance MySQL externe vers Azure Database pour MySQL avec une fonctionnalité de migration de données à grande vitesse. Dans ce tutoriel, nous allons effectuer la migration d’un exemple de base de données à partir d’une instance locale de MySQL 5.7 vers Azure Database pour MySQL (v5.7), en utilisant une activité de migration hors connexion dans Azure Database Migration Service. Bien que les articles supposent que la source est une instance de base de données MySQL et que la cible est Azure Database pour MySQL, elle peut être utilisée pour migrer d'une base de données Azure pour MySQL à une autre en modifiant simplement le nom et les informations d'identification du serveur source. De plus, la migration de serveurs MySQL d’une version antérieure (v5.6 et versions ultérieures) vers des versions ultérieures est également prise en charge.

Remarque

Pour obtenir une version scriptable PowerShell de cette expérience de migration, consultez Migration hors connexion scriptable vers Azure Database pour MySQL.

Notes

Amazon Relational Database Service (RDS) pour MySQL et Amazon Aurora (MySQL) sont également pris en charge en tant que sources pour la migration.

Dans ce tutoriel, vous allez apprendre à :

  • Créer une instance DMS.
  • Créer un projet de migration MySQL dans DMS.
  • Migrer un schéma MySQL à l’aide de DMS.
  • Exécuter la migration.
  • Surveiller la migration.

Prérequis

Pour suivre ce didacticiel, vous devez effectuer les opérations suivantes :

  • Vous devez disposer d’un compte Azure avec un abonnement actif. Créez un compte gratuitement.

  • Vous devez disposer d’une base de données MySQL locale de version 5.7. Si ce n’est pas le cas, téléchargez et installez MySQL Community Edition 5.7.

  • Créez un réseau virtuel Microsoft Azure pour Azure Database Migration Service à l’aide du modèle de déploiement Azure Resource Manager, qui fournit une connectivité site à site à vos serveurs sources locaux via ExpressRoute ou un VPN. Pour plus d’informations sur la création d’un réseau virtuel, consultez la documentation sur le réseau virtuel, en particulier les articles sur le démarrage rapide, qui fournissent des informations pas à pas.

    Notes

    Pendant la configuration du réseau virtuel, si vous utilisez ExpressRoute avec le peering réseau à Microsoft, ajoutez ces points de terminaison au sous-réseau où doit être provisionné le service :

    • Point de terminaison de base de données cible (par exemple, un point de terminaison SQL, un point de terminaison Azure Cosmos DB, etc.)
    • Point de terminaison de stockage
    • Point de terminaison Service Bus

    Cette configuration est nécessaire car Azure Database Migration Service ne dispose pas d’une connectivité Internet.

  • Assurez-vous que les règles de groupe de sécurité réseau de votre réseau virtuel ne bloquent pas le port de sortie 443 de ServiceTag pour ServiceBus, Storage et AzureMonitor. Pour plus d’informations sur le filtrage du trafic de groupe de sécurité réseau de réseau virtuel, consultez l’article Filtrer le trafic avec les groupes de sécurité réseau.

  • Ouvrez votre pare-feu Windows pour autoriser les connexions à partir de Réseau virtuel afin de permettre à Azure Database Migration Service d’accéder au serveur MySQL source via le port TCP 3306 (par défaut).

  • Quand vous utilisez une appliance de pare-feu devant vos bases de données sources, vous devrez peut-être ajouter des règles de pare-feu pour autoriser les connexions à partir de Réseau virtuel afin de permettre à Azure Database Migration Service d’accéder aux bases de données sources pour la migration.

  • Créez une règle de pare-feu au niveau du serveur ou configurez des points de terminaison de service de réseau virtuel pour la cible Azure Database pour MySQL afin d’autoriser Réseau virtuel pour Azure Database Migration Service à accéder aux bases de données cibles.

  • Le serveur MySQL source doit être sur une édition MySQL Community prise en charge. Pour déterminer la version de l’instance MySQL, exécutez la commande suivante dans l’utilitaire MySQL ou MySQL Workbench :

    SELECT @@version;
    
  • Azure Database pour MySQL ne prend en charge que les tables InnoDB. Pour convertir les tables MyISAM en InnoDB, consultez l’article Convertir des tables MyISAM en InnoDB

  • L’utilisateur doit disposer des privilèges nécessaires à la lecture des données sur la base de données source.

  • Pour réussir une migration de schéma, sur le serveur source, l’utilisateur effectuant la migration a besoin des privilèges suivants :

    • “SÉLECTIONNER” privilège au niveau du serveur sur la source.
    • S'il migre des vues, l'utilisateur doit disposer du privilège « AFFICHER LA VUE » sur le serveur source et du privilège « CRÉER UNE VUE » sur le serveur cible.
    • Si la migration déclenche, l'utilisateur doit disposer du privilège « TRIGGER » sur les serveurs source et cible.
    • En cas de migration de routines (procédures et/ou fonctions), l'utilisateur doit disposer des privilèges « CRÉER UNE ROUTINE » et « MODIFIER LA ROUTINE» accordés au niveau du serveur sur la cible.
    • S'il migre des événements, l'utilisateur doit disposer du privilège « ÉVÉNEMENT » sur les serveurs source et cible.
    • Si vous migrez des utilisateurs/connexions, l'utilisateur doit disposer du privilège "CREATE USER" sur le serveur cible.
    • Privilège "BAISSE" au niveau du serveur sur la cible, afin de supprimer des tables qui pourraient déjà exister. Par exemple, lors d'une nouvelle tentative de migration.
    • "RÉFÉRENCES" privilège au niveau du serveur sur la cible, afin de créer des tables avec des clés étrangères.
    • Si vous migrez vers MySQL 8.0, l'utilisateur doit disposer du privilège "SESSION_VARIABLES_ADMIN" sur le serveur cible.
    • "CRÉER" privilège au niveau du serveur sur la cible.
    • "INSÉRER" privilège au niveau du serveur sur la cible.
    • "MISE À JOUR" privilège au niveau du serveur sur la cible.
    • "SUPPRIMER" privilège au niveau du serveur sur la cible.

Dimensionnement de l’instance Azure Database pour MySQL cible

Pour préparer le serveur Azure Database pour MySQL cible afin d’accélérer les chargements de données à l’aide de Azure Database Migration Service, les paramètres de serveur et les modifications de configuration suivants sont recommandés.

  • max_allowed_packet défini sur 1073741824 (par ex. 1 Go) pour éviter tout problème de connexion en raison de larges lignes.

  • slow_query_log : définissez cette valeur sur OFF pour désactiver le journal des requêtes lentes. Cela élimine la surcharge causée par la journalisation de requêtes lentes pendant les chargements de données.

  • query_store_capture_mode : définissez la valeur sur NONE pour désactiver le Magasin de données des requêtes. Cela permet d’éliminer la surcharge causée par les activités d’échantillonnage par le magasin de données des requêtes.

  • innodb_buffer_pool_size : la valeur Innodb_buffer_pool_size peut être augmentée uniquement en effectuant un scale-up du calcul pour le serveur Azure Database pour MySQL. Effectuez un scale-up du serveur vers la SKU 64 vCores à usage général à partir du niveau tarifaire du portail pendant la migration afin d’augmenter la valeur innodb-buffer-pool-size.

  • innodb_io_capacity & innodb_io_capacity_max : passez à 9000 à partir des paramètres de serveur dans le Portail Azure pour améliorer l’utilisation des E/S afin d’optimiser la vitesse de la migration.

  • innodb_write_io_threads & innodb_write_io_threads : affectez la valeur 4 aux paramètres du serveur dans le Portail Azure pour accélérer la migration.

  • Effectuer un scale-up du niveau de stockage : le nombre d’opérations d’E/S par seconde (IOPS) pour le serveur Azure Database pour MySQL augmente progressivement.

    • Dans l’option de déploiement sur un serveur unique, pour obtenir des charges plus rapides, nous vous recommandons d’augmenter le niveau de stockage pour accélérer les IOPS fournies.
    • Dans l’option de déploiement de serveur flexible, nous vous recommandons de mettre à l’échelle (augmenter ou diminuer) les IOPS, quelle que soit la taille de stockage.
    • N’oubliez pas que la taille du stockage peut seulement effectuer un scale-up, pas un scale-down.
  • Sélectionnez la taille de calcul et le niveau de calcul du serveur flexible cible en fonction du niveau tarifaire et des VCores du serveur unique source, en vous basant sur le tableau suivant.

    Niveau tarifaire du serveur unique VCores du serveur unique Taille de calcul du serveur flexible Niveau de calcul du serveur flexible
    De base* 1 Usage général Standard_D16ds_v4
    De base* 2 Usage général Standard_D16ds_v4
    Usage général* 4 Usage général Standard_D16ds_v4
    Usage général* 8 Usage général Standard_D16ds_v4
    Usage général 16 Usage général Standard_D16ds_v4
    Usage général 32 Usage général Standard_D32ds_v4
    Usage général 64 Usage général Standard_D64ds_v4
    Mémoire optimisée 4 Critique pour l’entreprise Standard_E4ds_v4
    Mémoire optimisée 8 Critique pour l’entreprise Standard_E8ds_v4
    Mémoire optimisée 16 Critique pour l’entreprise Standard_E16ds_v4
    Mémoire optimisée 32 Critique pour l’entreprise Standard_E32ds_v4

* Pour la migration, sélectionnez le calcul Usage général 16 vCores pour le serveur flexible cible pour des migrations plus rapides. Revenez à la taille de calcul souhaitée pour le serveur cible une fois la migration terminée en suivant la recommandation de taille de calcul dans la section Exécution des activités de post-migration plus loin dans cet article.

Une fois la migration terminée, vous pouvez rétablir les valeurs requises des paramètres et de la configuration du serveur par votre charge de travail.

Configurer DMS

Une fois votre serveur flexible cible déployé et configuré, vous devez ensuite configurer DMS pour migrer votre serveur unique vers un serveur flexible.

Inscrire le fournisseur de ressources

Pour inscrire le fournisseur de ressources Microsoft.DataMigration, procédez comme suit.

  1. Avant de créer votre première instance DMS, connectez-vous au Portail Azure, puis recherchez et sélectionnez Abonnements. Screenshot of a Select subscriptions from Azure Marketplace.

  2. Sélectionnez l’abonnement que vous souhaitez utiliser pour créer l’instance DMS, puis sélectionnez Fournisseurs de ressources. Screenshot of a Select Resource Provider.

  3. Recherchez le terme « Migration » puis, pour Microsoft.DataMigration, sélectionnez Inscrire. Screenshot of a Register your resource provider.

Créer une instance de Database Migration Service

  1. Dans le portail Azure, sélectionnez + Créer une ressource, recherchez Azure Database Migration Service, puis sélectionnez Azure Database Migration Service dans la liste déroulante.

    Azure Marketplace

  2. Dans l’écran Azure Database Migration Service, sélectionnez Créer.

    Create Azure Database Migration Service instance

  3. Dans l’écran Créer un service de migration, spécifiez un nom pour le service, l’abonnement, et un réseau virtuel nouveau ou existant.

  4. Sélectionnez un niveau tarifaire et accédez à l’écran de mise en réseau. La fonctionnalité de migration hors connexion est disponible uniquement avec le niveau tarifaire Premium.

    Pour plus d’informations sur les coûts et les niveaux de tarification, consultez la page de tarification.

    Configure Azure Database Migration Service basic settings

  5. Sélectionnez un réseau virtuel existant dans la liste ou indiquez le nom du réseau virtuel à créer. Accédez à l’écran Vérifier + créer. Vous pouvez éventuellement ajouter des étiquettes au service à l’aide de l’écran correspondant.

    Le réseau virtuel fournit à Azure Database Migration Service un accès au serveur SQL Server source et à l’instance Azure SQL Database cible.

    Configure Azure Database Migration Service network settings

    Pour plus d’informations sur la création d’un réseau virtuel dans le portail Azure, consultez l’article Créer un réseau virtuel au moyen du portail Azure.

  6. Passez en revue les configurations, puis sélectionnez Créer pour créer le service.

    Azure Database Migration Service create

Créer un projet de migration

Une fois le service créé, recherchez-le dans le portail Azure, ouvrez-le, puis créez un projet de migration.

  1. Dans le portail Azure, sélectionnez Tous les services, recherchez Azure Database Migration Service, puis sélectionnez Azure Database Migration Services.

    Locate all instances of Azure Database Migration Service

  2. Sélectionnez votre instance de service de migration dans les résultats de la recherche, puis sélectionnez + Nouveau projet de migration.

    Create a new migration project

  3. Dans l’écran Nouveau projet de migration, spécifiez un nom pour le projet. Dans la zone de sélection Type de serveur source, sélectionnez MySQL. Dans la zone de sélection Type de serveur cible, sélectionnez Azure Database pour MySQL, puis dans la zone de sélection Type d’activité de migration, sélectionnez Migration des données. Sélectionnez Créer et exécuter une activité.

    Create Database Migration Service Project

    Remarque

    Une autre possibilité consiste à choisir Créer un projet uniquement pour créer le projet de migration à ce stade et exécuter la migration ultérieurement.

Configurer un projet de migration

  1. Dans l’écran Sélectionner la source, spécifiez les détails de connexion de l’instance de MySQL source, puis sélectionnez Suivant : Sélectionner la cible>>

    Add source details screen

  2. Dans l’écran Sélectionner la cible, spécifiez les détails de connexion de l’instance cible d’Azure Database pour MySQL, puis sélectionnez Suivant : Sélectionner les bases de données>>

    Add target details screen

  3. Dans l’écran Sélectionner les bases de données, mappez la base de données source et la base de données cible concernées par la migration, puis sélectionnez Suivant : Configurer les paramètres de migration>>. Vous pouvez sélectionner l’option Mettre le serveur source en lecture seule pour que la source soit en lecture seule, mais ayez conscience qu’il s’agit d’un paramètre au niveau du serveur. Si cette option est sélectionnée, elle définit la tout le serveur en lecture seule, pas seulement les bases de données sélectionnées.

    Si la base de données cible porte le même nom que la base de données source, Azure Database Migration Service sélectionne la base de données cible par défaut. Select database details screen

  4. Dans l’écran Configurer les paramètres de migration, sélectionnez les tables qui doivent faire partie de la migration, puis sélectionnez Suivant : Résumé>>. Si les tables cibles contiennent des données, elles ne sont pas sélectionnées par défaut, mais vous pouvez les sélectionner explicitement et elles seront tronquées avant de démarrer la migration.

    Select tables screen

  5. Dans l’écran Résumé, dans la zone de texte Nom de l’activité, spécifiez un nom pour l’activité de migration, puis examinez le résumé pour vous assurer que les détails de la source et de la cible correspondent à ceux que vous avez spécifiés précédemment.

    Migration project summary

  6. Sélectionnez Démarrer la migration. La fenêtre d’activité de migration s’affiche, et le champ État de l’activité présente la valeur Initialisation en cours. La valeur État passe à En cours d’exécution au démarrage des migrations des tables.

    Running migration

Surveiller la migration

  1. Dans l’écran de l’activité de migration, sélectionnez Actualiser pour mettre à jour l’affichage et voir le nombre de tables migrées progresser.

  2. Vous pouvez cliquer sur le nom de la base de données dans l’écran de l’activité pour voir l’état de chaque table pendant la migration. Sélectionnez Actualiser pour mettre à jour l’affichage.

    Monitoring migration

Effectuer la migration

  1. Dans l’écran d’activité de migration, sélectionnez Actualiser pour mettre à jour l’affichage jusqu’à voir l’état de la migration s’afficher comme Terminé.

    Complete migration

Activités à l’issue de la migration

Le basculement de la migration dans une migration hors connexion est un processus qui dépend de l’application et qui sort du cadre de ce document, mais les activités suivantes sont préconisées après la migration :

  1. Créez des connexions, des rôles et des autorisations conformément à ce que demande l’application.
  2. Recréez tous les déclencheurs dans la base de données cible qui ont été extraits pendant l’étape de prémigration.
  3. Effectuez des tests d’intégrité de l’application dans la base de données cible pour certifier la migration.

Nettoyer les ressources

Si vous n’envisagez pas de continuer à utiliser Database Migration Service, vous pouvez supprimer ce service en effectuant les étapes suivantes :

  1. Dans le portail Azure, sélectionnez Tous les services, recherchez Azure Database Migration Service, puis sélectionnez Azure Database Migration Services.

    Locate all instances of DMS

  2. Sélectionnez votre instance du service de migration dans les résultats de la recherche, puis sélectionnez Supprimer le service.

    Delete the migration service

  3. Dans la boîte de dialogue de confirmation, saisissez le nom du service dans la zone de texte SAISIR LE NOM DU SERVICE DE MIGRATION DE BASE DE DONNÉES et sélectionnez Supprimer.

    Confirm migration service delete

Étapes suivantes