Partilhar via


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

Este tópico fornece informações para ajudar a solucionar problemas típicos ao configurar instâncias de servidor para o Grupos de Disponibilidade AlwaysOn. Os problemas de configuração típicos incluem: o Grupos de Disponibilidade AlwaysOn está desabilitado, as contas estão configuradas incorretamente, o ponto de extremidade de espelhamento de banco de dados não existe, o ponto de extremidade está inacessível (Erro 1418 do SQL Server), o acesso à rede não existe e falha no comando de junção de banco de dados (Erro 35250 do SQL Server).

ObservaçãoObservação

Verifique se você está atendendo aos pré-requisitos do Grupos de Disponibilidade AlwaysOn. Para obter mais informações, consulte Pré-requisitos, restrições e recomendações para grupos de disponibilidade AlwaysOn (SQL Server).

Neste tópico:

Seção

Descrição

Os grupos de disponibilidade AlwaysOn não estão habilitados

Se uma instância do SQL Server não estiver habilitada para o Grupos de Disponibilidade AlwaysOn, a instância não dará suporte à criação de grupo de disponibilidade e não poderá hospedar nenhuma réplica de disponibilidade.

Contas

Discute os requisitos para configurar corretamente as contas nas quais o SQL Server será executado.

Pontos de extremidade

Discute como diagnosticar problemas com o ponto de extremidade de espelhamento de banco de dados de uma instância de servidor.

Nome do sistema

Resume as alternativas para especificar o nome do sistema de uma instância do servidor em uma URL de ponto de extremidade.

Acesso de rede

Documenta o requisito de que cada instância do servidor que está hospedando uma réplica de disponibilidade deve poder acessar a porta de cada uma das instâncias do servidor sobre TCP.

Acesso ao ponto de extremidade (erro 1418 do SQL Server)

Contém informações sobre essa mensagem de erro do SQL Server.

Falha ao unir bancos de dados (erro 35250 do SQL Server)

Discute as possíveis causas e resolução de uma falha ao unir bancos de dados secundários a um grupo de disponibilidade porque a conexão com a réplica primária não está ativa.

O roteamento somente leitura não está funcionando corretamente

Tarefas relacionadas

Contém uma lista de tópicos orientados para tarefas nos Manuais Online do SQL Server 2012 que são particularmente relevantes para solucionar problemas de configuração de grupos de disponibilidade.

Conteúdo relacionado

Contém uma lista de recursos relevantes que são externos aos Manuais Online do SQL Server.

Os grupos de disponibilidade AlwaysOn não estão habilitados

O recurso do Grupos de Disponibilidade AlwaysOn deve estar habilitado em cada uma das instâncias do SQL Server 2012. Para obter mais informações, consulte Habilitar e desabilitar Grupos de Disponibilidade AlwaysOn (SQL Server).

Contas

As contas nas quais o SQL Server está sendo executado devem ser configuradas corretamente.

  1. As contas têm as permissões corretas?

    1. Se os parceiros forem executados como a mesma conta de usuário do domínio, os logons de usuário corretos existirão automaticamente nos dois bancos de dados master. Isso simplifica a configuração de segurança do banco de dados e é recomendado.

    2. Se duas instâncias do servidor forem executadas como contas diferentes, o logon de cada conta deverá ser criado no banco de dados master na instância do servidor remoto e esse logon deverá receber permissões CONNECT para se conectar ao ponto de extremidade de espelhamento do banco de dados dessa instância do servidor. Para obter mais informações, consulte Configurar contas de logon para espelhamento de banco de dados ou para grupos de disponibilidade AlwaysOn (SQL Server).

  2. Se o SQL Server estiver sendo executado como uma conta interna, como Sistema Local, Serviço Local ou Serviço de Rede ou uma conta que não pertença ao domínio, você deverá usar certificados para autenticação de ponto de extremidade. Se suas contas de serviço estiverem usando contas de domínio no mesmo domínio, você poderá escolher conceder acesso de CONNECT a cada conta de serviço em todos os locais de réplica ou usar certificados. Para obter mais informações, consulte Usar certificados para um ponto de extremidade de espelhamento de banco de dados (Transact-SQL).

Ícone de seta usado com o link Voltar ao Início[Início]

Pontos de extremidade

Os pontos de extremidade devem ser configurados corretamente.

  1. Verifique se cada instância do SQL Server que irá hospedar uma réplica de disponibilidade (cada local de réplica) tem um ponto de extremidade de espelhamento de banco de dados. Para determinar se existe um ponto de extremidade de espelhamento do banco de dados em uma determinada instância do servidor, use a exibição do catálogo sys.database_mirroring_endpoints. Para obter mais informações, consulte Criar um ponto de extremidade de espelhamento de banco de dados para a Autenticação do Windows (Transact-SQL) ou Permitir que um ponto de extremidade de espelhamento de banco de dados use certificados para conexões de saída (Transact-SQL).

  2. Verifique se os números da porta estão corretos.

    Para identificar a porta associada atualmente com o ponto de extremidade de espelhamento de banco de dados de uma instância de servidor, use a seguinte instrução do Transact-SQL:

    SELECT type_desc, port FROM sys.tcp_endpoints;
    GO
    
  3. Para os problemas da configuração do Grupos de Disponibilidade AlwaysOn que forem difíceis de explicar, recomendamos que você inspecione cada instância do servidor para determinar se ela está escutando nas portas corretas. Para obter mais informações sobre verificação de disponibilidade de porta, consulte MSSQLSERVER_1418.

  4. Verifique se os pontos de extremidade foram iniciados (STATE=STARTED). Em cada instância do servidor, use a seguinte instrução Transact-SQL:

    SELECT state_desc FROM sys.database_mirroring_endpoints
    

    Para obter mais informações sobre a coluna state_desc, consulte sys.database_mirroring_endpoints (Transact-SQL).

    Para iniciar um ponto de extremidade, use a seguinte instrução Transact-SQL:

    ALTER ENDPOINT Endpoint_Mirroring 
    STATE = STARTED 
    AS TCP (LISTENER_PORT = <port_number>)
    FOR database_mirroring (ROLE = ALL);
    GO
    

    Para obter mais informações, consulte ALTER ENDPOINT (Transact-SQL).

  5. Verifique se o logon do outro servidor tem permissão CONNECT. Para determinar quem tem permissão CONNECT para um ponto de extremidade, em cada instância do servidor, use a seguinte instrução Transact-SQL:

    SELECT 'Metadata Check';
    SELECT EP.name, SP.STATE, 
       CONVERT(nvarchar(38), suser_name(SP.grantor_principal_id)) 
          AS GRANTOR, 
       SP.TYPE AS PERMISSION,
       CONVERT(nvarchar(46),suser_name(SP.grantee_principal_id)) 
          AS GRANTEE 
       FROM sys.server_permissions SP , sys.endpoints EP
       WHERE SP.major_id = EP.endpoint_id
       ORDER BY Permission,grantor, grantee; 
    GO
    

Ícone de seta usado com o link Voltar ao Início[Início]

Nome do Sistema

Para o nome de sistema de uma instância do servidor em uma URL de ponto de extremidade, você pode usar qualquer nome que identifique o sistema inequivocamente. O endereço de servidor pode ser um nome de sistema (se os sistemas estiverem no mesmo domínio), um nome de domínio totalmente qualificado ou um endereço de IP (preferivelmente, um endereço de IP estático). Usando o nome de domínio totalmente qualificado o funcionamento é garantido. Para obter mais informações, consulte Especifique a URL do Ponto de Extremidade Ao Adicionar ou Modificando uma Réplica de disponibilidade (SQL Server).

Acesso de rede

Cada instância do servidor que esteja hospedando uma réplica de disponibilidade deve poder acessar a porta de cada uma das instâncias do servidor sobre TCP. Isso será especialmente importante se as instâncias do servidor estiverem em domínios diferentes que não confiam um no outro (domínios não confiáveis).

Acesso ao ponto de extremidade (erro 1418 do SQL Server)

Essa mensagem do SQL Server indica que o endereço de rede do servidor especificado na URL do ponto de extremidade não pode ser atingido ou não existe e sugere que você verifique o nome do endereço de rede e emita o comando novamente. Para obter mais informações, consulte MSSQLSERVER_1418.

Ícone de seta usado com o link Voltar ao Início[Início]

Falha ao unir bancos de dados (erro 35250 do SQL Server)

Discute as possíveis causas e resolução de uma falha ao unir bancos de dados secundários a um grupo de disponibilidade porque a conexão com a réplica primária não está ativa.

Resolução:

  1. Verifique a configuração do firewall para confirmar se ele permite comunicação da porta do ponto de extremidade entre as instâncias do servidor que hospedam a réplica primária e a réplica secundária (por padrão, a porta 5022).

  2. Verifique se a conta de serviço de rede tem permissão para conectar-se ao ponto de extremidade.

O roteamento somente leitura não está funcionando corretamente

Verifique as configurações de valores a seguir e corrija-as se necessário.

     

Em...

Ação

Comentários

Link

Caixa de seleção

Réplica primária atual

Verifique se o ouvinte do grupo de disponibilidade está online.

Para verificar se o ouvinte está online:

SELECT * FROM sys.dm_tcp_listener_states;

Para reiniciar um ouvinte offline:

ALTER AVAILABILITY GROUP myAG RESTART LISTENER 'myAG_Listener';

sys.dm_tcp_listener_states (Transact-SQL)

ALTER AVAILABILITY GROUP (Transact-SQL)

Caixa de seleção

Réplica primária atual

Verifique se READ_ONLY_ROUTING_LIST contém somente instâncias de servidor que hospedem uma réplica secundária legível.

  • Para identificar réplicas secundárias legíveis:

    sys.availability_replicas (coluna secondary_role_allow_connections_desc)

  • Para exibir uma lista de roteamento somente leitura:

    sys.availability_read_only_routing_lists

  • Para alterar uma lista de roteamento somente leitura:

    ALTER AVAILABILITY GROUP

sys.availability_replicas (Transact-SQL)

sys.availability_read_only_routing_lists (Transact-SQL)

ALTER AVAILABILITY GROUP (Transact-SQL)

Caixa de seleção

Cada réplica em read_only_routing_list

Verifique se o firewall do Windows não está bloqueando a porta READ_ONLY_ROUTING_URL.

Configurar um Firewall do Windows para acesso ao Mecanismo de Banco de Dados

Caixa de seleção

Cada réplica em read_only_routing_list

No SQL Server Configuration Manager, verifique se:

  • A conectividade remota do SQL Server está habilitada.

  • TCP/IP está habilitado.

  • Os endereços IP estão configurados corretamente.

Exibir ou alterar as propriedades de servidor

Configurar um servidor para escuta em uma porta TCP específica (SQL Server Configuration Manager)

Caixa de seleção

Cada réplica em read_only_routing_list

Verifique se READ_ONLY_ROUTING_URL (TCP://system-address:port) contém o FQDN (nome de domínio totalmente qualificado) correto e o número da porta.

Calculando read_only_routing_url de AlwaysOn

sys.availability_replicas (Transact-SQL)

ALTER AVAILABILITY GROUP (Transact-SQL)

Caixa de seleção

Sistema cliente

Verifique se o driver cliente dá suporte a roteamento somente leitura.

Conectividade de cliente AlwaysOn (SQL Server)

Ícone de seta usado com o link Voltar ao InícioInício

Tarefas relacionadas

Ícone de seta usado com o link Voltar ao Início[Início]

Conteúdo relacionado

Ícone de seta usado com o link Voltar ao Início[Início]

Consulte também

Conceitos

Segurança de transporte para espelhamento de banco de dados e grupos de disponibilidade AlwaysOn (SQL Server)

Pré-requisitos, restrições e recomendações para grupos de disponibilidade AlwaysOn (SQL Server)

Outros recursos

Configuração de rede de cliente