Migrer des bases de données MySQL locales vers Azure

Effectué

Dès l’instant où une entreprise prend la décision de migrer vers Azure Database pour MySQL, elle doit prévoir comment elle va migrer ses bases de données locales et avec quels outils elle va déplacer ses données.

Après avoir exploré la façon dont Azure Database pour MySQL prend en charge et met à l’échelle MySQL dans Azure, vous devez maintenant réfléchir à la façon dont vous allez migrer vos bases de données locales existantes.

Dans cette unité, vous allez apprendre à créer une instance du service Azure Database pour MySQL à partir du portail Azure. Si vous devez créer un grand nombre d’instances de ce service, vous pouvez écrire le script du processus à l’aide d’Azure CLI.

Créer un instance d’Azure Database pour MySQL à partir du portail

Sur le portail Azure, sélectionnez la commande Bases de données dans Place de marché Azure, puis sélectionnez Azure Database pour MySQL.

Image montrant l’élément Azure Database pour MySQL sur la Place de marché Azure

Entrez les détails du service. notamment :

  • Nom du serveur. Ce nom doit être unique et se composer de trois à 63 caractères, avec uniquement des lettres minuscules, des chiffres et des traits d’union.
  • Source de données. Si vous créez un serveur à des fins de migration, sélectionnez Aucun. L’option Sauvegarde vous permet de restaurer la sauvegarde d’une autre instance d’Azure Database pour MySQL dans ce service.
  • Nom d’utilisateur de l’administrateur. Il s’agit du nom du compte d’utilisateur qui va être créé avec des privilèges d’administrateur. Azure crée des comptes pour sa propre utilisation et d’autres noms sont restreints ; vous ne pouvez pas utiliser azure_superuser, admin, administrator, root, guest ou public.
  • Mot de passe. Celui-ci doit comporter entre huit et 128 caractères. Il doit contenir une combinaison de lettres majuscules et minuscules, de chiffres et de caractères non alphanumériques. Azure Database pour MySQL prend actuellement en charge uniquement l'authentification par mot de passe ; l'intégration avec Microsoft Entra ID n'est pas encore disponible.
  • Version. Sélectionnez la version qui correspond à la base de données locale que vous migrez.
  • Calcul + stockage. Sélectionnez Configurer le serveur pour définir le niveau tarifaire et spécifier les ressources dont vous avez besoin pour le service. Les options ont été traitées dans la leçon 1. N’oubliez pas que, si vous sélectionnez le niveau tarifaire à Usage général ou à Mémoire optimisée, vous pouvez par la suite augmenter ou réduire le nombre de cœurs de processeur virtuel. En revanche, vous ne pouvez pas réduire la quantité de stockage ; une fois le serveur créé, elle ne peut qu’augmenter.

Capture d’écran montrant un échantillon de configuration pour Azure Database pour MySQL sur le Portail Azure.

Sélectionnez Vérifier + créer pour déployer le service. Le déploiement prend plusieurs minutes.

Une fois le service déployé, sélectionnez l’option Sécurité de la connexion et ajoutez les règles de pare-feu appropriées pour permettre aux clients de se connecter (comme décrit dans la rubrique Connectivité cliente de la leçon 1). Vous devez également sélectionner l’option Autoriser l’accès aux services Azure.

Créer une instance d’Azure Database pour MySQL à l’aide d’Azure CLI

Pour créer une instance d’Azure Database pour MySQL, utilisez la commande az mysql server create. L’instruction ci-dessous est un exemple qui montre comment créer une instance MySQL. La plupart des paramètres sont explicites, à l’exception de ceux-ci :

  • sku-name. Cet élément se compose à la fois du niveau tarifaire [B pour Basic (De base), GP pour General Purpose (Usage général) et MO pour Memory Optimized (Mémoire optimisée)], de la génération de calcul (Gen4 ou Gen5) et du nombre de cœurs de processeur virtuel. Dans l’exemple ci-dessous, le serveur est créé à partir du niveau tarifaire Usage général, avec quatre cœurs de processus de la génération Gen5.
  • storage-size. Il s’agit de la quantité de stockage sur disque nécessaire, exprimée en mégaoctets. Dans l’exemple ci-dessous, 10 gigaoctets sont alloués.
az mysql server create \
  --name contoso-MySQL-server \
  --resource-group MySQLrg \
  --admin-user contosoadmin \
  --admin-password 7Hh7*ku5k$$£jhk \
  --sku-name GP_Gen5_4 \
  --storage-size 10240

Effectuer une migration hors connexion

Une migration hors connexion effectue une capture instantanée de la base de données source à un moment précis dans le temps, puis copie ces données dans la base de données cible. Les modifications apportées aux données sources après la capture instantanée n’apparaissent pas dans la base de données cible.

Si vous souhaitez effectuer une migration hors connexion vers Azure Database pour MySQL, vous avez le choix entre au moins deux options :

L’exportation et l’importation

Vous pouvez exporter une base de données à partir de MySQL et l’importer dans Azure Database pour MySQL à l’aide d’outils tels que MySQL Workbench. Cela est utile dans un certain nombre de scénarios :

  • Vous souhaitez sélectionner les tables à importer.
  • Vous souhaitez sélectionner les objets de base de données à exporter et importer, notamment les vues, les procédures stockées, les contraintes et les fonctions.
  • Vous souhaitez également migrer des données à partir d’autres sources. Par exemple, vous devez ajouter les données de fichiers texte et utiliser mysqlimport pour les ajouter sous forme de tables à votre base de données.

Vous pouvez effectuer une exportation et une importation à l’aide de MySQL Workbench. Dans le menu Serveur, sélectionnez Exportation de données ou Importation de données.

Notes

Vous pouvez également utiliser mysqldump pour exporter des tables spécifiques en listant leurs noms après le nom de la base de données.

Pour plus d’informations, consultez Migration d’une base de données MySQL à l’aide de l’importation et de l’exportation.

Vidage et restauration

Utilisez la copie de sauvegarde et la restauration quand vous souhaitez déplacer efficacement l’ensemble de la base de données.

Plusieurs éléments sont à prendre en considération au moment d’utiliser la copie de sauvegarde et la restauration :

  • Empêchez le déclenchement des déclencheurs pendant la restauration à l’aide de l’option exclude-triggers.
  • Videz l’ensemble de la base de données dans une transaction unique à l’aide de l’option single-transaction.
  • Désactivez le déclenchement des contraintes de clé étrangère pendant le processus à l’aide de l’option disable-keys.
  • Reportez la création d’index à la fin de la restauration à l’aide de l’option defer-table-index.

Pour plus d’informations sur mysqldump, consultez mysqldump — A Database Backup Program.

Notes

Vous pouvez aussi utiliser mysqldump pour exporter des tables spécifiques en listant leurs noms après le nom de la base de données.

Azure Database Migration Service (DMS)

Outre les migrations hors connexion vers Azure Database pour MySQL, DMS prend en charge les migrations inter-régionales, inter-ressources et inter-abonnements. Vous pouvez donc sélectionner pour le serveur cible une région, un groupe de ressources et un abonnement différents de ce qui est spécifié pour votre serveur source.

Migrer en utilisant la copie de sauvegarde et la restauration

Effectuez les étapes suivantes pour migrer une base de données en utilisant l’approche de copie de sauvegarde et de restauration.

  1. Exportez les données dans un autre fichier à l’aide de la commande mysqldump :

    mysqldump -h [host name] -u [username] -p[password] [database name] > db_data.sql
    

    À ce stade, db_data.sql est un script SQL que vous modifiez à l’aide d’un éditeur de texte.

  2. Créez la base de données cible dans Azure Database pour MySQL. Pour cela, utilisez Azure CLI :

    az mysql db create \
        --name [database name] \
        --server-name [server name] \
        --resource-group [azure resource group]
    
  3. Importez les données dans la base de données cible à l’aide de la commande mysql :

    mysql -h [host name] -u [username] -p[password] [database name] < db_data.sql
    

Effectuer une migration en ligne

DMS prend également en charge la migration en ligne vers Azure Database pour MySQL. Pour la migration en ligne, nous vous recommandons de sélectionner le calcul à usage général 16 vCores pour le serveur flexible cible afin d’obtenir des migrations plus rapides. Réduisez la taille de calcul souhaitée pour le serveur cible une fois la migration terminée, en fonction des informations dans 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 Expansible Standard_B1s
De base 2 Expansible Standard_B2s
Usage général 4 Usage général Standard_D4ds_v4
Usage général 8 Usage général Standard_D8ds_v4

Pour en savoir plus sur la migration en ligne vers Azure Database pour MySQL, consultez le Tutoriel : Migrer Azure Database pour MySQL - Serveur unique vers un serveur flexible en ligne à l’aide de DMS via le Portail Azure.