Explorer les options d’outils de migration

Effectué

Il existe plusieurs outils que vous pouvez utiliser pour planifier et migrer des données vers un serveur flexible Azure Database pour MySQL. Chaque option a ses avantages et ses inconvénients, comme expliqué dans les sections suivantes.

Découvrir et évaluer vos charges de travail MySQL à l’aide d’Azure Migrate

Azure Migrate offre un hub centralisé pour découvrir, évaluer et migrer une infrastructure locale, notamment des serveurs, des bases de données et des applications web hébergées dans des environnements physiques, vers des cibles PaaS (Platform as a service) Azure et IaaS (Infrastructure as a service). La fonctionnalité de découverte et d’évaluation MySQL dans Azure Migrate (préversion) vous aide pendant la phase de planification en vous permettant de :

  • Découvrir les instances MySQL et leurs attributs dans votre environnement,
  • Évaluer leur préparation à la migration vers Azure Database pour MySQL – Serveur flexible et
  • Recevoir des recommandations sur la référence SKU de calcul et de stockage appropriées pour l’hébergement de charges de travail MySQL sur Azure Database pour MySQL – Serveur flexible, ainsi que les coûts associés.

Interface CLI d’Importation Azure Database pour MySQL

L’importation Azure Database pour MySQL est une commande unique de l’interface CLI qui vous permet de migrer facilement votre charge de travail locale ou de machine virtuelle MySQL vers Azure Database pour MySQL – Serveur flexible. Elle offre un chemin de migration simple et rapide. La commande approvisionne votre serveur flexible cible configuré en fonction des entrées utilisateur, puis restaure votre fichier de sauvegarde physique (créé avec Percona XtraBackup) du serveur source stocké dans le compte Stockage Blob Azure sur l’instance de serveur flexible cible.

La commande CLI est : az mysql flexible-server --import

Lors de l’évaluation de l’interface CLI d’importation, veillez à prendre en compte les considérations suivantes.

  • La configuration du serveur source doit inclure ces paramètres et ces valeurs :

    lower_case_table_names = 1
    innodb_file_per_table = ON
    
  • Le nom de l’espace de table système doit être ibdata1, avec une taille égale à au moins 12 Mo (la valeur par défaut de MySQL).

  • Seul le moteur InnoDB est pris en charge pour la migration.

  • Certains éléments du serveur source, comme sa configuration (pare-feux, utilisateurs, privilèges) ne sont pas migrés.

  • La haute disponibilité est désactivée pendant la migration pour optimiser les performances. Veillez à réactiver la haute disponibilité une fois la migration terminée.

Azure Database Migration Service

Azure Database Migration Service est un service complètement managé qui vous permet de simplifier, de guider et d’automatiser vos migrations de base de données vers des plateformes de données Azure.

Azure Database Migration Service fonctionne en créant et en exécutant des projets de migration reproductibles. Les sources vont des charges de travail locales aux charges de travail basées sur le cloud, comme Amazon RDS MySQL. Bien qu’Azure Database Migration Service soit techniquement un outil de migration hors connexion, il utilise le binlog MySQL pour effectuer des migrations en ligne avec un temps d’arrêt proche de zéro.

mysqldump

L’utilitaire client mysqldump, qui est généralement installé avec MySQL, est un outil de sauvegarde de base de données. Vous pouvez utiliser mysqldump pour créer une image mémoire du schéma et du contenu d’une base de données source avec des instructions SQL. Vous pouvez ensuite exécuter ces instructions en l’état pour restaurer tout ou partie du contenu sur la base de données cible.

Pour les grands jeux de données, la restauration de l’image mémoire en exécutant les instructions SQL peut s’avérer peu performante. Par exemple, les index sont mis à jour avec une instruction à la fois, ce qui peut dégrader les performances des E/S de disque. En raison de cela, vous pouvez accélérer une migration en appairant mysqldump avec des outils tels que mydumper et myloader, qui sont optimisés pour la migration de données en bloc. Utilisez mysqldump pour recréer le schéma de base de données, qui est une zone d’atterrissage dans la base de données cible, afin de prendre en charge les données importées.

Parfois, vous devez personnaliser le transfert des données de migration. Vous voudrez peut-être exporter un sous-ensemble de données pour effectuer des tests ou remplacer les données de la base de données cible pour un client. Vous pourrez peut-être même modifier les données, par exemple en insérant des données personnelles pour déboguer un problème dans une base de données de test, avant de la migrer.

Dans ces scénarios, mysqldump offre le plus de flexibilité. Comme il exporte un fichier contenant des instructions SQL, vous pouvez choisir comment modifier les données avant d’exécuter les instructions sur le serveur cible.

mydumper et myloader

mydumper et myloader font partie du package MyDumper, un outil de sauvegarde MySQL open source. Contrairement à l’outil mysqldump, qui génère l’intégralité du schéma dans des instructions SQL pour les réexécuter de façon linéaire, les outils MyDumper tirent parti du parallélisme et offrent des avantages tels que l’utilisation de fichiers distincts par table et lisibles par un humain, ainsi que la gestion des positions exactes des journaux binaires sources et cibles.

Pour migrer de grandes bases de données, mydumper et myloader sont recommandés, car ces outils offrent des performances 10 fois supérieures ou plus grâce au parallélisme.

Les outils sont disponibles en tant que fichiers binaires pour Linux sous la forme de packages rpm et deb, et via Homebrew pour macOS. Sur d’autres plateformes, vous devez compiler les outils à partir de la source, ce qui engendre une complexité.

MySQL Workbench

MySQL Workbench fournit une interface utilisateur graphique (GUI) pour l’utilisation de MySQL et offre un accès à de nombreux outils, dont un pour la migration de base de données. MySQL Workbench est disponible dans les éditions Community et commerciales de MySQL, comme indiqué dans la liste Fonctionnalités de MySQL Workbench.

MySQL binlog

L’outil mysqlbinlog utilise le journal binaire de MySQL, qui enregistre les événements de modification de base de données, comme les modifications des tables, ou les insertions, les mises à jour et les suppressions de données. Chaque modification est identifiée avec une position qui augmente de façon incrémentielle, et vous pouvez inspecter et manipuler chaque modification en utilisant l’outil mysqlbinlog.

Vous pouvez utiliser le journal binaire dans le cadre des migrations en ligne et hors connexion :

  • Avec les migrations en ligne, le journal binaire est le mécanisme clé pour la réplication des modifications de données dynamiques de la source vers la cible.
  • Avec les migrations hors connexion, le journal binaire permet des migrations incrémentielles en générant les modifications survenues depuis un instantané précédemment migré.

La maintenance du journal binaire nécessite un traitement et des ressources de stockage supplémentaires.