Solucionar problemas de SQL Server Always On

Este artigo ajuda você a resolve o problema comum sobre Always On configuração no SQL Server.

Observação

Para obter uma experiência guiada sobre a experiência deste artigo, consulte Solução de problemas de SQL Server Always On.

Versão original do produto: SQL Server 2012 Enterprise, SQL Server 2014 Enterprise, SQL Server 2016 Enterprise
Número original do KB: 10179

Notas importantes

Preciso de ponteiros para configurar e configurar grupos de disponibilidade Always On

Se você estiver procurando documentação sobre como configurar Always On configuração, consulte os seguintes documentos:

Introdução com Always On Grupos de Disponibilidade (SQL Server) – O documento fornece respostas para muitas perguntas que você pode ter sobre grupos de disponibilidade e configuração. Seguir todas as etapas deste artigo e examinar pré-requisitos, restrições e recomendações para grupos de disponibilidade Always On (SQL Server) ajudará a evitar muitos problemas que você pode encontrar com a configuração e a manutenção de grupos de disponibilidade em seu ambiente.

Recursos adicionais

Se essas informações não forem úteis, consulte Mais informações sobre Always On Grupos de Disponibilidade.

Estou tendo problemas para configurar grupos de disponibilidade Always On

Os problemas de configuração típicos incluem Always On Grupos de Disponibilidade estão desabilitados, as contas estão configuradas incorretamente, o ponto de extremidade de espelhamento de banco de dados não existe, o ponto de extremidade é inacessível (SQL Server Erro 1418), o acesso à rede não existe e um comando de banco de dados de junção falha (SQL Server Erro 35250). Examine o documento a seguir para obter ajuda na solução de problemas destes problemas:

Solucionar problemas Always On configuração de grupos de disponibilidade (SQL Server)

Link adicional : Correção: Erro 41009 ao tentar criar vários grupos de disponibilidade

Se o problema ainda existir, consulte Mais informações sobre Always On Grupos de Disponibilidade.

Estou tendo problemas com a configuração do Ouvinte (19471, 19476 e outros erros)

Um dos problemas de configuração mais comuns que os clientes encontram é a criação do ouvinte do grupo de disponibilidade. Os erros são semelhantes aos seguintes:

  • Msg 19471, Nível 16, Estado 0, Linha 2O cluster WSFC não pôde colocar o recurso Nome da Rede com o nome DNS '' online. O nome DNS pode ter sido tomado ou ter um conflito com os serviços de nome existentes ou o serviço de cluster WSFC pode não estar em execução ou pode estar inacessível. Use um nome DNS diferente para resolve conflitos de nome ou marcar o log de cluster do WSFC para obter mais informações.

  • Msg 19476, Nível 16, Estado 4, Linha 2A tentativa de criar o nome da rede e o endereço IP para o ouvinte falhou. O serviço WSFC pode não estar em execução ou pode estar inacessível em seu estado atual, ou os valores fornecidos para o nome de rede e endereço IP podem estar incorretos. Verifique o estado do cluster WSFC e valide o nome da rede e o endereço IP com o administrador de rede.

Na maioria das vezes, a falha de criação do ouvinte que resulta nas mensagens anteriores deve-se à falta de permissões para o Objeto de Nome de Cluster (CNO) no Active Directory criar e ler o objeto do computador ouvinte. Para solucionar esse problema, examine os seguintes artigos:

Se o problema ainda existir, consulte Mais informações sobre Always On Grupos de Disponibilidade.

O Failover Automático não está funcionando conforme o esperado

Se você notar que o failover automático não está funcionando conforme o esperado durante o teste ou em produção, confira: Solucionar problemas de failover automático em ambientes Always On SQL Server 2012.

A configuração inadequada de falhas máximas no período especificado é uma das principais causas para o primário não falhar automaticamente no secundário. O valor padrão dessa configuração é N-1, em que N é o número de réplicas. Para obter mais informações, confira Limite máximo de falhas do cluster de failover (grupo).

Se o problema ainda existir, consulte Mais informações sobre Always On Grupos de Disponibilidade.

Estou tendo problemas para me conectar a grupos de disponibilidade Always On

Depois de configurar o ouvinte do grupo de disponibilidade para um grupo de disponibilidade Always On em SQL Server 2012, talvez você não consiga pingar o ouvinte ou se conectar a ele de um aplicativo. Você pode receber um erro semelhante ao seguinte:

Sqlcmd: Erro: Microsoft SQL Native Client : tempo limite de logon expirou.

Para solucionar problemas deste e de erros semelhantes, examine o seguinte:

Mais links de informações:

Se o problema ainda existir, consulte Mais informações sobre Always On Grupos de Disponibilidade.

Estou tendo problemas para configurar grupos de disponibilidade Always On na minha VM do Azure (IaaS)

  1. Muitos problemas relacionados ao Always On ocorrem devido à configuração inadequada do ouvinte. Se você estiver tendo problemas de conexão com o ouvinte,

    1. Verifique se você leu todas as limitações do ouvinte ILB e seguiu todas as etapas documentadas no artigo a seguir prestando atenção especial à configuração de dependência, endereço IP e vários outros parâmetros no script do PowerShell.

    2. Se não tiver certeza, talvez você queira excluir e recriar o ouvinte de acordo com o documento acima.

  2. Se você mudou recentemente sua VM para um serviço diferente ou se os endereços IP foram alterados, você precisará atualizar o valor do recurso de endereço IP para refletir o novo endereço e precisará recriar o ponto de extremidade balanceado de carga para seu AG. Você pode atualizar o endereço IP usando os comandos ou Set da Get seguinte maneira:

    Get-ClusterResource "IPResourceName" | Set-ClusterParameter -name Address -value "w.x.y.z"
    

Documentos recomendados:

Se o problema ainda existir, consulte Mais informações sobre Always On Grupos de Disponibilidade.

Leva muito tempo para o failover do primário para o secundário ou vice-versa

Após um failover automático ou um failover manual planejado sem perda de dados em um grupo de disponibilidade, você pode descobrir que o tempo de failover excede o objetivo de tempo de recuperação (RTO). Para solucionar problemas das causas e resoluções potenciais, confira Solução de problemas: RTO excedido pelo grupo de disponibilidade.

Se o problema ainda existir, consulte Mais informações sobre Always On Grupos de Disponibilidade.

As alterações na Réplica Primária não são refletidas ou lentas para serem replicadas na Réplica Secundária

Você pode notar que as alterações nas réplica primárias não estão sendo propagadas para secundárias em tempo hábil. Para solucionar problemas e resolve esses problemas, tente o seguinte:

Se o problema ainda existir, consulte Mais informações sobre Always On Grupos de Disponibilidade.

Como gerenciar o tamanho do log de transações para meus bancos de dados AG

Você pode reduzir os tamanhos de log de transação configurando backups regulares em servidores primários ou secundários.

Examine os tópicos a seguir para obter informações adicionais:

Se essas informações não forem úteis, consulte Mais informações sobre Always On Grupos de Disponibilidade.

Servidores primários ou secundários atingidos em Resolver Estado ou você experimenta failovers inesperados

Se o problema ainda existir, consulte Mais informações sobre Always On Grupos de Disponibilidade.

Não é possível colocar recursos online

Verifique se os bancos de dados estão demorando muito para serem recuperados examinando as mensagens no SQL ErrorLog.

Se o problema ainda existir, consulte Mais informações sobre Always On Grupos de Disponibilidade.

Perguntas frequentes

  1. É possível ter dois ouvintes para um grupo de disponibilidade?

    Sim, você pode configurar vários ouvintes para o mesmo grupo de disponibilidade. Consulte Como criar vários ouvintes para o mesmo grupo de disponibilidade (Goden Yao).

  2. É possível ter uma NIC separada cartão para sempre no tráfego e conectividade do cliente?

    Sim, você pode ter cartão nic dedicados para Always On tráfego. Consulte Configurar grupo de disponibilidade para se comunicar em uma rede dedicada.

  3. Quais edições dão suporte Always On instâncias de cluster de failover?

    Este tópico no SQL Server Books Online tem mais informações: edições e recursos compatíveis para SQL Server 2016.

  4. Como se recuperar em caso de falha em todos os nós do cluster?

    Consulte Recuperação de Desastre do WSFC por meio do Quorum Forçado (SQL Server).

  5. Onde posso encontrar informações sobre o suporte para transações distribuídas em configurações de AG?

    Consulte Transações – grupos de disponibilidade e espelhamento de banco de dados.

  6. Como atualizar Always On configurações?

    Consulte Atualizar Always On Instâncias de Réplica do Grupo de Disponibilidade.

  7. Como adicionar o banco de dados habilitado para TDE (Transparent Data Encryption) à configuração de AG?

    Para adicionar o DB habilitado para TDE ao AG, consulte Como configurar Always On para um banco de dados TDE.

  8. Como configurar alertas para verificar se o secundário está atrasado atrás do primário?

    Você pode usar o seguinte script:

    SELECT ag.name AS ag_name, ar.replica_server_name AS ag_replica_server,
    dr_state.database_id AS database_id,
    is_ag_replica_local = CASE
        WHEN ar_state.is_local = 1 THEN N'LOCAL'
        ELSE 'REMOTE'
        END,
    ag_replica_role = CASE
        WHEN ar_state.role_desc IS NULL THEN N'DISCONNECTED'
        ELSE ar_state.role_desc
        END,
    dr_state.last_hardened_lsn, dr_state.last_hardened_time,
    datediff(s,last_hardened_time, getdate()) AS 'seconds behind primary'
    FROM (( sys.availability_groups AS ag
    JOIN sys.availability_replicas AS ar
        ON ag.group_id = ar.group_id)
    JOIN sys.dm_hadr_availability_replica_states AS ar_state
        ON ar.replica_id = ar_state.replica_id)
    JOIN sys.dm_hadr_database_replica_states dr_state
        ON ag.group_id = dr_state.group_id AND dr_state.replica_id = ar_state.replica_id
    
  9. Como ser alertado se o estado do banco de dados não for sincronizado?

    Você pode usar o seguinte script:

    SELECT ag.name AS ag_name, ar.replica_server_name AS ag_replica_server,
    dr_state.database_id AS database_id,
    is_ag_replica_local = CASE
        WHEN ar_state.is_local = 1 THEN N'LOCAL'
        ELSE 'REMOTE'
        END,
    ag_replica_role = CASE
        WHEN ar_state.role_desc IS NULL THEN N'DISCONNECTED'
        ELSE ar_state.role_desc
        END,
    ar_state.connected_state_desc, ar.availability_mode_desc, dr_state.synchronization_state_desc
    FROM (( sys.availability_groups AS ag
    JOIN sys.availability_replicas AS ar
        ON ag.group_id = ar.group_id )
    JOIN sys.dm_hadr_availability_replica_states AS ar_state
        ON ar.replica_id = ar_state.replica_id)
    JOIN sys.dm_hadr_database_replica_states dr_state
        ON ag.group_id = dr_state.group_id AND dr_state.replica_id = ar_state.replica_id
    

    Você também pode examinar os seguintes links para obter métodos adicionais para monitorar grupos de Always On:

Mais informações sobre Always On Grupos de Disponibilidade