Migration de base de données SQL Server vers Azure SQL DatabaseSQL Server database migration to Azure SQL Database

S’APPLIQUE À : Azure SQL Database

Cet article décrit les méthodes principales de migration d’une base de données SQL Server 2005 ou version ultérieure vers Azure SQL Database.In this article, you learn about the primary methods for migrating a SQL Server 2005 or later database to Azure SQL Database. Pour plus d’informations sur la migration vers Azure SQL Managed Instance, consultez Migration d’une instance SQL Server vers Azure SQL Managed Instance.For information on migrating to Azure SQL Managed Instance, see Migrate a SQL Server instance to Azure SQL Managed Instance. Pour obtenir des informations sur la migration à partir d’autres plateformes, consultez le Guide de migration des bases de données Azure.For migration information about migrating from other platforms, see Azure Database Migration Guide.

Migrer vers une base de données unique ou une base de données mise en poolMigrate to a single database or a pooled database

Deux méthodes principales permettent de migrer une base de données SQL Server 2005 ou version ultérieure vers Azure SQL Database.There are two primary methods for migrating a SQL Server 2005 or later database to Azure SQL Database. La première méthode est plus simple, mais elle implique un temps d’arrêt potentiellement important pendant la migration.The first method is simpler but requires some, possibly substantial, downtime during the migration. La seconde méthode est plus complexe, mais elle élimine en grande partie les temps d’arrêt lors de la migration.The second method is more complex, but substantially eliminates downtime during the migration.

Dans les deux cas, vous devez vérifier que la base de données source est compatible avec Azure SQL Database à l’aide de Data Migration Assistant (DMA).In both cases, you need to ensure that the source database is compatible with Azure SQL Database using the Data Migration Assistant (DMA). SQL Database est proche de la parité des fonctionnalités avec SQL Server, à l’exception des problèmes liés aux opérations au niveau du serveur et sur plusieurs bases de données.SQL Database is approaching feature parity with SQL Server, other than issues related to server-level and cross-database operations. Les bases de données et les applications qui reposent sur des fonctions partiellement ou pas du tout prises en charge ont besoin d’une nouvelle ingénierie pour corriger ces incompatibilités avant de pouvoir migrer la base de données SQL Server.Databases and applications that rely on partially supported or unsupported functions need some re-engineering to fix these incompatibilities before the SQL Server database can be migrated.

Notes

Pour migrer une base de données non-SQL Server, notamment Microsoft Access, Sybase, MySQL Oracle et DB2, vers Azure SQL Database, consultez l’ Assistant Migration SQL Server.To migrate a non-SQL Server database, including Microsoft Access, Sybase, MySQL Oracle, and DB2 to Azure SQL Database, see SQL Server Migration Assistant.

Méthode 1 : Migration avec un temps d’arrêt pendant l’opérationMethod 1: Migration with downtime during the migration

Utilisez cette méthode pour migrer une base de données unique ou en mise pool si vous pouvez vous permettre un temps d’arrêt ou si vous effectuez un test de migration d’une base de données de production que vous envisagez de migrer.Use this method to migrate to a single or a pooled database if you can afford some downtime or you're performing a test migration of a production database for later migration. Pour un didacticiel, consultez Migrer une base de données SQL Server.For a tutorial, see Migrate a SQL Server database.

La liste suivante contient le workflow général pour la migration d’une base de données SQL Server unique ou mise en pool à l’aide de cette méthode.The following list contains the general workflow for a SQL Server database migration of a single or a pooled database using this method. Pour la migration vers SQL Managed Instance, consultez Migration vers SQL Managed Instance.For migration to SQL Managed Instance, see Migration to SQL Managed Instance.

Schéma de migration VSSSDT

  1. Évaluez la compatibilité de la base de données à l’aide de la dernière version de Data Migration Assistant (DMA).Assess the database for compatibility by using the latest version of the Data Migration Assistant (DMA).
  2. Préparez les corrections nécessaires en tant que scripts Transact-SQL.Prepare any necessary fixes as Transact-SQL scripts.
  3. Faites une copie cohérente de la base de données source en cours de migration ou interrompez les nouvelles transactions qui se produisent dans la base de données source pendant la migration.Make a transactionally consistent copy of the source database being migrated or halt new transactions from occurring in the source database while migration is occurring. Les méthodes qui existent pour accomplir cette dernière option incluent la désactivation de la connectivité des clients ou la création d’un instantané de base de données.Methods to accomplish this latter option include disabling client connectivity or creating a database snapshot. Après la migration, vous pourrez peut-être utiliser la réplication transactionnelle pour mettre à jour les bases de données migrées avec les modifications qui se produisent après le point d’arrêt pour la migration.After migration, you may be able to use transactional replication to update the migrated databases with changes that occur after the cutoff point for the migration. Consultez Migration à l’aide de la migration transactionnelle.See Migrate using Transactional Migration.
  4. Déployez les scripts Transact-SQL pour appliquer les correctifs à la copie de base de données.Deploy the Transact-SQL scripts to apply the fixes to the database copy.
  5. Migrez la copie de base de données vers une nouvelle base de données dans Azure SQL Database à l’aide de l’Assistant Migration de données.Migrate the database copy to a new database in Azure SQL Database by using the Data Migration Assistant.

Notes

Au lieu d’utiliser DMA, vous pouvez également utiliser un fichier BACPAC.Rather than using DMA, you can also use a BACPAC file. Consultez Importer un fichier BACPAC vers une nouvelle base de données dans Azure SQL Database.See Import a BACPAC file to a new database in Azure SQL Database.

Optimisation des performances de transfert de données pendant la migrationOptimizing data transfer performance during migration

La liste suivante contient des recommandations pour optimiser les performances pendant le processus d’importation.The following list contains recommendations for best performance during the import process.

  • Choisissez le niveau de service et la taille de calcul les plus élevés dans la limite de votre budget, afin d’optimiser les performances de transfert.Choose the highest service tier and compute size that your budget allows to maximize the transfer performance. Vous pourrez descendre en puissance une fois la migration terminée pour économiser de l’argent.You can scale down after the migration completes to save money.
  • Réduisez la distance entre votre fichier BACPAC et le centre de données de destination.Minimize the distance between your BACPAC file and the destination data center.
  • Désactivez les statistiques automatiques pendant la migration.Disable autostatistics during migration
  • Tables et index de partitionPartition tables and indexes
  • Supprimez les vues indexées et recréez-les une fois la migration terminée.Drop indexed views, and recreate them once finished
  • Déplacez les données historiques rarement interrogées vers une autre base de données et migrez ces données historiques vers un base de données distincte dans Azure SQL Database.Remove rarely queried historical data to another database and migrate this historical data to a separate database in Azure SQL Database. Vous pourrez ensuite interroger ces données historiques à l’aide de requêtes élastiques.You can then query this historical data using elastic queries.

Optimiser les performances une fois la migration terminéeOptimize performance after the migration completes

Mettez à jour les statistiques avec une analyse complète une fois la migration terminée.Update statistics with full scan after the migration is completed.

Méthode 2 : Utiliser la réplication transactionnelleMethod 2: Use Transactional Replication

Quand vous ne pouvez pas vous permettre de supprimer votre base de données SQL Server de la production durant la migration, vous pouvez utiliser la réplication transactionnelle SQL Server comme solution de migration.When you can't afford to remove your SQL Server database from production while the migration is occurring, you can use SQL Server transactional replication as your migration solution. Pour que vous puissiez utiliser cette méthode, la base de données source doit remplir les conditions requises pour la réplication transactionnelle et être compatible avec Azure SQL Database.To use this method, the source database must meet the requirements for transactional replication and be compatible for Azure SQL Database. Pour plus d’informations sur la réplication SQL avec Always On, consultez Configurer la réplication pour les groupes de disponibilité Always On (SQL Server).For information about SQL replication with Always On, see Configure Replication for Always On Availability Groups (SQL Server).

Pour utiliser cette solution, vous devez configurer votre base de données dans Azure SQL Database en tant qu’abonné à l’instance SQL Server que vous souhaitez migrer.To use this solution, you configure your database in Azure SQL Database as a subscriber to the SQL Server instance that you wish to migrate. Le distributeur de réplication transactionnelle synchronise les données nécessaires de la base de données (l’éditeur), de nouvelles transactions continuant d’avoir lieu.The transactional replication distributor synchronizes data from the database to be synchronized (the publisher) while new transactions continue occur.

Avec la réplication transactionnelle, toutes les modifications apportées à vos données ou à votre schéma apparaissent dans votre base de données dans Azure SQL Database.With transactional replication, all changes to your data or schema show up in your database in Azure SQL Database. Une fois la synchronisation terminée, lorsque vous êtes prêt à migrer, modifiez la chaîne de connexion de vos applications de façon à ce qu’elle pointe vers votre base de données.Once the synchronization is complete and you're ready to migrate, change the connection string of your applications to point them to your database. Une fois que la réplication transactionnelle a vidé toutes les modifications restant sur votre base de données source et que toutes vos applications pointent vers Azure SQL Database, vous pouvez désinstaller la réplication transactionnelle.Once transactional replication drains any changes left on your source database and all your applications point to Azure DB, you can uninstall transactional replication. Votre base de données dans Azure SQL Database est maintenant votre système de production.Your database in Azure SQL Database is now your production system.

Diagramme SeedCloudTR

Conseil

Vous pouvez également utiliser la réplication transactionnelle pour migrer un sous-ensemble de votre base de données source.You can also use transactional replication to migrate a subset of your source database. La publication que vous répliquez sur Azure SQL Database peut être limitée à un sous-ensemble des tables dans la base de données en cours de réplication.The publication that you replicate to Azure SQL Database can be limited to a subset of the tables in the database being replicated. Pour chaque table répliquée, vous pouvez limiter les données à un sous-ensemble de lignes et/ou un sous-ensemble de colonnes.For each table being replicated, you can limit the data to a subset of the rows and/or a subset of the columns.

Workflow de migration vers SQL Database à l’aide de la réplication transactionnelleMigration to SQL Database using Transaction Replication workflow

Important

Utilisez la dernière version de SQL Server Management Studio pour rester synchronisé avec les mises à jour d’Azure et de SQL Database.Use the latest version of SQL Server Management Studio to remain synchronized with updates to Azure and SQL Database. Les versions antérieures de SQL Server Management Studio ne peuvent pas configurer Base de données SQL en tant qu’abonné.Older versions of SQL Server Management Studio cannot set up SQL Database as a subscriber. Mettre à jour SQL Server Management Studio.Update SQL Server Management Studio.

  1. Configurer la distributionSet up Distribution

  2. Créer une publicationCreate Publication

  3. Créer un abonnementCreate Subscription

Quelques conseils et différences pour la migration vers SQL DatabaseSome tips and differences for migrating to SQL Database

  • Utilisez un serveur de distribution localUse a local distributor
    • Cela a un impact sur les performances du serveur.Doing so causes a performance impact on the server.
    • Si l’impact sur les performances est inacceptable, vous pouvez utiliser un autre serveur, mais cela contribue à compliquer la gestion et l’administration.If the performance impact is unacceptable, you can use another server but it adds complexity in management and administration.
  • Lorsque vous sélectionnez un dossier d’instantanés, assurez-vous qu’il est suffisamment grand pour contenir un BCP de chaque table que vous souhaitez répliquer.When selecting a snapshot folder, make sure the folder you select is large enough to hold a BCP of every table you want to replicate.
  • La création d’instantanés verrouille les tables associées jusqu’à la fin de l’opération. Par conséquent, prenez soin de bien planifier votre instantané.Snapshot creation locks the associated tables until it's complete, so schedule your snapshot appropriately.
  • Seuls les abonnements par push sont pris en charge dans Azure SQL Database.Only push subscriptions are supported in Azure SQL Database. Vous pouvez uniquement ajouter des abonnés à partir de la base de données source.You can only add subscribers from the source database.

Résolution des problèmes de compatibilité de migration de la base de donnéesResolving database migration compatibility issues

Vous pouvez rencontrer une grande variété de problèmes de compatibilité, selon la version de SQL Server dans la base de données source et la complexité de la base de données que vous êtes en train de migrer.There are a wide variety of compatibility issues that you might encounter, depending both on the version of SQL Server in the source database and the complexity of the database you're migrating. Les versions antérieures de SQL Server ont plus de problèmes de compatibilité.Older versions of SQL Server have more compatibility issues. Utilisez les ressources suivantes en plus d’une recherche Internet ciblée dans le moteur de recherche de votre choix :Use the following resources, in addition to a targeted Internet search using your search engine of choices:

En plus des recherches sur Internet et de l’utilisation de ces ressources, utilisez la page de questions et réponses Microsoft sur Azure SQL Database ou StackOverflow.In addition to searching the Internet and using these resources, use the Microsoft Q&A question page for Azure SQL Database or StackOverflow.

Important

Azure SQL Managed Instance vous permet de migrer une instance existante et ses bases de données avec peu voire pas de problèmes de compatibilité.Azure SQL Managed Instance enables you to migrate an existing SQL Server instance and its databases with minimal to no compatibility issues. Consultez Qu’est-ce qu’une instance managée ?.See What is a managed instance.

Étapes suivantesNext steps