Trabalhar com grupos de disponibilidade sempre ativados


Esta página descreve o que são os grupos de disponibilidade sempre ativados 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 sempre ativados

No SQL Server, os grupos de disponibilidade sempre ativados 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 sempre ativados maximizam a disponibilidade do banco de dados para as 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 operações de backup ou acesso somente leitura.

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

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

Configurar o Datastream para uso com grupos de disponibilidade sempre ativa

O Datastream oferece suporte ao modo de disponibilidade confirmação síncrona com o método CDC de alteração de tabelas. Nesse modo, o banco de dados secundário permanece sincronizado com o principal 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 registro de transações recebidos em um disco.

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

Para configurar a instância do SQL Server para uso com os Grupos de Disponibilidade "Sempre ativada", ative o Agente do SQL Server para capturar registros quando houver um failover e execute um job de limpeza. Antes de fazer isso, você precisa modificar as etapas do job do agente do 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 abaixo 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