Trabalhar com grupos de disponibilidade Always On


Nesta página, descrevemos o que são os grupos de disponibilidade AlwaysOn no SQL Server e como o Datastream oferece suporte a eles para cenários de failover e recuperação de dados.

Visão geral dos grupos de disponibilidade Always On

No SQL Server, os grupos de disponibilidade Always On são uma solução de alta disponibilidade que permite preparar seus bancos de dados para cenários de recuperação de desastres.

Os grupos de disponibilidade Always On maximizam a disponibilidade do banco de dados para empresas. Os grupos de disponibilidade oferecem suporte a um ambiente replicado para um conjunto selecionado de bancos de dados, conhecidos como bancos de dados de disponibilidade. Cada grupo inclui um conjunto de bancos de dados principais para tarefas de leitura e gravação e até oito conjuntos de bancos de dados secundários correspondentes. Os bancos de dados secundários podem permitir acesso somente leitura ou operações de backup.

Para mais informações sobre grupos de disponibilidade AlwaysOn, consulte O que é um grupo de disponibilidade AlwaysOn? na documentação do SQL Server.

Para informações sobre os pré-requisitos do grupo de disponibilidade Always On para uma instância do SQL Server, consulte a documentação do SQL Server.

Configurar o Datastream para uso com grupos de disponibilidade Always On

O Datastream é compatível com o modo de disponibilidade synchronous-commit com o método CDC de tabelas de alterações. Nesse modo, o banco de dados secundário permanece sincronizado com o primário correspondente até que a sincronização de dados seja interrompida. A confirmação de uma transação só é enviada ao cliente quando a réplica secundária grava os registros de log de transações recebidas em um disco.

Para informações sobre os modos de disponibilidade, consulte Diferenças entre os modos de disponibilidade de um grupo de disponibilidade Always On.

Para configurar sua instância do SQL Server para uso com grupos de disponibilidade Always On, é necessário ativar o SQL Server Agent para capturar registros quando houver um failover e executar um trabalho de limpeza. Antes de fazer isso, modifique as etapas do job do agente de CDC para verificar se a réplica atual é realmente a principal. Isso é feito usando a função sys.fn_hadr_is_primary_replica.

Use os comandos a seguir para configurar a instância:

  -- 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

A seguir