Approches de la migration

Effectué

Vous pouvez adopter de nombreuses approches différentes pour la migration de base de données, telles que la migration en ligne ou hors connexion, la migration de sauvegarde et de restauration, ou la migration avec du code SQL personnalisé ou des scripts. Chaque approche est la plus appropriée pour certains scénarios d’entreprise.

Dans votre start-up, par exemple, la base de données de communication de fournisseur est essentielle et vous souhaitez essayer d’effectuer la migration sans perturber le service pour les utilisateurs. Ce service de la société fonctionne 24 heures sur 24, 7 jours sur 7, et il existe peu de périodes creuses prévisibles pendant lesquelles vous pouvez mettre la base de données hors connexion. Le système de conception assistée par ordinateur (CAO), en revanche, étant utilisé uniquement pendant la semaine. vous pouvez la mettre hors connexion pendant un week-end et la migrer vers Azure.

Ici, vous découvrirez les approches, les techniques et les outils que vous pouvez sélectionner pour exécuter la migration.

Quand utiliser l’exportation et l’importation

Les techniques d’exportation et d’importation vous permettent de contrôler les données et le schéma qui sont déplacés lors de la migration. Utilisez les outils d’exportation et d’importation si vous souhaitez sélectionner les données à migrer vers la nouvelle base de données, et peut-être nettoyer ou modifier les données lors de la migration.

Envisagez d’utiliser les techniques d’exportation et d’importation :

  • Quand vous souhaitez choisir un sous-ensemble des tables de la base de données locale à migrer vers la base de données cloud.

  • Quand vous souhaitez migrer des objets de base de données tels que des contraintes, des vues, des fonctions, des procédures et des déclencheurs, et contrôler la façon dont ces objets sont configurés dans la base de données cloud.

  • Quand vous souhaitez importer des données à partir de sources externes autres que MySQL, MariaDB ou PostgreSQL.

Par exemple, vous pouvez envisager l’exportation et l’importation dans les scénarios suivants :

  • Vous souhaitez effectuer une migration fragmentaire dans laquelle la charge de travail marketing est migrée vers le cloud et testée avant la charge de travail de support des ventes. Les deux charges de travail utilisent des tables de la base de données SalesDB dans votre système local. Vous souhaitez migrer les tables marketing uniquement dans la première phase du projet et les tables de ventes dans la deuxième phase.

  • Vos données locales sont anciennes et contiennent une combinaison de données pertinentes et non pertinentes pour l’activité actuelle. Vous souhaitez en profiter pour supprimer les anciennes données et envisager un schéma de base de données plus simplifié.

  • Vous disposez d’une feuille de calcul volumineuse qui contient des données sur les produits. Vous souhaitez migrer ces données dans la base de données cloud.

Planifier une migration d’exportation et d’importation

L’avantage de l’utilisation de l’exportation et de l’importation est le niveau supplémentaire de contrôle dont vous disposez sur les données migrées. Toutefois, l’un des inconvénients est que vous devez planifier plus soigneusement pour vous assurer que tous les objets dont vous avez besoin sont inclus.

Veillez à bien comprendre comment les objets suivants sont migrés :

  • Schéma de base de données.
  • Contraintes, dont les clés primaires, les clés étrangères et les index.
  • Vues, fonctions, procédures et déclencheurs.
  • Comptes d’utilisateur et autorisations.

Exportation et importation pour MySQL et MariaDB

Vous pouvez utiliser des scripts SQL pour effectuer une exportation et une importation sélectives d’une base de données vers une autre. Toutefois, si votre base de données locale est en MySQL ou MariaDB, plusieurs outils sont disponibles pour vous aider, notamment :

  • MySQL Workbench. Il s’agit d’un outil de conception de base de données populaire avec une interface graphique utilisateur (GUI) développée par Oracle Corporation. Il comprend un outil d’exportation de données avec des options de sélection de données flexibles.

  • Toad Edge. Il s’agit d’un ensemble d’outils concurrent développé par Quest. Vous l’utilisez pour exporter et importer des données à partir des bases de données MySQL et PostgreSQL.

  • Navicat. Cet outil GUI d’administration de base de données est également compatible avec les bases de données MariaDB.

  • mysqlimport. Cet outil en ligne de commande peut importer des données à partir de fichiers texte.

Important

Azure Database pour MySQL et Azure Database for MariaDB prennent uniquement en charge le moteur de stockage InnoDB. Si vous avez des tables qui utilisent d’autres moteurs, tels que le moteur MyISAM, vous devez les convertir en InnoDB avant d’effectuer la migration vers Azure.

Exportation et importation PostgreSQL

PostgreSQL fournit les outils suivants que vous utilisez pour exporter et importer des données :

  • pgAdmin. Il s’agit d’un utilitaire GUI pour les administrateurs PostgreSQL. Il fournit une interface pour l’exportation et l’importation de données.

  • pg_dump. Il s’agit d’un outil en ligne de commande que vous utilisez pour exporter une base de données sous différents formats, notamment le test. Vous pouvez modifier les fichiers .sql obtenus avant de les importer à l’aide de l’utilitaire psql.

  • Toad Edge. Il s’agit du même utilitaire que celui que vous utilisez avec MySQL.

Sauvegarde et restauration

Les opérations de sauvegarde et de restauration sont généralement effectuées pour protéger une base de données contre les sinistres. Une copie exacte de la base de données est effectuée et enregistrée. Si un sinistre détruit la copie de travail, la copie sauvegardée est restaurée et les activités normales peuvent reprendre.

En effectuant la restauration à un autre emplacement, vous utilisez une sauvegarde pour migrer la base de données complète vers un autre emplacement, tel qu’une base de données dans le cloud.

Quand utiliser la sauvegarde et la restauration

Les outils de sauvegarde effectuent une copie simple et précise de la base de données. Lors de la restauration dans la base de données cloud, vous obtenez exactement les mêmes données et le même schéma que dans le système local. Utilisez la sauvegarde et la restauration pour migrer une base de données :

  • Lorsque vous voulez migrer une base de données entière ou un ensemble de bases de données en une seule opération.

  • Lorsque vous n’avez pas besoin de modifier les données, le schéma ni d’autres objets de base de données pendant la migration.

Vous pouvez envisager d’utiliser la sauvegarde et la restauration pour effectuer une migration dans les cas suivants :

  • Vous voulez procéder à un lift-and-shift dans le cloud du système de base de données unique dont vous disposez avec le moins de modifications possible.

  • Vous souhaitez effectuer une migration fragmentaire sur un système qui a plusieurs bases de données. Chaque charge de travail est prise en charge par une base de données complète.

Lorsque vous restaurez une base de données à partir d’un fichier de sauvegarde à un emplacement du cloud, tenez compte de la quantité de données qui doit être envoyée sur le réseau à la base de données cloud. Pour optimiser ce transfert de données, copiez la base de données sauvegardée sur une machine virtuelle dans la même région que la base de données de destination, puis restaurez-la à partir de là. Cette restauration est plus rapide que l’utilisation d’un fichier de sauvegarde local et risque moins de provoquer des conflits de la bande passante réseau.

Planifier une sauvegarde et une restauration sur MySQL et MariaDB

Pour sauvegarder une base de données sur un serveur local, vous utilisez l’outil mysqldump sur la ligne de commande. Vous créez ainsi un fichier .sql que vous restaurez dans la base de données cloud en le transmettant à la commande mysql en tant que script. Si vous préférez un outil GUI, choisissez l’application phpMyAdmin ou MySQL Workbench. Ces outils GUI permettent de sauvegarder et de restaurer les données.

Gardez à l’esprit qu’Azure Database pour MySQL et Azure Database for MariaDB prennent uniquement en charge le moteur InnoDB. Veillez à convertir toutes les tables en InnoDB avant d’exécuter la sauvegarde.

Pour éviter tout problème de compatibilité, vérifiez que le numéro de version de MySQL ou MariaDB utilisé dans le cloud correspond au numéro de version du serveur de base de données local. Azure Database pour MySQL prend en charge les versions 5.6, 5.7 et 8.0. Azure Database for MariaDB prend en charge les versions 10.2 et 10.3. Si votre serveur local utilise une version antérieure, vous devez d’abord effectuer la mise à niveau vers l’une de ces versions et résoudre les problèmes en local avant de migrer vers le cloud.

Planifier une sauvegarde et une restauration sur PostgreSQL

Les outils de sauvegarde et de restauration en ligne de commande équivalents sur PostgreSQL sont pg_dump et pg_restore. Pour obtenir un outil de sauvegarde et de restauration GUI, utilisez Toad Edge.

Code d’application personnalisé

Si vous avez de nombreuses exigences en matière de transformation des données ou que vous souhaitez effectuer une migration inhabituelle, envisagez d’écrire votre propre code personnalisé pour déplacer des données à partir d’une base de données MySQL, PostgreSQL ou MariaDB locale vers le cloud.

Votre code personnalisé peut prendre de nombreuses formes. Le langage et le framework que vous choisissez dépendent principalement de l’expertise de votre équipe de développement :

  • Scripts SQL générés à partir de la base de données et modifiés ou développés à partir de zéro.
  • Code compilé à partir d’un framework de développement tel que .NET ou Java.
  • Scripts dans PHP ou Node.js.
  • Scripts shell pour Bash ou PowerShell.

L’approche de code personnalisé vous permet d’être extrêmement flexible. Vous personnalisez la façon dont les données sont filtrées, agrégées et transformées, et vous pouvez migrer vers plusieurs destinations ou fusionner des données à partir de plusieurs sources. Utilisez cette approche si vous avez des exigences qui ne peuvent pas être satisfaites avec un outil de sauvegarde ou d’exportation prêt à l’emploi.

L’inconvénient de cette approche est qu’elle nécessite plus d’investissements en temps de développement. Pour que le code personnalisé migre toutes les données correctement, il doit être testé de manière intensive avant d’être exécuté sur des données réelles. Cette tâche nécessite une équipe de développeurs et de testeurs expérimentés, et augmente souvent le budget du projet. Si vous envisagez d’écrire du code de migration personnalisé, veillez à ne pas sous-estimer le temps et les efforts requis pour créer du code fiable.

Azure Database Migration Service

Azure comprend un service flexible appelé Azure Database Migration Service (DMS), que vous utilisez pour effectuer des migrations en ligne fluides à partir de plusieurs sources de données vers des plateformes de données Azure. Ces plateformes sont notamment Azure Database pour MySQL, Azure Database for MariaDB et Azure Database pour PostgreSQL.

Envisagez d’utiliser Azure DMS chaque fois que vous souhaitez effectuer une migration de base de données en ligne dans Azure.

Migration initiale

Pour effectuer une migration avec DMS, effectuez les tâches suivantes :

  1. Créez une base de données cible dans Azure sur la plateforme de votre choix.
  2. Créer un projet de migration de données Azure Database Migration Service (DMS).
  3. Générez le schéma à partir des bases de données sources locales. Si vous utilisez MySQL, vous pouvez générer un schéma avec sqldump. Si la base de données source est PostgreSQL, utilisez pg_dump.
  4. Créez une base de données vide qui sert de destination de migration.
  5. Appliquez le schéma à la base de données de destination.
  6. Configurez les détails de connexion pour les bases de données source et de destination dans un projet de migration DMS.
  7. Exécutez le projet de migration DMS. Le projet transfère les données et génère un rapport.
  8. Examinez le rapport et corrigez les éventuels problèmes qu’il identifie.

Migrations en ligne

Azure DMS est un bon outil à utiliser pour les migrations en ligne, dans lesquelles la base de données d’origine reste disponible pendant l’exécution de la migration. Les utilisateurs continuent d’apporter des modifications aux données dans la base de données source. Azure DMS utilise la réplication pour synchroniser ces modifications avec la base de données migrée. Une fois la migration terminée, vous reconfigurez les applications utilisateur pour qu’elles se connectent à la base de données migrée.

Migrer MySQL ou MariaDB vers Azure SQL Database

Si vous souhaitez déplacer une base de données hébergée en local sur un serveur de base de données MySQL dans le cloud Azure, et que vous n’avez pas besoin que la base de données cloud exécute MySQL, envisagez de migrer vers Azure SQL Database. Azure SQL Database est une implémentation PaaS du moteur de base de données SQL Server leader du secteur de Microsoft. Il offre une disponibilité, une scalabilité et une sécurité de niveau entreprise, et est facile à superviser et à gérer.

De même, si votre serveur de base de données local exécute MariaDB, vous pouvez envisager la migration vers Azure SQL Database. Le processus est très similaire, car MariaDB est une duplication (fork) de MySQL.

Azure SQL Database est plus complet qu’Azure Database pour MySQL et Azure Database for MariaDB.

Notes

Vous devrez peut-être modifier les applications qui se connectent à votre base de données migrée, car Azure SQL Database utilise des types de données différents, des objets de base de données différents et une API différente de MySQL et MariaDB. Demandez conseil à vos développeurs pour déterminer la quantité de travail nécessaire pour porter une application cliente à partir d’une base de données MySQL ou MariaDB locale vers une base de données Azure SQL Database cloud.

Assistant de migration SQL Server pour MySQL

Si vous décidez de migrer de MySQL vers Azure SQL Database, vous pouvez utiliser un outil spécialisé : Assistant Migration SQL Server pour MySQL. Cet outil GUI se connecte à une base de données MySQL source et à une base de données SQL Server, qui peut être une base de données dans le service Azure SQL Database.

Lorsqu’il est connecté, l’Assistant copie le schéma complet dans Azure SQL Database, et convertit tous les types de données en leurs équivalents SQL Server. Il migre également les vues, les procédures, les déclencheurs et d’autres objets. Vous pouvez ensuite commencer à migrer les données de MySQL vers Azure SQL Database.

Notes

L’Assistant Migration SQL Server pour MySQL n’est pas testé pour la migration des bases de données MariaDB vers Azure SQL Database.