Bonnes pratiques de migration des bases de données
Utilisez Azure Database Migration Service pour migrer une base de données SQL Server vers Azure SQL avec un temps d’indisponibilité minimal, puis résolvez les problèmes courants de schéma et de compatibilité.
Bonnes pratiques de migration des bases de données est une leçon Cloud & IT Cert Prep gratuite sur CoddyKit. Ceci est la leçon 4 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Cloud & IT Cert Prep, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Cloud & IT Cert Prep comprend 4 leçons au total.
Pourquoi la migration de bases de données est différente
La migration d’une base de données est plus complexe que le déplacement d’une VM, car les bases de données sont à état persistant et ont souvent des connexions actives 24 h/24 et 7 j/7. Une approche naïve fondée sur la copie et la restauration nécessite plusieurs heures d’interruption, ce qui est inacceptable pour les systèmes de production. Les bonnes pratiques de migration de bases de données utilisent une réplication continue des données pour maintenir la source et la cible synchronisées pendant la validation de la cible, puis effectuent une brève bascule planifiée lorsque le trafic est redirigé vers la nouvelle base de données Azure.
Azure Database Migration Service
Azure Database Migration Service (DMS) est un service entièrement géré qui orchestre les migrations en ligne (avec une interruption quasi nulle) et hors ligne (fondées sur une interruption) depuis des moteurs sur site courants vers des services de bases de données gérés Azure. DMS prend en charge notamment SQL Server, MySQL, PostgreSQL, MongoDB et Oracle comme sources, ainsi qu’Azure SQL Database, Azure SQL Managed Instance, Azure Database for MySQL et Azure Cosmos DB comme cibles. Le service s’intègre à Data Migration Assistant (DMA) pour effectuer les vérifications de compatibilité avant la migration.
# Create a DMS instance
az dms create \
--service-name myDMS \
--resource-group myRG \
--location eastus \
--sku-name Premium_4vCores \
--vnet myVnet \
--subnet mySubnetÉvaluation avant migration avec DMA
Avant de migrer SQL Server, exécutez Data Migration Assistant (DMA) sur la base de données source. DMA identifie : les problèmes de compatibilité (fonctionnalités utilisées dans votre base de données qui ne sont pas prises en charge par la cible Azure SQL), les modifications incompatibles, les fonctionnalités obsolètes et les recommandations de performances. Il génère un rapport HTML détaillé qui classe les problèmes par gravité afin que votre équipe puisse les corriger avant le début de la fenêtre de migration.
# Run DMA assessment from CLI (Windows only)
# DmaCmd.exe /AssessmentName='SQL2022toAzureSQL' \
# /AssessmentSourcePlatform='SqlOnPrem' \
# /AssessmentTargetPlatform='AzureSqlDatabase' \
# /AssessmentDatabases='Server=myServer;Initial Catalog=AdventureWorks;Integrated Security=true'Migration en ligne ou hors ligne
La migration hors ligne met la base de données source hors connexion pendant toute la durée de la migration : cette approche convient aux petites bases de données ou aux systèmes non critiques pour lesquels une fenêtre de maintenance est possible. La migration en ligne utilise la capture des données modifiées (CDC) ou l’expédition des journaux de transactions pour répliquer continuellement les modifications pendant le chargement de la nouvelle base de données, réduisant l’interruption à la seule étape finale de bascule. La migration en ligne est recommandée pour les bases de données de plus de 1 Go ou soumises à des contrats de niveau de service exigeant moins d’une heure d’interruption.
Configuration d’un projet de migration DMS
Un projet de migration DMS définit la connexion source (nom du serveur, authentification, noms des bases de données), la connexion cible (chaîne de connexion Azure SQL) et le mode de migration (en ligne ou hors ligne). Vous sélectionnez également les bases de données et les tables à migrer. DMS valide la connectivité avant le démarrage. Le projet de migration est conservé dans le portail Azure afin que vous puissiez surveiller la progression, réessayer les tables ayant échoué et consulter les journaux d’activité détaillés.
# Create a DMS project for SQL Server to Azure SQL Database
az dms project create \
--service-name myDMS \
--resource-group myRG \
--name SQL2AzureSQL \
--source-platform SQL \
--target-platform SQLDB \
--location eastusMigration du schéma en premier
Commencez toujours par migrer le schéma avant les données. Utilisez DMA ou SQL Server Management Studio (SSMS) pour générer le script et déployer les tables, vues, procédures stockées, fonctions et index vers la base de données Azure SQL cible. Vérifiez que tous les objets du schéma existent et se compilent sans erreurs avant d’autoriser DMS à commencer le transfert des données. Les erreurs de schéma découvertes en cours de migration peuvent endommager l’exécution de la migration et vous obliger à tout recommencer.
# Generate schema scripts using sqlpackage
sqlpackage /Action:Script \
/SourceServerName:myOnPremServer \
/SourceDatabaseName:AdventureWorks \
/TargetServerName:mysqlserver.database.windows.net \
/TargetDatabaseName:AdventureWorksAzure \
/OutputPath:/tmp/schema.sqlChargement initial des données
DMS effectue un chargement complet des données en lisant la base de données source table par table et en écrivant les lignes dans la cible Azure SQL au moyen d'une insertion en bloc. Pendant le chargement complet, le service traite les grandes tables en les divisant en lots. Les index de la cible sont désactivés pendant le chargement afin de maximiser le débit, puis recréés ensuite. Pour les bases de données très volumineuses (à l'échelle du TB), envisagez d'utiliser Azure Data Factory ou des exports bacpac pour précharger les données et réduire la durée d'exécution de DMS.
Capture des données modifiées pour la synchronisation en ligne
Pour les migrations en ligne, DMS active la capture des données modifiées (CDC) de SQL Server sur la source afin de capturer les opérations INSERT, UPDATE et DELETE qui se produisent pendant le chargement complet. Une fois celui-ci terminé, DMS rejoue les modifications capturées sur la cible et réduit progressivement l'écart. Lorsque la latence devient presque nulle, la base de données est prête pour le basculement. CDC nécessite que SQL Server Agent soit en cours d'exécution et que la base de données source soit en mode de récupération complète.
-- Enable CDC on source database
EXEC sys.sp_cdc_enable_db;
-- Enable CDC on specific table
EXEC sys.sp_cdc_enable_table
@source_schema = N'dbo',
@source_name = N'Orders',
@role_name = NULL;Basculement et validation
Lorsque le retard de CDC est minimal, lancez le basculement dans le portail DMS. DMS cesse d'accepter de nouveaux événements CDC, applique les modifications restantes et marque la migration comme terminée. Vous redirigez alors les chaînes de connexion de l'application vers le point de terminaison Azure SQL. Exécutez des requêtes de validation des données qui comparent le nombre de lignes et les agrégats de sommes de contrôle entre la source et la cible pour les tables critiques. Conservez la base de données source en mode lecture seule pendant 24 à 48 heures après le basculement, au cas où une restauration serait nécessaire.
-- Validate row counts post-cutover
SELECT TABLE_NAME, TABLE_ROWS
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = 'dbo'
ORDER BY TABLE_NAME;Optimisation des performances après la migration
Après la migration, Azure SQL Database peut présenter des performances différentes de celles de SQL Server sur site en raison de différences entre les caches de plans de requêtes, les statistiques et le matériel. Exécutez le Database Experimentation Assistant (DEA) pour rejouer les traces de charge sur la cible Azure et comparer les plans d'exécution. Activez Automatic Tuning dans Azure SQL afin de permettre au service de créer ou de supprimer automatiquement des index et de forcer l'utilisation de plans de requêtes sans régression, ce qui améliore progressivement les performances sans intervention manuelle.
-- Enable Automatic Tuning on Azure SQL Database
ALTER DATABASE CURRENT SET AUTOMATIC_TUNING (
FORCE_LAST_GOOD_PLAN = ON,
CREATE_INDEX = ON,
DROP_INDEX = OFF
);Migration d'autres moteurs de base de données
DMS migre également des moteurs open source : MySQL vers Azure Database for MySQL à l'aide du modèle mysqldump + réplication binlog, et PostgreSQL vers Azure Database for PostgreSQL à l'aide de créneaux de réplication logique. Pour les migrations de MongoDB vers Cosmos DB, utilisez l'API Cosmos DB pour MongoDB et le pipeline natif mongodump / mongorestore, ou le connecteur MongoDB d'Azure Data Factory pour une CDC incrémentielle. Testez toujours la migration sur une copie hors production avant de l'exécuter sur des données actives.
# Offline MySQL migration using mysqldump
mysqldump -h source-server -u admin -p \
--single-transaction --routines --triggers \
myDatabase > /tmp/myDatabase.sql
# Restore to Azure Database for MySQL
mysql -h myserver.mysql.database.azure.com \
-u adminUser@myserver -p myDatabase < /tmp/myDatabase.sqlVérification rapide
Vérifiez votre compréhension des concepts de Microsoft Azure Fundamentals (AZ-900) présentés dans cette leçon.
Récapitulatif de la leçon
Dans cette leçon, vous avez appris que Azure Database Migration Service orchestre les migrations de bases de données en ligne et hors ligne, que l'évaluation préalable à la migration avec DMA permet de détecter les problèmes de compatibilité avant la fenêtre de migration et que la capture des données modifiées permet un basculement avec une interruption presque nulle pour les bases de données de production. Nous allons maintenant nous intéresser à l'optimisation des coûts Azure.
Questions Fréquemment Posées
La leçon « Bonnes pratiques de migration des bases de données » est-elle gratuite ?
Oui — le texte complet de « Bonnes pratiques de migration des bases de données » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Cloud & IT Cert Prep, passe à CoddyKit PRO. Le cours Cloud & IT Cert Prep comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Bonnes pratiques de migration des bases de données » ?
Utilisez Azure Database Migration Service pour migrer une base de données SQL Server vers Azure SQL avec un temps d’indisponibilité minimal, puis résolvez les problèmes courants de schéma et de compa… Tu pratiques Cloud & IT Cert Prep avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer Cloud & IT Cert Prep ?
Aucune expérience préalable n'est requise. Cloud & IT Cert Prep sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 4 sur 4.
Combien de temps prend la leçon « Bonnes pratiques de migration des bases de données » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon Cloud & IT Cert Prep ?
Oui. Chaque leçon Cloud & IT Cert Prep inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- Le cadre de migration des 6 R
- Azure Migrate : découverte et évaluation
- Rehéberger avec Azure Migrate (Lift and Shift)
- Bonnes pratiques de migration des bases de données