Compartilhar via


Interoperabilidade dos recursos com o AG e o ouvinte DNN

Aplica-se a:SQL Server na VM do Azure

Dica

Há vários métodos de implantação de um grupo de disponibilidade. Simplifique sua implantação sem precisar usar o Azure Load Balancer ou DNN (nome de rede distribuída) para seu grupo de disponibilidade Always On criando suas VMs (máquinas virtuais) do SQL Server em várias sub-redes dentro da mesma rede virtual do Azure. Se você já tiver criado seu grupo de disponibilidade em uma única sub-rede, poderá migrá-lo para um ambiente de várias sub-redes.

Determinados recursos do SQL Server dependem de um VNN (nome de rede virtual) codificado. Quando você usa o listener DNN (Distributed Network Name) com seu grupo de disponibilidade Always On e SQL Server em VMs do Azure em uma única sub-rede, você pode enfrentar algumas limitações.

Este artigo descreve os recursos do SQL Server e a interoperabilidade com o listener DNN do grupo de disponibilidade.

Diferenças de comportamento

Observe as seguintes diferenças entre a funcionalidade do ouvinte VNN e o ouvinte DNN:

  • Tempo de failover: o tempo de failover é mais rápido quando você usa um ouvinte DNN, pois não há necessidade de esperar que o balanceador de carga de rede detecte o evento de falha e altere seu roteamento.
  • Conexões existentes: as conexões para um banco de dados específico em um grupo de disponibilidade que está realizando failover são fechadas, mas outras conexões com a réplica primária permanecem abertas, já que o DNN permanece online durante todo o processo de failover. Esse comportamento é diferente de um ambiente VNN tradicional em que todas as conexões com a réplica primária normalmente fecham quando o grupo de disponibilidade faz failover, o ouvinte fica offline e a réplica primária faz a transição para a função secundária. Ao usar um listener DNN, pode ser necessário ajustar as cadeias de conexão do aplicativo para garantir que as conexões sejam redirecionadas para a nova réplica primária após o processo de failover.
  • Transações abertas: transações abertas em um banco de dados, em um grupo de disponibilidade em processo de failover, serão fechadas e revertidas, e você precisará se reconectar manualmente. Por exemplo, no SQL Server Management Studio, feche a janela de consulta e abra uma nova.

Drivers de cliente

Nos drivers ODBC, OLEDB, ADO.NET, JDBC, PHP e Node.js, especifique o nome do ouvinte DNN e a porta como o nome do servidor na cadeia de conexão. Para garantir a conectividade rápida em caso de failover, adicione MultiSubnetFailover=True à cadeia de conexão, se o cliente SQL oferecer suporte.

Ferramentas

Os usuários do SQL Server Management Studio, sqlcmd e SQL Server Data Tools precisam especificar o nome e a porta do ouvinte DNN como o nome do servidor na cadeia de conexão para se conectar ao ouvinte.

No momento, não há suporte para a criação do ouvinte DNN usando a GUI do SSMS (SQL Server Management Studio).

Grupos de disponibilidade e FCI

Você pode configurar um grupo de disponibilidade Always On usando uma instância de cluster de failover (FCI) como uma das réplicas. Para que essa configuração funcione com o ouvinte DNN, a instância do cluster de failover também deve usar o DNN , pois não há como colocar o endereço IP virtual FCI na lista de IP do AG DNN.

Nessa configuração, a URL do ponto de extremidade de espelhamento para a réplica FCI deve usar o DNN FCI. Da mesma forma, se a FCI for usada como réplica somente leitura, o roteamento somente leitura para a réplica FCI precisará usar o DNN FCI.

O formato para o ponto de extremidade de espelhamento é: ENDPOINT_URL = 'TCP://<FCI DNN DNS name>:<mirroring endpoint port>'.

Por exemplo, se o nome DNS DNN do FCI for dnnlsnr e 5022 for a porta do endpoint de espelhamento do FCI, o trecho de código de Transact-SQL (T-SQL) para criar o URL do endpoint será semelhante a:

ENDPOINT_URL = 'TCP://dnnlsnr:5022'

Da mesma forma, o formato da URL de roteamento somente leitura é: TCP://<FCI DNN DNS name>:<SQL Server instance port>.

Por exemplo, se o nome DNS do DNN for dnnlsnr e 1444 for a porta usada pelo destino somente leitura da FCI do SQL Server, o trecho de código T-SQL para criação da URL de roteamento somente leitura terá esta aparência:

READ_ONLY_ROUTING_URL = 'TCP://dnnlsnr:1444'

Você pode omitir a porta na URL se ela for a porta 1433 padrão. Para uma instância nomeada, configure uma porta estática para essa instância e especifique-a na URL de roteamento somente leitura.

Grupo de disponibilidade distribuído

Caso você configure o ouvinte do grupo de disponibilidade usando um DNN (nome de rede distribuída), não poderá configurar um grupo de disponibilidade distribuído sobre o grupo de disponibilidade.

Replicação

Replicações transacional, de mesclagem e de instantâneos, todas dão suporte à substituição do ouvinte VNN pelo ouvinte DNN e pela porta correspondente em objetos de replicação que se conectam ao ouvinte.

Para obter mais informações sobre como usar a replicação com grupos de disponibilidade, consulte Publisher e AG, subscriber e AG, e distribuidor e AG.

MSDTC

O MSDTC local e o clusterizado são suportados, mas o MSDTC usa uma porta dinâmica. Essa porta dinâmica requer um Azure Load Balancer padrão para configurar a porta de HA. Dessa forma, a VM deve usar uma reserva de IP padrão ou você não pode expô-la à Internet.

Defina duas regras: uma para a porta RPC Endpoint Mapper 135 e outra para a porta MSDTC real. Após o failover, modifique a regra do balanceador de carga para a nova porta MSDTC depois que ela for alterada no novo nó.

Se o MSDTC for local, certifique-se de permitir a comunicação externa.

Consulta distribuída

A consulta distribuída depende de um servidor vinculado, que pode ser configurado com o listener e a porta do AG DNN. Se a porta não for 1433, escolha a opção usar outra fonte de dados no SQL Server Management Studio (SSMS) ao configurar o servidor vinculado.

FILESTREAM

FILESTREAM tem suporte, mas não para cenários em que os usuários acessam o compartilhamento de arquivos delimitado usando a API de arquivos do Windows.

FileTable

FileTable tem suporte, mas não para cenários em que os usuários acessam o compartilhamento de arquivos com escopo usando a API de arquivo do Windows.

Servidores vinculados

Configure o servidor vinculado com o nome e a porta do ouvinte do AG DNN. Se a porta não for 1433, escolha a opção usar outra fonte de dados no SQL Server Management Studio (SSMS) ao configurar o servidor vinculado.

Perguntas frequentes

Qual versão do SQL Server dá suporte ao ouvinte do AG DNN?

SQL Server 2019 CU 8 e versões posteriores.

Qual é o tempo de failover esperado quando uso o ouvinte DNN?

Para o ouvinte DNN, o tempo de failover é o mesmo que o tempo de failover do AG, sem tempo extra (como o tempo de sondagem quando você está usando o Azure Load Balancer).

Há algum requisito de versão para clientes SQL para oferecer suporte a DNN com OLEDB e ODBC?

Use a cadeia de conexão MultiSubnetFailover=True para suporte ao ouvinte DNN. Ele está disponível a partir do SQL Server 2012 (11.x).

Há alterações de configuração do SQL Server obrigatórias para usar o ouvinte DNN?

O SQL Server não requer alterações de configuração para usar DNN, mas alguns recursos do SQL Server podem exigir maior consideração.

O DNN oferece suporte a clusters de várias sub-redes?

Sim. O cluster associa o DNN no DNS aos endereços IP físicos de todas as réplicas no grupo de disponibilidade, qualquer que seja a sub-rede. O cliente SQL tenta todos os endereços IP do nome DNS, independentemente da sub-rede.

O listener DNN do grupo de disponibilidade oferece suporte ao roteamento somente leitura?

Sim. O roteamento somente leitura é suportado com o listener DNN.