Configurar um ou mais serviços de escuta do grupo de disponibilidade Always On

Aplica-se a:SQL Server na VM do Azure

Gorjeta

Há muitos métodos para implantar um grupo de disponibilidade. Simplifique sua implantação e elimine a necessidade de um Balanceador de Carga do Azure ou DNN (nome de rede distribuída) para seu grupo de disponibilidade Always On criando suas máquinas virtuais (VMs) do SQL Server em várias sub-redes dentro da mesma rede virtual do Azure. Se você já criou seu grupo de disponibilidade em uma única sub-rede, pode migrá-lo para um ambiente de várias sub-redes.

Este documento mostra como usar o PowerShell para executar uma das seguintes tarefas:

  • Criar um balanceador de carga
  • adicionar endereços IP a um balanceador de carga existente para grupos de disponibilidade do SQL Server.

Um ouvinte de grupo de disponibilidade é um nome de rede virtual ao qual os clientes se conectam para acesso ao banco de dados. Nas Máquinas Virtuais do Azure em uma única sub-rede, um balanceador de carga mantém o endereço IP do ouvinte. O balanceador de carga roteia o tráfego para a instância do SQL Server que está escutando na porta de teste. Normalmente, um grupo de disponibilidade usa um balanceador de carga interno. Um balanceador de carga interno do Azure pode hospedar um ou vários endereços IP. Cada endereço IP usa uma porta de sonda específica.

A capacidade de atribuir vários endereços IP a um balanceador de carga interno é nova no Azure e só está disponível no modelo do Resource Manager. Para concluir essa tarefa, você precisa ter um grupo de disponibilidade do SQL Server implantado em Máquinas Virtuais do Azure no modelo do Gerenciador de Recursos. Ambas as máquinas virtuais do SQL Server devem pertencer ao mesmo conjunto de disponibilidade. Você pode usar o modelo da Microsoft para criar automaticamente o grupo de disponibilidade no Gerenciador de Recursos do Azure. Este modelo cria automaticamente o grupo de disponibilidade, incluindo o balanceador de carga interno para você. Se preferir, você pode configurar manualmente um grupo de disponibilidade Always On.

Para concluir as etapas neste artigo, seus grupos de disponibilidade precisam já estar configurados.

Os tópicos relacionados incluem:

Nota

Este artigo usa o módulo Azure Az PowerShell, que é o módulo PowerShell recomendado para interagir com o Azure. Para começar a utilizar o módulo Azure PowerShell, veja Instalar o Azure PowerShell. Para saber como migrar para o módulo do Az PowerShell, veja Migrar o Azure PowerShell do AzureRM para o Az.

Iniciar a sessão do PowerShell

Execute o cmdlet Connect-Az Account e você verá uma tela de entrada para inserir suas credenciais. Utilize as mesmas credenciais que utiliza para iniciar sessão no Portal do Azure.

Connect-AzAccount

Se você tiver várias assinaturas, use o cmdlet Set-AzContext para selecionar qual assinatura sua sessão do PowerShell deve usar. Para ver qual assinatura a sessão atual do PowerShell está usando, execute Get-AzContext. Para ver todas as suas assinaturas, execute Get-AzSubscription.

Set-AzContext -SubscriptionId '4cac86b0-1e56-bbbb-aaaa-000000000000'

Verificar a versão do PowerShell

Os exemplos neste artigo são testados usando o módulo do Azure PowerShell versão 5.4.1.

Verifique se o módulo do PowerShell é 5.4.1 ou posterior.

Consulte Instalar o módulo do Azure PowerShell.

Configurar o Firewall do Windows

Configure o Firewall do Windows para permitir o acesso ao SQL Server. As regras de firewall permitem conexões TCP com as portas usadas pela instância do SQL Server e pela sonda de ouvinte. Para obter instruções detalhadas, consulte Configurar um Firewall do Windows para acesso ao Mecanismo de Banco de Dados. Crie uma regra de entrada para a porta do SQL Server e para a porta de teste.

Se você estiver restringindo o acesso com um Grupo de Segurança de Rede do Azure, verifique se as regras de permissão incluem os endereços IP da VM do SQL Server de back-end e os endereços IP flutuantes do balanceador de carga para o ouvinte AG e o endereço IP principal do cluster, se aplicável.

Determinar o SKU do balanceador de carga necessário

O balanceador de carga do Azure está disponível em duas SKUs: Basic & Standard. O balanceador de carga padrão é recomendado, pois o SKU básico está programado para ser desativado em 30 de setembro de 2025. O balanceador de carga padrão é necessário para máquinas virtuais em uma zona de disponibilidade. O balanceador de carga padrão requer que todos os endereços IP da VM usem endereços IP padrão.

O modelo atual da Microsoft para um grupo de disponibilidade usa um balanceador de carga básico com endereços IP básicos.

Os exemplos neste artigo especificam um balanceador de carga padrão. Nos exemplos, o script inclui -sku Standard.

$ILB= New-AzLoadBalancer -Location $Location -Name $ILBName -ResourceGroupName $ResourceGroupName -FrontendIpConfiguration $FEConfig -BackendAddressPool $BEConfig -LoadBalancingRule $ILBRule -Probe $SQLHealthProbe -sku Standard

Para criar um balanceador de carga básico, remova -sku Standard da linha que cria o balanceador de carga. Por exemplo:

$ILB= New-AzLoadBalancer -Location $Location -Name $ILBName -ResourceGroupName $ResourceGroupName -FrontendIpConfiguration $FEConfig -BackendAddressPool $BEConfig -LoadBalancingRule $ILBRule -Probe $SQLHealthProbe

Script de exemplo: Criar um balanceador de carga interno com o PowerShell

Nota

Se você criou seu grupo de disponibilidade com o modelo da Microsoft, o balanceador de carga interno já foi criado.

O script PowerShell a seguir cria um balanceador de carga interno, configura as regras de balanceamento de carga e define um endereço IP para o balanceador de carga. Para executar o script, abra o Windows PowerShell ISE e cole-o no painel Script. Use Connect-AzAccount para fazer logon no PowerShell. Se você tiver várias assinaturas do Azure, use Select-AzSubscription para definir a assinatura.

# Connect-AzAccount
# Select-AzSubscription -SubscriptionId <xxxxxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx>

$ResourceGroupName = "<Resource Group Name>" # Resource group name
$VNetName = "<Virtual Network Name>"         # Virtual network name
$SubnetName = "<Subnet Name>"                # Subnet name
$ILBName = "<Load Balancer Name>"            # ILB name
$Location = "<Azure Region>"                 # Azure location
$VMNames = "<VM1>","<VM2>"                   # Virtual machine names

$ILBIP = "<n.n.n.n>"                         # IP address
[int]$ListenerPort = "<nnnn>"                # AG listener port
[int]$ProbePort = "<nnnn>"                   # Probe port

$LBProbeName ="ILBPROBE_$ListenerPort"       # The Load balancer Probe Object Name              
$LBConfigRuleName = "ILBCR_$ListenerPort"    # The Load Balancer Rule Object Name

$FrontEndConfigurationName = "FE_SQLAGILB_1" # Object name for the front-end configuration 
$BackEndConfigurationName ="BE_SQLAGILB_1"   # Object name for the back-end configuration

$VNet = Get-AzVirtualNetwork -Name $VNetName -ResourceGroupName $ResourceGroupName 

$Subnet = Get-AzVirtualNetworkSubnetConfig -VirtualNetwork $VNet -Name $SubnetName 

$FEConfig = New-AzLoadBalancerFrontendIpConfig -Name $FrontEndConfigurationName -PrivateIpAddress $ILBIP -SubnetId $Subnet.id

$BEConfig = New-AzLoadBalancerBackendAddressPoolConfig -Name $BackEndConfigurationName 

$SQLHealthProbe = New-AzLoadBalancerProbeConfig -Name $LBProbeName -Protocol tcp -Port $ProbePort -IntervalInSeconds 15 -ProbeCount 2

$ILBRule = New-AzLoadBalancerRuleConfig -Name $LBConfigRuleName -FrontendIpConfiguration $FEConfig -BackendAddressPool $BEConfig -Probe $SQLHealthProbe -Protocol tcp -FrontendPort $ListenerPort -BackendPort $ListenerPort -LoadDistribution Default -EnableFloatingIP 

$ILB= New-AzLoadBalancer -Location $Location -Name $ILBName -ResourceGroupName $ResourceGroupName -FrontendIpConfiguration $FEConfig -BackendAddressPool $BEConfig -LoadBalancingRule $ILBRule -Probe $SQLHealthProbe 

$bepool = Get-AzLoadBalancerBackendAddressPoolConfig -Name $BackEndConfigurationName -LoadBalancer $ILB 

foreach($VMName in $VMNames)
    {
        $VM = Get-AzVM -ResourceGroupName $ResourceGroupName -Name $VMName 
        $NICName = ($vm.NetworkProfile.NetworkInterfaces.Id.split('/') | select -last 1)
        $NIC = Get-AzNetworkInterface -name $NICName -ResourceGroupName $ResourceGroupName
        $NIC.IpConfigurations[0].LoadBalancerBackendAddressPools = $BEPool
        Set-AzNetworkInterface -NetworkInterface $NIC
        start-AzVM -ResourceGroupName $ResourceGroupName -Name $VM.Name 
    }

Script de exemplo: Adicionar um endereço IP a um balanceador de carga existente com o PowerShell

Para usar mais de um grupo de disponibilidade, adicione um endereço IP adicional ao balanceador de carga. Cada endereço IP requer sua própria regra de balanceamento de carga, porta de sonda e porta frontal. Adicione apenas o endereço IP primário da VM ao pool de back-end do balanceador de carga, pois o endereço IP da VM secundária não suporta IP flutuante.

A porta front-end é a porta que os aplicativos usam para se conectar à instância do SQL Server. Os endereços IP para diferentes grupos de disponibilidade podem usar a mesma porta front-end.

Nota

Para grupos de disponibilidade do SQL Server, cada endereço IP requer uma porta de teste específica. Por exemplo, se um endereço IP em um balanceador de carga usa a porta de teste 59999, nenhum outro endereço IP nesse balanceador de carga pode usar a porta de teste 59999.

O script a seguir adiciona um novo endereço IP a um balanceador de carga existente. O ILB usa a porta do ouvinte para a porta front-end de balanceamento de carga. Essa porta pode ser a porta na qual o SQL Server está escutando. Para instâncias padrão do SQL Server, a porta é 1433. A regra de balanceamento de carga para um grupo de disponibilidade requer um IP flutuante (retorno direto do servidor) para que a porta back-end seja a mesma que a porta front-end. Atualize as variáveis para o seu ambiente.

# Connect-AzAccount
# Select-AzSubscription -SubscriptionId <xxxxxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx>

$ResourceGroupName = "<ResourceGroup>"          # Resource group name
$VNetName = "<VirtualNetwork>"                  # Virtual network name
$SubnetName = "<Subnet>"                        # Subnet name
$ILBName = "<ILBName>"                          # ILB name                      

$ILBIP = "<n.n.n.n>"                            # IP address
[int]$ListenerPort = "<nnnn>"                   # AG listener port
[int]$ProbePort = "<nnnnn>"                     # Probe port 

$ILB = Get-AzLoadBalancer -Name $ILBName -ResourceGroupName $ResourceGroupName 

$count = $ILB.FrontendIpConfigurations.Count+1
$FrontEndConfigurationName ="FE_SQLAGILB_$count"  

$LBProbeName = "ILBPROBE_$count"
$LBConfigrulename = "ILBCR_$count"

$VNet = Get-AzVirtualNetwork -Name $VNetName -ResourceGroupName $ResourceGroupName 
$Subnet = Get-AzVirtualNetworkSubnetConfig -VirtualNetwork $VNet -Name $SubnetName

$ILB | Add-AzLoadBalancerFrontendIpConfig -Name $FrontEndConfigurationName -PrivateIpAddress $ILBIP -SubnetId $Subnet.Id 

$ILB | Add-AzLoadBalancerProbeConfig -Name $LBProbeName  -Protocol Tcp -Port $Probeport -ProbeCount 2 -IntervalInSeconds 15  | Set-AzLoadBalancer 

$ILB = Get-AzLoadBalancer -Name $ILBname -ResourceGroupName $ResourceGroupName

$FEConfig = get-AzLoadBalancerFrontendIpConfig -Name $FrontEndConfigurationName -LoadBalancer $ILB

$SQLHealthProbe  = Get-AzLoadBalancerProbeConfig -Name $LBProbeName -LoadBalancer $ILB

$BEConfig = Get-AzLoadBalancerBackendAddressPoolConfig -Name $ILB.BackendAddressPools[0].Name -LoadBalancer $ILB 

$ILB | Add-AzLoadBalancerRuleConfig -Name $LBConfigRuleName -FrontendIpConfiguration $FEConfig  -BackendAddressPool $BEConfig -Probe $SQLHealthProbe -Protocol tcp -FrontendPort  $ListenerPort -BackendPort $ListenerPort -LoadDistribution Default -EnableFloatingIP | Set-AzLoadBalancer   

Configurar o serviço de escuta

O serviço de escuta do grupo de disponibilidade é um endereço IP e um nome de rede nos quais o grupo de disponibilidade do SQL Server escuta. Para criar o ouvinte do grupo de disponibilidade:

  1. Obtenha o nome do recurso de rede de cluster:

    a. Use o RDP para se conectar à máquina virtual do Azure que hospeda a réplica primária.

    b. Abra o Gestor de Clusters de Ativação Pós-falha.

    c. Selecione o nó Redes e anote o nome da rede do cluster. Use esse nome na $ClusterNetworkName variável no script do PowerShell. Na imagem a seguir, o nome da rede do cluster é Rede de Cluster 1:

    Screenshot that shows a cluster network name in Failover Cluster Manager.

  2. Adicione o ponto de acesso do cliente. O ponto de acesso do cliente é o nome da rede que os aplicativos usam para se conectar aos bancos de dados em um grupo de disponibilidade.

    a. No Gerenciador de Cluster de Failover, expanda o nome do cluster e selecione Funções.

    b. No painel Funções, clique com o botão direito do mouse no nome do grupo de disponibilidade e selecione Adicionar Ponto de Acesso para Cliente de Recurso>.

    Screenshot of Failover Cluster Manager that shows selecting the Client Access Point command on the shortcut menu for the availability group.

    c. Na caixa Nome, crie um nome para esse novo ouvinte. O nome do novo ouvinte é o nome da rede que os aplicativos usam para se conectar a bancos de dados no grupo de disponibilidade do SQL Server.

    d. Para concluir a criação do ouvinte, selecione Avançar duas vezes e, em seguida, selecione Concluir. Não coloque o ouvinte ou recurso online neste momento.

  3. Coloque a função de cluster para o grupo de disponibilidade offline. No Gerenciador de Cluster de Failover, em Funções, clique com o botão direito do mouse na função e selecione Parar Função.

  4. Configure o recurso IP para o grupo de disponibilidade:

    a. Selecione a guia Recursos e expanda o ponto de acesso do cliente que você criou. O ponto de acesso do cliente está offline.

    Screenshot of Failover Cluster Manager that shows an offline status for a client access point.

    b. Clique com o botão direito do mouse no recurso IP e selecione Propriedades. Anote o nome do endereço IP e use-o $IPResourceName na variável no script do PowerShell.

    c. Em Endereço IP, selecione Endereço IP estático. Defina o endereço IP como o mesmo endereço que você usou ao definir o endereço do balanceador de carga no portal do Azure.

    Screenshot of Failover Cluster Manager that shows the selection of an IP address.

  5. Torne o grupo de disponibilidade do SQL Server dependente do ponto de acesso do cliente:

    a. No Gerenciador de Cluster de Failover, selecione Funções e selecione seu grupo de disponibilidade.

    b. No separador Recursos, em Outros Recursos, clique com o botão direito do rato no recurso do grupo de disponibilidade e, em seguida, selecione Propriedades.

    c. Na guia Dependências, adicione o nome do ponto de acesso do cliente (o ouvinte).

    Screenshot of Failover Cluster Manager that shows adding a name on the Dependencies tab.

    d. Selecione OK.

  6. Torne o ponto de acesso do cliente dependente do endereço IP:

    a. No Gerenciador de Cluster de Failover, selecione Funções e selecione seu grupo de disponibilidade.

    b. Na guia Recursos, clique com o botão direito do mouse no ponto de acesso do cliente em Nome do Servidor e selecione Propriedades.

    Screenshot of Failover Cluster Manager that shows the Properties menu option for the listener's name.

    c. Selecione a guia Dependências . Verifique se o endereço IP é uma dependência. Se não estiver, defina uma dependência no endereço IP. Se vários recursos estiverem listados, verifique se os endereços IP têm dependências OR, não AND. Em seguida, selecione OK.

    Screenshot of the Dependencies tab that shows an IP resource for an availability group.

    Gorjeta

    Você pode validar se as dependências estão configuradas corretamente. No Gerenciador de Cluster de Failover, vá para Funções, clique com o botão direito do mouse no grupo de disponibilidade, selecione Mais Ações e selecione Mostrar Relatório de Dependência. Quando as dependências estão configuradas corretamente, o grupo de disponibilidade depende do nome da rede e o nome da rede depende do endereço IP.

  7. Defina os parâmetros do cluster no PowerShell:

    a. Copie o seguinte script do PowerShell para uma de suas instâncias do SQL Server. Atualize as variáveis para o seu ambiente.

    • $ClusterNetworkNamelocalize o nome no Gerenciador de Cluster de Failover selecionando Redes, clique com o botão direito do mouse na rede e selecione Propriedades. O $ClusterNetworkName está em Nome na guia Geral.

    • $IPResourceNameé o nome dado ao recurso Endereço IP no Gerenciador de Cluster de Failover. Isso é encontrado no Gerenciador de Cluster de Failover selecionando Funções, selecione o nome SQL Server AG ou FCI, selecione a guia Recursos em Nome do Servidor, clique com o botão direito do mouse no recurso de endereço IP e selecione Propriedades. Poderá encontrar o valor correto em Nome no separador Geral.

    • $ListenerILBIP é o endereço IP que você criou no balanceador de carga do Azure para o ouvinte do grupo de disponibilidade. Encontre o $ListenerILBIP no Gerenciador de Cluster de Failover na mesma página de propriedades que o Nome do Recurso do Ouvinte AG/FCI do SQL Server.

    • $ListenerProbePort é a porta que você configurou no balanceador de carga do Azure para o ouvinte do grupo de disponibilidade, como 59999. Qualquer porta TCP não utilizada é válida.

    $ClusterNetworkName = "<MyClusterNetworkName>" # The cluster network name. Use Get-ClusterNetwork on Windows Server 2012 or later to find the name.
    $IPResourceName = "<IPResourceName>" # The IP address resource name.
    $ListenerILBIP = "<n.n.n.n>" # The IP address of the internal load balancer. This is the static IP address for the load balancer that you configured in the Azure portal.
    [int]$ListenerProbePort = <nnnnn>
    
    Import-Module FailoverClusters
    
    Get-ClusterResource $IPResourceName | Set-ClusterParameter -Multiple @{"Address"="$ListenerILBIP";"ProbePort"=$ListenerProbePort;"SubnetMask"="255.255.255.255";"Network"="$ClusterNetworkName";"EnableDhcp"=0}
    

    b. Defina os parâmetros do cluster executando o script do PowerShell em um dos nós do cluster.

    Nota

    Se suas instâncias do SQL Server estiverem em regiões separadas, você precisará executar o script do PowerShell duas vezes. Na primeira vez, use os $ListenerILBIP valores e $ListenerProbePort da primeira região. Na segunda vez, use os $ListenerILBIP valores e $ListenerProbePort da segunda região. O nome da rede do cluster e o nome do recurso IP do cluster também são diferentes para cada região.

  8. Coloque a função de cluster para o grupo de disponibilidade online. No Gerenciador de Cluster de Failover, em Funções, clique com o botão direito do mouse na função e selecione Iniciar Função.

Se necessário, repita as etapas anteriores para definir os parâmetros de cluster para o endereço IP do cluster de failover do Windows Server:

  1. Obtenha o nome do endereço IP do cluster de failover do Windows Server. No Gerenciador de Cluster de Failover, em Recursos Principais do Cluster, localize Nome do Servidor.

  2. Clique com o botão direito do rato em Endereço IP e, em seguida, selecione Propriedades.

  3. Copie o nome do endereço IP de Nome. Pode ser o Endereço IP do Cluster.

  4. Defina os parâmetros do cluster no PowerShell:

    a. Copie o seguinte script do PowerShell para uma de suas instâncias do SQL Server. Atualize as variáveis para o seu ambiente.

    • $ClusterCoreIP é o endereço IP que você criou no balanceador de carga do Azure para o recurso de cluster principal do cluster de failover do Windows Server. É diferente do endereço IP para o ouvinte do grupo de disponibilidade.

    • $ClusterProbePort é a porta que você configurou no balanceador de carga do Azure para a investigação de integridade do cluster de failover do Windows Server. É diferente da sonda para o ouvinte do grupo de disponibilidade.

    $ClusterNetworkName = "<MyClusterNetworkName>" # The cluster network name. Use Get-ClusterNetwork on Windows Server 2012 or later to find the name.
    $IPResourceName = "<ClusterIPResourceName>" # The IP address resource name.
    $ClusterCoreIP = "<n.n.n.n>" # The IP address of the cluster IP resource. This is the static IP address for the load balancer that you configured in the Azure portal.
    [int]$ClusterProbePort = <nnnnn> # The probe port from WSFCEndPointprobe in the Azure portal. This port must be different from the probe port for the availability group listener.
    
    Import-Module FailoverClusters
    
    Get-ClusterResource $IPResourceName | Set-ClusterParameter -Multiple @{"Address"="$ClusterCoreIP";"ProbePort"=$ClusterProbePort;"SubnetMask"="255.255.255.255";"Network"="$ClusterNetworkName";"EnableDhcp"=0}
    

    b. Defina os parâmetros do cluster executando o script do PowerShell em um dos nós do cluster.

Se algum recurso SQL estiver configurado para usar uma porta entre 49152 e 65536 (o intervalo de portas dinâmicas padrão para TCP/IP), adicione uma exclusão para cada porta. Esses recursos podem incluir:

  • Mecanismo de banco de dados do SQL Server
  • Ouvinte do grupo de disponibilidade Always On
  • Sonda de integridade para a instância de cluster de failover
  • Ponto de extremidade de espelhamento de banco de dados
  • Recurso IP principal do cluster

Adicionar uma exclusão impedirá que outros processos do sistema sejam atribuídos dinamicamente à mesma porta. Para esse cenário, configure as seguintes exclusões em todos os nós de cluster:

  • netsh int ipv4 add excludedportrange tcp startport=58888 numberofports=1 store=persistent
  • netsh int ipv4 add excludedportrange tcp startport=59999 numberofports=1 store=persistent

É importante configurar a exclusão de porta quando a porta não estiver em uso. Caso contrário, o comando falhará com uma mensagem como "O processo não pode acessar o arquivo porque está sendo usado por outro processo". Para confirmar se as exclusões estão configuradas corretamente, use o seguinte comando: netsh int ipv4 show excludedportrange tcp.

Aviso

A porta para a sonda de integridade do ouvinte do grupo de disponibilidade deve ser diferente da porta para a sonda de integridade do endereço IP principal do cluster. Nesses exemplos, a porta do ouvinte é 59999 e a porta da sonda de integridade do endereço IP do núcleo do cluster é 58888. Ambas as portas requerem uma regra de firewall "permitir entrada".

Definir a porta do ouvinte no SQL Server Management Studio

  1. Inicie o SQL Server Management Studio e conecte-se à réplica primária.

  2. Navegue até Grupos de disponibilidade de alta disponibilidade Always On Ouvintes> do grupo de disponibilidade.>

  3. Agora você deve ver o nome do ouvinte que você criou no Gerenciador de Cluster de Failover. Clique com o botão direito do mouse no nome do ouvinte e selecione Propriedades.

  4. Na caixa Porta, especifique o número da porta para o ouvinte do grupo de disponibilidade usando o $EndpointPort usado anteriormente (1433 era o padrão) e selecione OK.

Testar a conexão com o ouvinte

Para testar a conexão:

  1. Use o protocolo RDP (Remote Desktop Protocol) para se conectar a um SQL Server que esteja na mesma rede virtual, mas não seja o proprietário da réplica. Pode ser o outro SQL Server no cluster.

  2. Use o utilitário sqlcmd para testar a conexão. Por exemplo, o script a seguir estabelece uma conexão sqlcmd com a réplica primária por meio do ouvinte com autenticação do Windows:

    sqlcmd -S <listenerName> -E
    

    Se o ouvinte estiver usando uma porta diferente da porta padrão (1433), especifique a porta na cadeia de conexão. Por exemplo, o seguinte comando sqlcmd se conecta a um ouvinte na porta 1435:

    sqlcmd -S <listenerName>,1435 -E
    

A conexão SQLCMD se conecta automaticamente a qualquer instância do SQL Server que hospede a réplica primária.

Nota

Verifique se a porta especificada está aberta no firewall de ambos os SQL Servers. Ambos os servidores requerem uma regra de entrada para a porta TCP que você usa. Para obter mais informações, consulte Adicionar ou editar regra de firewall.

Se você estiver na VM de réplica secundária e não conseguir se conectar ao ouvinte, é possível que a porta de teste não tenha sido configurada corretamente.

Você pode usar o seguinte script para validar que a porta de teste está configurada corretamente para o grupo de disponibilidade:

Clear-Host
Get-ClusterResource `
| Where-Object {$_.ResourceType.Name -like "IP Address"} `
| Get-ClusterParameter `
| Where-Object {($_.Name -like "Network") -or ($_.Name -like "Address") -or ($_.Name -like "ProbePort") -or ($_.Name -like "SubnetMask")}

Diretrizes e limitações

Observe as seguintes diretrizes sobre o ouvinte do grupo de disponibilidade no Azure usando o balanceador de carga interno:

  • Com um balanceador de carga interno, você só acessa o ouvinte de dentro da mesma rede virtual.

  • Se você estiver restringindo o acesso com um Grupo de Segurança de Rede do Azure, verifique se as regras de permissão incluem:

    • Os endereços IP da VM do SQL Server de back-end
    • Os endereços IP flutuantes do balanceador de carga para o ouvinte AG
    • O endereço IP principal do cluster, se aplicável.
  • Crie um ponto de extremidade de serviço ao usar um balanceador de carga padrão com o Armazenamento do Azure para a testemunha da nuvem. Para obter mais informações, consulte Conceder acesso de uma rede virtual.

Cmdlets do PowerShell

Use os seguintes cmdlets do PowerShell para criar um balanceador de carga interno para Máquinas Virtuais do Azure.

Próximos passos

Para saber mais, veja: