Utiliser des groupes de disponibilité Always On


Cette page décrit les groupes de disponibilité AlwaysOn dans SQL Server et explique comment Datastream les prend en charge pour les scénarios de basculement et de récupération de données.

Présentation des groupes de disponibilité Always On

Dans SQL Server, les groupes de disponibilité Always On sont une solution de haute disponibilité qui vous permet de préparer vos bases de données pour les scénarios de reprise après sinistre.

Les groupes de disponibilité Always On maximisent la disponibilité des bases de données pour les entreprises. Les groupes de disponibilité sont compatibles avec un environnement répliqué pour un ensemble sélectionné de bases de données, appelées bases de données de disponibilité. Chaque groupe comprend un ensemble de bases de données principales pour les tâches de lecture et d'écriture, et jusqu'à huit ensembles de bases de données secondaires correspondantes. Les bases de données secondaires peuvent éventuellement autoriser l'accès en lecture seule ou les opérations de sauvegarde.

Pour en savoir plus sur les groupes de disponibilité Always On, consultez Qu'est-ce qu'un groupe de disponibilité Always On ? dans la documentation SQL Server.

Pour en savoir plus sur les prérequis du groupe de disponibilité Always On pour une instance SQL Server, consultez la documentation SQL Server.

Configurer Datastream pour l'utiliser avec des groupes de disponibilité Always On

Datastream est compatible avec le mode de disponibilité synchronous-commit avec la méthode CDC des tables de modifications. Dans ce mode, la base de données secondaire reste synchronisée avec la base de données principale correspondante jusqu'à ce que la synchronisation des données s'arrête. La confirmation d'une transaction n'est envoyée au client que lorsque le réplica secondaire écrit les enregistrements du journal des transactions entrantes sur un disque.

Pour en savoir plus sur les modes de disponibilité, consultez Différences entre les modes de disponibilité d'un groupe de disponibilité Always On.

Pour configurer votre instance SQL Server afin de l'utiliser avec les groupes de disponibilité Always On, vous devez activer l'agent SQL Server pour capturer les journaux en cas de basculement, puis exécuter un job de nettoyage. Avant de pouvoir le faire, vous devez modifier les étapes du job de l'agent CDC pour vérifier si le réplica actuel est bien le réplica principal. Pour ce faire, utilisez la fonction sys.fn_hadr_is_primary_replica.

Utilisez les commandes suivantes pour configurer votre instance :

  -- Check if the current replica is a primary for the corresponding database.
  USE [DATABASE_NAME];
  DECLARE @DatabaseName SYSNAME = DB_NAME();
  IF (SELECT sys.fn_hadr_is_primary_replica(@DatabaseName)) = 1
  BEGIN
  -- If the replica isn't a primary, the code block that follows is skipped
  EXECUTE sys.sp_cdc_add_job @job_type = 'capture';
  EXECUTE sys.sp_cdc_add_job @job_type = 'cleanup';
  END

Limitations connues

Voici les limites connues de l'utilisation de Datastream avec les groupes de disponibilité Always On :

  • Datastream n'est pas compatible avec la résolution DNS privée basée sur les adresses IP des écouteurs. Vous devez basculer manuellement les adresses IP des répliques.
  • Après un basculement de groupe de disponibilité, vous devez vous assurer manuellement que les tâches de capture et de nettoyage de l'agent SQL Server s'exécutent sur le nouveau serveur principal. Si vous ne le faites pas, vous risquez de perdre des données si les journaux de transactions sont tronqués avant que Datastream puisse lire les modifications.
  • Si une réplique est créée avant la réplique principale, vous devez ajouter le libellé always_on_availability: true à votre flux pour éviter les problèmes d'intégrité des données. Pour savoir comment ajouter des libellés à votre flux, consultez Définir les paramètres du flux.

Étapes suivantes