Published on

December 18, 2020

Synchronisation des bases de données SQL

La synchronisation asynchrone des bases de données SQL Server et des bases de données SQL Database / SQL Managed Instance (SQL MI) peut être réalisée grâce à différentes méthodes. Dans cet article de blog, nous explorerons certaines de ces options et discuterons de leurs cas d’utilisation.

Un cas d’utilisation courant pour la synchronisation des bases de données est la distribution des lectures, comme avoir une deuxième copie de la base de données à des fins de reporting. Un autre cas d’utilisation est celui des applications hybrides, où certaines données sont stockées sur site et d’autres dans Azure. De plus, la synchronisation des bases de données peut être bénéfique pour les applications distribuées à l’échelle mondiale, car elle permet de réduire la latence du réseau en ayant des données dans des régions plus proches des utilisateurs. Enfin, la synchronisation des bases de données peut également être utile pour maintenir une base de données de test ou de développement synchronisée avec une base de données de production.

Examinons certaines des options disponibles pour la synchronisation des bases de données SQL :

Azure Data Factory (ADF) ou SQL Server Integration Services (SSIS)

L’utilisation d’un outil ETL tel que Azure Data Factory ou SQL Server Integration Services permet de créer une solution de synchronisation des bases de données. Cependant, cette approche peut être complexe car elle nécessite de déterminer quels enregistrements ont été modifiés dans la base de données source.

Azure SQL Data Sync

Azure SQL Data Sync est un service web Microsoft Windows Azure qui offre des capacités de synchronisation des données bidirectionnelle pour les bases de données SQL. Il permet la synchronisation entre les bases de données SQL Server sur site et les bases de données SQL Azure, ainsi que la synchronisation de plusieurs bases de données SQL Azure. Notez que Azure SQL Managed Instance n’est pas pris en charge pour le moment.

Groupe de disponibilité Always On de SQL Server, Réplication active de la base de données SQL, ou Groupe de basculement automatique de l’instance SQL gérée

Ces options impliquent une réplication unidirectionnelle qui copie automatiquement les données vers une ou plusieurs répliques secondaires. Bien qu’elles puissent être utilisées pour la reprise après sinistre, elles sont principalement conçues pour la synchronisation des bases de données.

Réplication de SQL Server

SQL Server prend en charge six types de réplication pour copier des données d’une base de données à une autre. Azure SQL Database ne peut être utilisé que comme abonné push dans une topologie de réplication transactionnelle ou de capture instantanée unidirectionnelle. L’éditeur et/ou le distributeur peuvent être une instance de SQL Server exécutée sur site, une instance SQL Managed Instance Azure ou une instance de SQL Server exécutée sur une machine virtuelle Azure.

Sauvegarde/restauration de SQL Server, exportation/importation ou instantané de base de données

Ces options consistent à effectuer une copie complète de la base de données au lieu d’une simple copie incrémentielle. Bien qu’elles puissent être utilisées pour la reprise après sinistre, elles présentent l’inconvénient de périodes plus longues pendant lesquelles la base de données de destination n’est pas disponible.

Produits tiers

Il existe plusieurs produits tiers disponibles qui offrent des solutions de réplication de bases de données, tels que Attunity Replicate, striim, ScaleArc for SQL Server, StarQuest Data Replication et RedGate SQL Data Compare. Ces produits peuvent fournir des fonctionnalités supplémentaires et une flexibilité pour la synchronisation des bases de données.

Azure Database Migration Service (DMS)

Azure Database Migration Service offre une option de synchronisation en ligne (sync continue) pour copier des données de SQL Server vers Azure SQL Database ou SQL Managed Instance avec une interruption minimale.

Azure Arc

Si vous avez besoin de copier des données pour des raisons de latence et/ou de souveraineté des données, Azure Arc pourrait être une solution appropriée. Azure Arc permet la réplication transparente des données vers des régions spécifiées avec une synchronisation presque instantanée et sans interruption.

SQL Server Service Broker

La création d’une application de messagerie et de mise en file d’attente à l’aide de SQL Server Service Broker peut être une option où toutes les écritures sont placées dans la file d’attente et envoyées à différents serveurs. Cependant, il convient de noter que le Service Broker est lent et rarement utilisé par les clients.

Services de messagerie Azure

Une autre option consiste à créer une file d’attente de messages à l’aide de services asynchrones Azure tels que Azure Event Hub, Azure Service Bus ou Azure Event Grid. Ces services fournissent une messagerie fiable et peuvent être utilisés pour la synchronisation des bases de données.

Toutes les options ci-dessus permettent de synchroniser les bases de données sans apporter de modifications à la base de données source. Cependant, si vous avez la possibilité de modifier votre solution de base de données, Cosmos DB peut grandement simplifier le processus de copie des données. Cosmos DB peut répliquer les données de manière transparente vers toutes les régions spécifiées presque instantanément et sans interruption.

Lorsque vous envisagez quelle option est la meilleure pour votre situation, il est important de comprendre si elle est push/pull, si elle nécessite une nouvelle infrastructure, la latence des données et les coûts associés à chaque option.

Pour plus d’informations et des discussions détaillées sur ces options, vous pouvez visiter le blog de James Serra.

Click to rate this post!
[Total: 0 Average: 0]

Let's work together

Send us a message or book free introductory meeting with us using button below.