Preparar para usar um grupo de disponibilidade SQL Server Always On com o Configuration Manager

Aplica-se a: Configuration Manager (branch atual)

Use este artigo para preparar o Configuration Manager para usar um grupo SQL Server disponibilidade Always On para o banco de dados do site. Esse recurso fornece uma solução de recuperação de desastres e alta disponibilidade.

O Configuration Manager dá suporte ao uso de grupos de disponibilidade:

  • Em sites primários e no site da administração central.
  • Local ou em Microsoft Azure.

Ao usar grupos de disponibilidade no Microsoft Azure, você pode aumentar ainda mais a disponibilidade do banco de dados de site usando conjuntos de disponibilidade do Azure. Para obter mais informações sobre conjuntos de disponibilidade do Azure, consulte Gerenciar a disponibilidade de máquinas virtuais.

Importante

Antes de continuar, sinta-se confortável com a configuração de grupos de SQL Server e disponibilidade. Este artigo faz referência à biblioteca SQL Server documentação com mais informações e procedimentos.

Cenários com suporte

Os cenários a seguir são suportados para usar grupos de disponibilidade com o Configuration Manager. Para obter mais informações e procedimentos para cada cenário, consulte Configure availability groups for Configuration Manager.

Pré-requisitos

Os seguintes pré-requisitos se aplicam a todos os cenários. Se os pré-requisitos adicionais se aplicarem a um cenário específico, eles serão detalhados com esse cenário.

Permissões e contas do Configuration Manager

Conta de instalação

A conta que você usa para executar a configuração do Configuration Manager deve ser:

  • Um membro do grupo administradores local em cada computador que é membro do grupo de disponibilidade.
  • Um sysadmin em cada instância do SQL Server que hospeda o banco de dados do site.

Servidor de site para replicar o acesso de membro

A conta de computador do servidor do site deve ser membro do grupo administradores locais em cada computador membro do grupo de disponibilidade.

SQL Server

Versão

Cada réplica no grupo de disponibilidade deve executar uma versão do SQL Server que é suportada pela sua versão do Configuration Manager. Quando suportados por SQL Server, nós diferentes de um grupo de disponibilidade podem executar diferentes versões de SQL Server. Para obter mais informações, consulte Supported SQL Server versions for Configuration Manager.

Edição

Use uma Enterprise de SQL Server.

Conta

Cada instância de SQL Server pode ser executado em uma conta de usuário de domínio (conta de serviço ) ou uma conta que não seja de domínio. Cada réplica em um grupo pode ter uma configuração diferente.

Banco de dados

Configurar o banco de dados em uma nova réplica

Faça essas configurações somente em uma réplica primária. Para configurar uma réplica secundária, primeiro falhe sobre o principal para o secundário. Essa ação torna a nova réplica primária secundária.

Configure o banco de dados de cada réplica com as seguintes configurações:

  • Habilitar a integração clr:

    sp_configure 'show advanced options', 1;  
    GO  
    RECONFIGURE;  
    GO  
    sp_configure 'clr enabled', 1;  
    GO  
    RECONFIGURE;  
    GO
    

    Para obter mais informações, consulte Integração clr.

  • Definir o tamanho da resposta de texto Máximo como 2147483647 :

    EXECUTE sp_configure 'max text repl size (B)', 2147483647
    
  • De definir o proprietário do banco de dados como a conta SA. Você não precisa habilitar essa conta.

  • Ativar a configuração CONFIÁVEL:

    ALTER DATABASE [CM_xxx] SET TRUSTWORTHY ON;
    

    Para obter mais informações, consulte a propriedade de banco de dados CONFIÁVEL.

  • Habilitar o Agente de Serviços:

    ALTER DATABASE [CM_xxx] SET ENABLE_BROKER
    

    Observação

    Você não pode habilitar a opção Agente de Serviço em um banco de dados que já faz parte de um grupo de disponibilidade. Você precisa habilitar essa opção antes de adi adiá-la ao grupo de disponibilidade.

  • Configure a prioridade do Agente de Serviços:

    ALTER DATABASE [CM_xxx] SET HONOR_BROKER_PRIORITY ON;
    ALTER DATABASE [CM_xxx] SET ENABLE_BROKER WITH ROLLBACK IMMEDIATE
    

Script de verificação de banco de dados

Execute o seguinte script SQL para verificar as configurações do banco de dados para réplicas primárias e secundárias. Antes de corrigir um problema em uma réplica secundária, altere essa réplica secundária para ser a réplica primária.

    SET NOCOUNT ON

    DECLARE @dbname NVARCHAR(128)

    SELECT @dbname = sd.name FROM sys.sysdatabases sd WHERE sd.dbid = DB_ID()

    IF (@dbname = N'master' OR @dbname = N'model' OR @dbname = N'msdb' OR @dbname = N'tempdb' OR @dbname = N'distribution' ) BEGIN
    RAISERROR(N'ERROR: Script is targeting a system database.  It should be targeting the DB you created instead.', 0, 1)
    GOTO Branch_Exit;
    END ELSE
    PRINT N'INFO: Targeted database is ' + @dbname + N'.'

    PRINT N'INFO: Running verifications....'

    IF NOT EXISTS (SELECT * FROM sys.configurations c WHERE c.name = 'clr enabled' AND c.value_in_use = 1)
    PRINT N'ERROR: CLR is not enabled!'
    ELSE
    PRINT N'PASS: CLR is enabled.'

    DECLARE @repltable TABLE (
    name nvarchar(max),
    minimum int,
    maximum int,
    config_value int,
    run_value int )

    INSERT INTO @repltable
    EXEC sp_configure 'max text repl size (B)'

    IF NOT EXISTS(SELECT * from @repltable where config_value = 2147483647 and run_value = 2147483647 )
    PRINT N'ERROR: Max text repl size is not correct!'
    ELSE
    PRINT N'PASS: Max text repl size is correct.'

    IF NOT EXISTS (SELECT db.owner_sid FROM sys.databases db WHERE db.database_id = DB_ID() AND db.owner_sid = 0x01)
    PRINT N'ERROR: Database owner is not sa account!'
    ELSE
    PRINT N'PASS: Database owner is sa account.'

    IF NOT EXISTS( SELECT * FROM sys.databases db WHERE db.database_id = DB_ID() AND db.is_trustworthy_on = 1 )
    PRINT N'ERROR: Trustworthy bit is not on!'
    ELSE
    PRINT N'PASS: Trustworthy bit is on.'

    IF NOT EXISTS( SELECT * FROM sys.databases db WHERE db.database_id = DB_ID() AND db.is_broker_enabled = 1 )
    PRINT N'ERROR: Service broker is not enabled!'
    ELSE
    PRINT N'PASS: Service broker is enabled.'

    IF NOT EXISTS( SELECT * FROM sys.databases db WHERE db.database_id = DB_ID() AND db.is_honor_broker_priority_on = 1 )
    PRINT N'ERROR: Service broker priority is not set!'
    ELSE
    PRINT N'PASS: Service broker priority is set.'

    PRINT N'Done!'

    Branch_Exit:

Configurações de grupo de disponibilidade

Membros da réplica

  • O grupo de disponibilidade deve ter uma réplica primária.

  • Use o mesmo número e tipo de réplicas em um grupo de disponibilidade que sua versão SQL Server suporta.

  • Você pode usar uma réplica de confirmações assíncrona para recuperar sua réplica síncrona. Para obter mais informações, consulte opções de recuperação de banco de dados de site.

    Aviso

    O Configuration Manager não dá suporte ao failover para usar a réplica de confirmação assíncrona como banco de dados de site. Para obter mais informações, consulte Modos de failover e failover (grupos de disponibilidade Always On).

O Configuration Manager não valida o estado da réplica de confirmação assíncrona para confirmar sua atual. O uso de uma réplica de confirmação assíncrona, pois o banco de dados de site pode colocar a integridade de seu site e dados em risco. Essa réplica pode estar fora de sincronia por design. Para obter mais informações, consulte Overview of SQL Server Always On availability groups.

Cada membro da réplica deve ter a seguinte configuração:

  • Use a instância padrão ou uma instância nomeada.

    Observação

    Não há um compartilhamento de arquivos no servidor com o mesmo nome que o nome da SQL Server instância.

  • A configuração Conexões na Função Primária é Permitir todas as conexões.

  • A configuração Secundária Aceitável é Sim.

  • Habilitado para Failover Manual

    Observação

    O Configuration Manager dá suporte ao uso de réplicas síncronas do grupo de disponibilidade quando definidas como Failover Automático. Definir Failover Manual quando:

    • Execute a configuração do Configuration Manager para especificar o uso do banco de dados de site no grupo de disponibilidade.
    • Instale qualquer atualização no Configuration Manager. (Não apenas atualizações que se aplicam ao banco de dados do site).
  • Todos os membros precisam do mesmo modo de semeamento. A configuração do Configuration Manager inclui uma verificação de pré-requisito para verificar essa configuração ao criar um banco de dados por meio de instalação ou recuperação.

    Observação

    Quando a instalação cria o banco de dados e você configura a semeação automática, o grupo de disponibilidade deve ter permissões para criar o banco de dados. Esse requisito se aplica a um novo banco de dados ou recuperação. Para obter mais informações, consulte Semeamento automático para réplica secundária.

Local do membro da réplica

Hospede todas as réplicas em um grupo de disponibilidade local ou hospede-as todas Microsoft Azure. Não há suporte para um grupo que inclua um membro local e um membro no Azure.

Observação

Se você estiver usando uma máquina virtual do Azure para o SQL Server, habilita o IP flutuante. Para obter mais informações, consulte Configure a load balancer for a SQL Server always on availability group in Azure virtual machines.

A configuração do Configuration Manager precisa se conectar a cada réplica. Quando você configurar um grupo de disponibilidade no Azure e o grupo estiver por trás de um balanceador de carga interno ou externo, abra as seguintes portas padrão:

  • Mapeado de ponto de extremidade RPC: TCP 135

  • SQL Server Agente de Serviço: TCP 4022

  • SQL sobre TCP: TCP 1433

Após a conclusão da instalação, essas portas devem permanecer abertas para o Configuration Manager e o analisador de link de replicação.

Você pode usar portas personalizadas para essas configurações. Use as mesmas portas personalizadas pelo ponto de extremidade e em todas as réplicas no grupo de disponibilidade.

Para SQL Server replicar dados entre sites, crie uma regra de balanceamento de carga para cada porta no balanceador de carga do Azure. Para obter mais informações, consulte Configure High Availability Ports for an internal load balancer.

Ouvinte

O grupo de disponibilidade deve ter pelo menos um ouvinte de grupo de disponibilidade. Quando você configura o Configuration Manager para usar o banco de dados de site no grupo de disponibilidade, ele usa o nome virtual desse ouvinte. Embora um grupo de disponibilidade possa conter vários ouvintes, o Configuration Manager só pode usar um. Para obter mais informações, consulte Create or configure a SQL Server availability group listener.

Caminhos de arquivo

Quando você executar a configuração do Configuration Manager para configurar um site para usar o banco de dados em um grupo de disponibilidade, cada servidor de réplica secundário deve ter um caminho de arquivo SQL Server idêntico ao caminho do arquivo para os arquivos de banco de dados do site na réplica primária atual. Se um caminho idêntico não existir, a instalação falhará ao adicionar a instância do grupo de disponibilidade como o novo local do banco de dados do site.

A conta SQL Server de serviço local deve ter permissão controle total para esta pasta.

Os servidores de réplica secundários só exigem esse caminho de arquivo enquanto você está usando a configuração do Configuration Manager para especificar a instância do banco de dados no grupo de disponibilidade. Depois de concluir a configuração do banco de dados de site no grupo de disponibilidade, você pode excluir o caminho nãousado de severes de réplicas secundárias.

Por exemplo, considere o seguinte cenário:

  • Você cria um grupo de disponibilidade que usa três SQL Servidores.

  • Seu servidor de réplica principal é uma nova instalação do SQL Server 2014. Por padrão, ele armazena os arquivos MDF e LDF do banco de dados em C:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\DATA .

  • Você atualizou ambos os servidores de réplica secundários para SQL Server 2014 de versões anteriores. Com a atualização, esses servidores mantêm o caminho de arquivo original para armazenar arquivos de banco de dados: C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA .

  • Antes de mover o banco de dados de site para esse grupo de disponibilidade, em cada servidor de réplica secundário, crie o seguinte caminho de arquivo: C:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\DATA . Esse caminho é uma duplicata do caminho em uso na réplica primária, mesmo que as réplicas secundárias não usem esse local de arquivo.

  • Em seguida, você concede à SQL Server de serviço em cada réplica secundária acesso de controle total ao local de arquivo recém-criado nesse servidor.

  • Agora você pode executar com êxito a configuração do Configuration Manager para configurar o site para usar o banco de dados de site no grupo de disponibilidade.

Failover de várias sub-redes

Você pode habilitar a palavra-chave de cadeia de caracteres de conexão MultiSubnetFailover SQL Server. Você também precisa adicionar manualmente os seguintes valores ao registro Windows no servidor do site:

HKLM:\SOFTWARE\Microsoft\SMS\Identification
HKLM:\SOFTWARE\Microsoft\SMS\SQL Server

MSF Enabled : 1 (DWORD)

Aviso

O uso de grupos de disponibilidade do servidor de site e SQL Server Always On com failover de várias sub-redes não fornece os recursos completos de failover automático para cenários de recuperação de desastres.

Se você precisar criar um grupo de disponibilidade com um membro em um local remoto, priorize com base na latência de rede mais baixa. Alta latência de rede pode causar falhas de replicação.

Limitações e problemas conhecidos

As limitações a seguir se aplicam a todos os cenários.

Opções e configurações de SQL Server não compatíveis

  • Grupos básicos de disponibilidade : introduzidos com SQL Server edição Standard 2016, os grupos de disponibilidade básicas não suportam acesso de leitura a réplicas secundárias. A configuração requer esse acesso. Para obter mais informações, consulte Basic SQL Server availability groups.

  • Instância de cluster de failover: Não há suporte para instâncias de cluster de failover para uma réplica que você usa com o Configuration Manager. Para obter mais informações, consulte SQL Server instâncias de cluster de failover Always On.

SQL Servidores que hospedam grupos de disponibilidade adicionais

Quando o SQL Server hospeda um ou mais grupos de disponibilidade, além do grupo que você usa para o Configuration Manager, ele precisa de configurações específicas no momento em que você executar a configuração do Configuration Manager. Essas configurações também são necessárias para instalar uma atualização para o Configuration Manager. Cada réplica em cada grupo de disponibilidade deve ter as seguintes configurações:

  • Failover manual

  • Permitir qualquer conexão somente leitura

Observação

O Configuration Manager dá suporte ao uso de réplicas síncronas do grupo de disponibilidade quando definidas como Failover Automático. Definir Failover Manual quando:

  • Execute a configuração do Configuration Manager para especificar o uso do banco de dados de site no grupo de disponibilidade.
  • Instale qualquer atualização no Configuration Manager. (Não apenas atualizações que se aplicam ao banco de dados do site).

Uso de banco de dados sem suporte

O Configuration Manager dá suporte apenas ao banco de dados de site em um grupo de disponibilidade

Os bancos de dados a seguir não são suportados pelo Configuration Manager em um grupo de disponibilidade:

  • Banco de dados de relatório

  • Banco de dados WSUS

Banco de dados pré-existente

Não é possível usar um novo banco de dados criado na réplica. Ao configurar um grupo de disponibilidade, restaure uma cópia de um banco de dados do Configuration Manager existente para a réplica primária.

Erros de instalação em ConfigMgrSetup.log

Quando você executar a configuração do Configuration Manager para mover um banco de dados de site para um grupo de disponibilidade, ele tenta processar funções de banco de dados nas réplicas secundárias do grupo de disponibilidade. O arquivo ConfigMgrSetup.log mostra o seguinte erro:

ERROR: SQL Server error: [25000][3906][Microsoft][SQL Server Native Client 11.0][SQL Server]Failed to update database "CM_AAA" because the database is read-only. Configuration Manager Setup 1/21/2016 4:54:59 PM 7344 (0x1CB0)

Esses erros são seguros de ignorar.

Expansão do site

Se você configurar o banco de dados de site para um site principal autônomo para usar um grupo de disponibilidade, não será possível expandir o site para incluir um site de administração central. Se você tentar esse processo, ele falhará. Para expandir o site, remova temporariamente o banco de dados de site principal do grupo de disponibilidade.

Não é necessário fazer alterações na configuração ao adicionar um site secundário.

Alterações no backup do site

Backup de arquivos de banco de dados

Quando um banco de dados de site usa um grupo de disponibilidade, execute a tarefa de manutenção do servidor de Site de Backup integrado para fazer backup das configurações e arquivos comuns do Configuration Manager. Não use os arquivos MDF ou LDF criados por esse backup. Em vez disso, faça backups diretos desses arquivos de banco de dados usando SQL Server.

Log de transações

De definir o modelo de recuperação do banco de dados de site como Completo. Essa configuração é um requisito para o uso do Configuration Manager em um grupo de disponibilidade. Planeje monitorar e manter o tamanho do log de transações do banco de dados do site. No modelo de recuperação completo, as transações não são fortalecidas até que ele faça um backup completo do banco de dados ou do log de transações. Para obter mais informações, consulte Back up and restore of SQL Server databases.

Alterações na recuperação do site

Se pelo menos um nó do grupo de disponibilidade ainda estiver funcional, use a opção de recuperação de site para Ignorar a recuperação do banco de dados (Use essa opção se o banco de dados do site não tiver sido afetado).

A recuperação de site pode recriar o banco de dados em um grupo de disponibilidade. Esse processo funciona com a semeação manual e automática.

Dica

Quando você executar o assistente de instalação/recuperação, a página Novo Banco de Dados de Grupo de Disponibilidade só se aplica às configurações de semeamento manual. Com a semeação automática, não há backup de banco de dados compartilhado, portanto, essa página do assistente não é mostrada.

Para obter mais informações, consulte Backup e recuperação.

Alterações no relatório

Instalar o ponto de serviço de relatório

O ponto de serviços de relatório não dá suporte ao uso do nome virtual do ouvinte do grupo de disponibilidade. Ele também não dá suporte à hospedagem de seu banco de dados em um grupo de disponibilidade.

  • Por padrão, a instalação do ponto de serviços de relatório define o nome do servidor de banco de dados de site como o nome virtual especificado como ouvinte. Altere essa configuração para especificar um nome de computador e uma instância de uma réplica no grupo de disponibilidade.

  • Para descarregar relatórios e aumentar a disponibilidade quando um nó de réplica estiver offline, considere instalar pontos adicionais de serviços de relatório em cada nó de réplica. Em seguida, configure cada ponto de serviços de relatório para usar seu próprio nome de computador. Quando você instala um ponto de serviço de relatório em cada réplica do grupo de disponibilidade, os relatórios sempre podem se conectar a um servidor de ponto de relatório ativo.

Alternar o ponto de serviços de relatório usado pelo console

  1. No console do Configuration Manager, vá para o espaço de trabalho Monitoramento, expanda Reporting e selecione o nó Relatórios.

  2. Na faixa de opções, selecione Opções de Relatório.

  3. Na caixa de diálogo Opções de Relatório, selecione o ponto de serviços de relatório que você deseja usar.

Próximas etapas

Este artigo descreve os pré-requisitos, limitações e alterações em tarefas comuns que o Configuration Manager exige ao usar grupos de disponibilidade. Para procedimentos para configurar e configurar seu site para usar grupos de disponibilidade, consulte Configure availability groups.