Partilhar via


Configurar um ouvinte para um grupo de disponibilidade Always On

Aplica-se: SQL Server

Este tópico descreve como criar ou configurar um único ouvinte do grupo de disponibilidade para um Grupo de Disponibilidade Always On usando o SQL Server Management Studio, o Transact-SQL ou o PowerShell no SQL Server.

Importante

Para criar o primeiro ouvinte de um grupo de disponibilidade, é altamente recomendável usar o SQL Server Management Studio, Transact-SQL ou SQL Server PowerShell. Evite criar um ouvinte diretamente no cluster WSFC, exceto se necessário, por exemplo, para criar um ouvinte adicional.

Já existe um ouvinte para esse grupo de disponibilidade?

Para determinar se um ouvinte já existe para o grupo de disponibilidade

Observação

Se já houver um ouvinte e você quiser criar um ouvinte adicional, consulte Criar um ouvinte adicional para um grupo de disponibilidade, posteriormente neste artigo.

Limitações e restrições

  • Só é possível criar um ouvinte por grupo de disponibilidade via SQL Server. Geralmente, cada grupo de disponibilidade exige somente um ouvinte. No entanto, alguns cenários de cliente exigem vários ouvintes para um grupo de disponibilidade. Depois de criar um ouvinte pelo SQL Server, você pode usar o Windows PowerShell para clusters de failover ou o Gerenciador de Cluster de Failover do WSFC para criar ouvintes adicionais. Para obter mais informações, consulte Criar um ouvinte adicional para um grupo de disponibilidade, posteriormente neste artigo.

Recomendações

O uso de um endereço IP estático é recomendável, embora não obrigatório, para várias configurações de sub-rede.

Pré-requisitos

  • Você deve estar conectado à instância do servidor que hospeda a réplica primária.

  • Se estiver configurando um ouvinte do grupo de disponibilidade em várias sub-redes e estiver planejando usar endereços IP estáticos, você precisará obter os endereços IP estáticos de cada sub-rede que hospeda uma réplica de disponibilidade para o grupo de disponibilidade para o qual está criando o ouvinte. Normalmente, você precisará solicitar os endereços IP estáticos aos administradores de rede.

Importante

Antes de criar seu primeiro ouvinte, é altamente recomendável ler Conectividade de cliente Always On.

Requisitos para o nome DNS de um ouvinte do grupo de disponibilidade

Cada ouvinte de grupo de disponibilidade exige um nome de host DNS que é exclusivo no domínio e no NetBIOS. O nome DNS é um valor da cadeia de caracteres. Este nome pode conter somente caracteres alfanuméricos, traços/hifens (-) e sublinhados (_), em qualquer ordem. Os nomes de host DNS diferenciam maiúsculas de minúsculas. O comprimento máximo é 63 caracteres; no entanto, no SQL Server Management Studio, o comprimento máximo que você pode especificar é 15 caracteres.

Nós recomendamos que você especifique uma cadeia de caracteres significativa. Por exemplo, para um grupo de disponibilidade denominado AG1, um nome de host de DNS significativo seria ag1-listener.

Importante

O NetBIOS reconhece somente os primeiros 15 caracteres no dns_name. Se você tiver dois clusters do WSFC que sejam controlados pelo mesmo Active Directory e tentar criar ouvintes de grupo de disponibilidade nos dois clusters usando nomes com mais de 15 caracteres e um prefixo idêntico de 15 caracteres, você obterá um erro relatando que o recurso Nome de Rede virtual não pôde ser colocado online. Para obter informações sobre regras de nomenclatura de prefixos para nomes DNS, consulte Atribuindo nomes de domínio.

Permissões do Windows

Permissões Link
O CNO (nome do objeto de cluster) do cluster WSFC que está hospedando o grupo de disponibilidade deve ter a permissão para Criar objetos de computador.

No Active Directory, por padrão, um CNO não tem a permissão Criar Objetos de computador explicitamente e pode criar 10 VCOs (objetos de computador virtuais). Depois que os dez VCOs forem criados, a criação de VCOs adicionais apresentará falha. É possível impedir isso concedendo a permissão explicitamente ao CNO do cluster WSFC. VCOs para grupos de disponibilidade que você excluiu não serão excluídos automaticamente no Active Directory e serão incluídos na contagem do limite padrão de dez VCOs, a menos que sejam excluídos manualmente.
Observação: em algumas organizações, a política de segurança proíbe a concessão da permissão Criar Objetos de computador a contas de usuário individuais.
Steps for configuring the account for the person who installs the cluster (Etapas para configurar a conta para a pessoa que instala o cluster) no Failover Cluster Step-by-Step Guide: Configuring Accounts in Active Directory
Steps for prestaging the cluster name account (Etapas para configurar a conta para a pessoa que instala o cluster) no Failover Cluster Step-by-Step Guide: Configuring Accounts in Active Directory
Se sua organização exigir que você pré-configure a conta de computador para um nome de rede virtual de ouvinte, você precisará da subscrição no grupo Operador de Conta ou da assistência de seu administrador de domínio. Steps for prestaging an account for a clustered service or application (Etapas para pré-preparar uma conta para um serviço ou aplicativo clusterizado) no Failover Cluster Step-by-Step Guide: Configuring Accounts in Active Directory(Guia passo a passo do cluster de failover: configurando contas no Active Directory).

Dica

Geralmente, é mais simples não pré-preparar a conta de computador para um nome de rede virtual de ouvinte. Se possível, deixe a conta ser criada e configurada automaticamente ao executar o Assistente de Alta Disponibilidade do WSFC.

Permissões do SQL Server

Tarefa Permissões
Para criar um ouvinte de grupo de disponibilidade Requer a associação na função de servidor fixa sysadmin e a permissão de servidor CREATE AVAILABILITY GROUP, a permissão ALTER ANY AVAILABILITY GROUP ou a permissão CONTROL SERVER.
Para modificar um ouvinte de grupo de disponibilidade existente Requer a permissão ALTER AVAILABILITY GROUP no grupo de disponibilidade, a permissão CONTROL AVAILABILITY GROUP, a permissão ALTER ANY AVAILABILITY GROUP ou a permissão CONTROL SERVER.

Criar um ouvinte

Você pode criar um ouvinte usando o SQL Server Management Studio (SSMS), o Transact-SQL ou o PowerShell.

Dica

Use o Assistente do grupo de disponibilidade para criar um ouvinte do grupo de disponibilidade.

Para criar ou configurar um ouvinte do grupo de disponibilidade no SSMS, siga estas etapas:

  1. No Pesquisador de Objetos, conecte-se à instância do servidor que hospeda a réplica primária do grupo de disponibilidade e selecione o nome do servidor para expandir a árvore de servidores.

  2. Expanda os nós Alta disponibilidade Always On e Grupos de disponibilidade.

  3. Clique no grupo de disponibilidade cujo ouvinte você deseja configurar e escolha uma das alternativas a seguir:

    • Para criar um ouvinte, clique com o botão direito do mouse no nó Ouvintes do Grupo de Disponibilidade e selecione o comando Novo Ouvinte . Isso abre a caixa de diálogo Novo Ouvinte do grupo de disponibilidade. Para obter mais informações, consulte Adicionar Ouvinte do grupo de disponibilidade (caixa de diálogo), posteriormente neste artigo.

    • Para alterar o número da porta de um ouvinte existente, expanda o nó Ouvintes do Grupo de Disponibilidade , clique com o botão direito do mouse no ouvinte e selecione o comando Propriedades . Digite o novo número da porta no campo Porta e clique em OK.

Novo Ouvinte do grupo de disponibilidade (caixa de diálogo)

Nome DNS do Ouvinte
Especifica o nome de host DNS do ouvinte de grupo de disponibilidade. O nome DNS é uma cadeia de caracteres e deve ser exclusivo no domínio e no NetBIOS. Este nome pode conter somente caracteres alfanuméricos, traços (-) e hífens (_), em qualquer ordem. Os nomes de host DNS diferenciam maiúsculas de minúsculas. O tamanho máximo é de 15 caracteres.

Para obter mais informações, consulte Requisitos para o nome DNS de um ouvinte do grupo de disponibilidade, anteriormente neste artigo.

Porta
A porta TCP usada pelo ouvinte.

Modo de Rede
Indica o protocolo TCP usado pelo ouvinte, pode ser:

DHCP
O ouvinte usará um endereço IP dinâmico que é atribuído por um servidor que executa o Protocolo DHCP. O DHCP está limitado a uma única sub-rede.

Importante

Nós não recomendamos o DHCP em ambiente de produção. Se houver um tempo de inatividade e a concessão do IP do DHCP expirar, a hora adicional deverá registrar o novo endereço IP da rede DHCP que está associado ao nome DNS do ouvinte e afetará a conectividade do cliente. No entanto, o DHCP é bom para configurar seu ambiente de desenvolvimento e teste para verificar as funções básicas de grupos de disponibilidade e para integração com seus aplicativos.

IP Estático
O ouvinte usará um ou mais endereços IP estáticos. Os endereços IP adicional são opcionais. Para criar um ouvinte do grupo de disponibilidade em várias sub-redes, você deve especificar para cada sub-rede um endereço IP estático na configuração do ouvinte. Entre em contato com seu administrador de rede para obter esses endereços IP estáticos.

Se você selecionar IP Estático , uma grade de sub-rede será exibida abaixo do campo Modo de Rede . Essa grade exibe informações sobre cada sub-rede que pode ser acessada por este ouvinte de grupo de disponibilidade. Essa grade estará vazia até que você adicione um endereço IP estático clicando em Adicionar.

As colunas são apresentadas assim:

Sub-rede
Exibe o identificador de cada sub-rede que você adiciona ao ouvinte do grupo de disponibilidade.

Endereço IP
Exibe o endereço IP de uma determinada sub-rede. Para uma determinada sub-rede, o endereço IP é um endereço IPv4 ou um endereço IPv6.

Adicionar
Clique para adicionar um endereço IP estático a uma sub-rede selecionada ou a outra sub-rede para esse ouvinte. Essa ação abre a caixa de diálogo Adicionar Endereço IP . Para obter mais informações, consulte o artigo de ajuda da caixa de diálogo Adicionar endereço IP.

Remove
Clique para remover a sub-rede selecionada desse ouvinte.

OK
Clique para criar o ouvinte do grupo de disponibilidade especificado.

Solução de problemas

Falha ao criar um ouvinte do grupo de disponibilidade devido a cotas do Active Directory

Pode haver falha na criação de um novo ouvinte do grupo de disponibilidade porque você atingiu uma cota do Active Directory para a conta do computador do nó de cluster participante. Para saber mais, veja Como solucionar problemas da conta do serviço de cluster quando ela modifica objetos de computador

Acompanhamento: após criar um ouvinte do grupo de disponibilidade

Palavra-chave MultiSubnetFailover e recursos associados

MultiSubnetFailover é uma nova palavra-chave da cadeia de conexão usada para habilitar failover mais rápido com os grupos de disponibilidade Always On e Instâncias de cluster de failover Always On no SQL Server 2012. Os três sub-recursos a seguir são habilitados quando MultiSubnetFailover=True está definido na cadeia de conexão:

  • Um failover de várias sub-redes mais rápido para um ouvinte de várias sub-redes para um grupo de disponibilidade Always On ou instâncias de cluster de failover.

  • Um failover de sub-rede única mais rápido para um ouvinte de sub-rede única para um grupo de disponibilidade Always On ou instâncias de cluster de failover.

    • Esse recurso é usado ao conectar-se a um ouvinte que tem um IP único em uma única sub-rede. Isso realiza tentativas de conexão de TCP mais agressivas para acelerar os failovers de sub-rede única.
  • A resolução de instância nomeada para uma instância de cluster de failover AlwaysOn de várias sub-redes.

    • Isso é para adicionar o suporte à resolução de instância nomeada para uma instância de cluster de failover AlwaysOn com diversos pontos de extremidade de sub-rede.

Não há suporte para MultiSubnetFailover=True pelo .NET Framework 3.5 ou OLEDB

Problema: se seu grupo de disponibilidade ou Instância de Cluster de Failover tiver um nome de ouvinte (conhecido como o nome da rede ou o Ponto de Acesso para Cliente no Gerenciador de Cluster WSFC) dependendo dos diversos endereços IP de diferentes sub-redes, e você estiver usando o ADO.NET com .NET Framework 3.5SP1 ou o SQL Native Client 11.0 OLEDB, possivelmente 50% das suas solicitações de conexão de cliente para o ouvinte do grupo de disponibilidade atingirão um tempo limite de conexão.

Soluções alternativas: é recomendável que você execute uma das tarefas a seguir.

  • Se você não tiver a permissão para manipular recursos de cluster, altere o tempo limite de conexão para 30 segundos (esse valor resulta em um período de tempo limite TCP de 20 segundos mais um buffer de 10 segundos).

    Prós: se ocorrer um failover entre sub-redes, a recuperação do cliente será rápida.

    Contras: metade das conexões de cliente demorarão mais de 20 segundos

  • Se você tiver permissão para manipular os recursos de cluster, a abordagem mais recomendada é definir o nome de rede do ouvinte do grupo de disponibilidade como RegisterAllProvidersIP=0. Para obter mais informações, confira "Configuração de RegisterAllProvidersIP", mais adiante nesta seção.

    Prós: você não precisa aumentar o valor de tempo limite de conexão de cliente.

    Contras : se um failover de sub-rede cruzado ocorrer, o tempo de recuperação do cliente poderá ser de 15 minutos ou mais, dependendo da configuração de HostRecordTTL e da configuração da agenda de replicação DNS/AD entre sites.

Configuração RegisterAllProvidersIP

Quando você usa o SQL Server Management Studio, Transact-SQL ou PowerShell para criar um ouvinte de grupo de disponibilidade, o Ponto de Acesso para Cliente é criado no WSFC com a propriedade RegisterAllProvidersIP definida como 1 (true). O efeito de esse valor de propriedade depende da cadeia de conexão do cliente, da seguinte maneira:

  • Cadeias de conexão que definem MultiSubnetFailover como true

    Grupos de disponibilidade Always On definem a propriedade RegisterAllProvidersIP como 1 para reduzir o tempo de reconexão após um failover para clientes cujas cadeias de conexão de cliente especificam MultiSubnetFailover = True, como recomendado. Para usufruir das vantagens do recurso de várias sub-redes do ouvinte, seus clientes podem precisar de um provedor de dados que dê suporte à palavra-chave MultiSubnetFailover. Para obter informações sobre o suporte do driver para failover de várias sub-redes, confira Conectividade de cliente Always On.

    Para obter informações sobre clustering de várias sub-redes, confira Clustering de várias sub-redes do SQL Server.

    Dica

    Quando RegisterAllProvidersIP = 1, se você executar o Assistente para Validar Configuração do WSFC no cluster WSFC, o assistente gerará a seguinte mensagem de aviso:

    “A propriedade RegisterAllProviderIP para nome de rede 'Name:<network_name>' é definida como 1. Para a configuração do cluster atual, esse valor deve ser definido como 0”.

    Ignore esta mensagem.

  • Cadeias de conexão que não definem MultiSubnetFailover como true

    Quando RegisterAllProvidersIP = 1, quaisquer clientes cujas cadeias de conexão não usem MultiSubnetFailover = True experimentarão conexões de alta latência. Isso ocorre porque esses clientes tentam conexões com todos os IPs em sequência. Em contrapartida, se RegisterAllProvidersIP for alterado para 0, o endereço IP ativo será registrado no Ponto de Acesso para Cliente no cluster WSFC, reduzindo a latência para clientes herdados. Portanto, se você tem clientes herdados que precisam se conectar a um ouvinte do grupo de disponibilidade e não podem usar a propriedade MultiSubnetFailover, recomendamos alterar RegisterAllProvidersIP para 0.

    Importante

    Quando você cria um ouvinte do grupo de disponibilidade no cluster WSFC (GUI do Gerenciador de Cluster de Failover), RegisterAllProvidersIP será 0 (false) por padrão.

Configuração HostRecordTTL

Por padrão, os clientes armazenam em cache registros DNS do cluster por 20 minutos. Os clientes herdados poderão se reconectar mais rapidamente reduzindo o valor de HostRecordTTL, a vida útil (TTL) do registro armazenado em cache. No entanto, a redução do valor de HostRecordTTL também pode resultar em maior tráfego para os servidores DNS.

Exemplo de script PowerShell para desabilitar RegisterAllProvidersIP e reduzir a TTL

O exemplo do PowerShell a seguir demonstra como configurar os parâmetros de cluster RegisterAllProvidersIP e HostRecordTTL para o recurso de ouvinte. O registro DNS será armazenado em cache por 5 minutos, e não pelo padrão de 20 minutos. A modificação dos dois parâmetros de cluster pode reduzir o tempo de conexão ao endereço IP correto após um failover para clientes herdados que não podem usar o parâmetro MultiSubnetFailover. Substitua yourListenerName pelo nome do ouvinte que você está alterando.

Import-Module FailoverClusters
Get-ClusterResource yourListenerName | Set-ClusterParameter RegisterAllProvidersIP 0
Get-ClusterResource yourListenerName | Set-ClusterParameter HostRecordTTL 300
Stop-ClusterResource yourListenerName
Start-ClusterResource yourListenerName
Start-Clustergroup yourListenerGroupName

Para obter mais informações sobre os tempos de recuperação durante o failover, consulte Client Recovery Latency During Failover.

Recomendações de acompanhamento

Após criar um ouvinte de grupo de disponibilidade:

  • Peça ao administrador da rede para reservar o endereço IP do ouvinte para seu uso exclusivo.

  • Informe o nome do host DNS do ouvinte aos desenvolvedores de aplicativos para uso em cadeias de conexão ao pedir conexões cliente com esse grupo de disponibilidade.

  • Incentive os desenvolvedores a atualizarem cadeias de conexão do cliente para especificar MultiSubnetFailover = True, se possível. Para obter informações sobre o suporte do driver para failover de várias sub-redes, confira Conectividade de cliente Always On.

Criar um ouvinte adicional para um grupo de disponibilidade (opcional)

Depois de criar um ouvinte pelo SQL Server, você poderá adicionar um ouvinte adicional, da seguinte maneira:

Crie o ouvinte usando uma das ferramentas a seguir:

Usando o Gerenciador de Cluster de Failover do WSFC:

  1. Adicione um ponto de acesso para cliente e configure o endereço IP.

  2. Faça o ouvinte ficar online.

  3. Adicione uma dependência para o recurso do grupo de disponibilidade do WSFC.

    Para obter informações sobre as caixas de diálogo e guias do Gerenciador de Cluster de Failover, consulte Interface do usuário: o snap-in gerenciador de cluster de failover.

Usando o Windows PowerShell para clusters de failover:

  1. Use Add-ClusterResource para criar um nome de rede e os recursos do endereço IP.

  2. Use Start-ClusterResource para iniciar o recurso de nome de rede.

  3. Use Add-ClusterResourceDependency para definir a dependência entre o nome da rede e o recurso do Grupo de Disponibilidade do SQL Server existente.

    Para obter informações sobre como usar o Windows PowerShell para clusters de failover, consulte Visão geral de comandos do gerenciador de servidor.

Inicie a escuta do SQL Server no novo ouvinte. Após criar um ouvinte adicional, conecte a instância do SQL Server que hospeda a réplica principal do grupo de disponibilidade e use SQL Server Management Studio, Transact-SQL ou PowerShell para modificar a porta do ouvinte.

Para obter mais informações, consulte How to create multiple listeners for same availability group (Como criar vários ouvintes para o mesmo grupo de disponibilidade) (um blog da equipe do SQL Server AlwaysOn).