Compartilhar via


Configurar um ou mais ouvintes do grupo de disponibilidade Always On

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.

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 à qual os clientes se conectam para acessar o banco de dados. Em Máquinas Virtuais do Azure em uma sub-rede única, um balanceador de carga mantém o endereço IP do ouvinte. O balanceador de carga encaminha o tráfego para a instância do SQL Server que está escutando na porta de investigação. 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 investigação específica.

A capacidade de atribuir vários endereços IP a um balanceador de carga interno é nova no Azure e está disponível somente 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 Resource Manager. 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 Azure Resource Manager. Este modelo cria automaticamente o grupo de disponibilidade, incluindo o balanceador de carga interno para você. Se preferir, você poderá configurar manualmente um grupo de disponibilidade AlwaysOn.

Para completar as etapas deste artigo, os grupos de disponibilidade já devem estar configurados.

Os tópicos relacionados incluem:

Observação

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

Iniciar sua sessão do PowerShell

Execute o cmdlet Connect-Az Account e você verá uma tela de entrada para inserir suas credenciais. Use as mesmas credenciais que você usa para entrar 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 foram testados usando o módulo do Azure PowerShell versão 5.4.1.

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

Confira Instalar o módulo do Azure PowerShell.

Configurar o Firewall do Windows

Configure o Firewall do Windows para permitir acesso ao SQL Server. As regras de firewall permitem conexões TCP com as portas por instância do SQL Server, bem como a investigação do ouvinte. Para obter instruções detalhadas, confira 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 investigação.

Se você estiver restringindo o acesso a 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 da AG e o endereço IP do núcleo do cluster, se aplicável.

Determinar o SKU do balanceador de carga necessário

O Azure Load Balancer está disponível em dois SKUs: Básico e Standard. O Standard Load Balancer é recomendado, pois o SKU Básico está programado para ser desativado em 30 de setembro de 2025. O Standard Load Balancer é necessário para máquinas virtuais em uma zona de disponibilidade. O Standard Load Balancer exige que todos os endereços IP da VM usem endereços IP padrão.

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

Observação

Você precisará configurar um ponto de extremidade de serviço se usar um Standard Load Balancer e o Armazenamento do Azure para a testemunha de nuvem.

Os exemplos neste artigo especificam um Standard Load Balancer. 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

Observação

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

O script do 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 ISE do Windows PowerShell e cole o script no painel. 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, inclua um endereço IP adicional ao balanceador de carga. Cada endereço IP requer sua própria regra de balanceamento de carga, porta de investigação e porta de front-end. Adicione somente 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 oferece suporte a IP flutuante.

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

Observação

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

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 de front-end do balanceamento de carga. Essa porta pode ser aquela que o SQL Server está escutando. Para instâncias padrão do SQL Server, a porta é a 1433. A regra de balanceamento de carga para um grupo de disponibilidade requer um IP flutuante (retorno de servidor direto), de modo que a porta de back-end seja igual à porta de 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 ouvinte

O ouvinte do grupo de disponibilidade é um nome de rede e endereço IP que 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 Gerenciador de Cluster de Failover.

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

    Captura de tela que mostra um nome de rede de cluster no Gerenciador de Cluster de Failover.

  2. Adicionar o ponto de acesso para 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. Em 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 recurso>Ponto de Acesso do Cliente.

    Captura de tela do Gerenciador de Cluster de Failover que mostra a seleção do comando Ponto de Acesso do Cliente no menu de atalho do grupo de disponibilidade.

    c. Na caixa Nome, crie um nome para o novo ouvinte. O nome para o novo ouvinte é o nome da rede que o aplicativo usará para se conectar aos bancos de dados no grupo de disponibilidade do SQL Server.

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

  3. Coloque a função de cluster do grupo de disponibilidade offline. Em 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 de IP para o grupo de disponibilidade:

    a. Selecione a guia Recursos e expanda o ponto de acesso do cliente criado. O ponto de acesso para cliente está offline.

    Captura de tela do Gerenciador de Cluster de Failover que mostra um status offline para um ponto de acesso do cliente.

    b. Clique com o botão direito do mouse no recurso de IP e selecione Propriedades. Anote o nome do endereço IP e use-o na variável $IPResourceName 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 quando definiu o endereço do balanceador de carga no portal do Azure.

    Captura de tela do Gerenciador de Cluster de Failover que mostra a seleção de um endereço IP.

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

    a. Em Gerenciador de Cluster de Failover, selecione Funções e o grupo de disponibilidade.

    b. Na guia Recursos, em Outros Recursos, com o botão direito do mouse no recurso de grupo de disponibilidade e selecione Propriedades.

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

    Captura de tela do Gerenciador de Cluster de Failover que mostra a adição de um nome na guia Dependências.

    d. Selecione OK.

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

    a. Em Gerenciador de Cluster de Failover, selecione Funções e o 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.

    Captura de tela do Gerenciador de Cluster de Failover que mostra a opção de menu Propriedades para o nome do ouvinte.

    c. Selecione a guia Dependências. Verifique se o endereço IP é uma dependência. Se não for, defina uma dependência do endereço IP. Se houver vários recursos listados, verifique se os endereços IP têm dependências OR e não AND. Depois, selecione OK.

    Captura de tela da guia Dependências que mostra um recurso de IP para um grupo de disponibilidade.

    Dica

    Você pode validar se as dependências estão configuradas corretamente. Em Gerenciador de Cluster de Failover, acesse Funções, clique com o botão direito do mouse no grupo de disponibilidade, selecione Mais Ações e Mostrar Relatório de Dependências. Quando as dependências são configuradas corretamente, o grupo de disponibilidade é dependente 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 script do PowerShell a seguir em uma de suas instâncias do SQL Server. Atualize as variáveis para o seu ambiente.

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

    • $IPResourceName é o nome dado ao recurso de endereço IP no Gerenciador de Cluster de Failover. Isso é encontrado no Gerenciador de Cluster de Failover selecionando Funções, selecione o SQL Server AG ou nome 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. O valor correto está em Nome, na guia Geral.

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

    • $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 usada é 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 de cluster executando o script do PowerShell em um dos nós do cluster.

    Observação

    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 valores $ListenerILBIP e $ListenerProbePort da primeira região. Na segunda vez, use os valores $ListenerILBIP e $ListenerProbePort da segunda região. O nome da rede de cluster e o nome do recurso de IP do cluster são também diferentes para cada região.

  8. Coloque a função de cluster do grupo de disponibilidade online. Em 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. Em Gerenciador de Cluster de Failover em Recursos Principais de Cluster, localize Nome do Servidor.

  2. Clique com o botão direito do mouse em Endereço de IP e escolha Propriedades.

  3. Copie o nome do endereço IP em Nome. Isso pode ser Endereço IP do Cluster.

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

    a. Copie o script do PowerShell a seguir em 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. Ele é diferente do endereço IP do 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. Ela é diferente da investigação do 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 de cluster executando o script do PowerShell em um dos nós do cluster.

Se algum recurso do SQL estiver configurado para usar uma porta entre 49152 e 65536 (o intervalo de portas dinâmicas padrão do 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
  • Investigação de integridade da instância de cluster de failover
  • Ponto de extremidade de espelhamento de banco de dados
  • Recurso IP do núcleo do cluster

A adição de 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 que as exclusões foram configuradas corretamente, use o seguinte comando: netsh int ipv4 show excludedportrange tcp.

Aviso

A porta de investigação de integridade do ouvinte do grupo de disponibilidade deve ser diferente da porta de investigação de integridade do endereço IP do núcleo do cluster. Nestes exemplos, a porta do ouvinte é 59999 e a porta de investigação de integridade do endereço IP do núcleo do cluster é 58888. Ambas as portas exigem uma regra de firewall de "entrada de permissão".

Definir a porta do ouvinte no SQL Server Management Studio

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

  2. Procure Alta Disponibilidade Always On>Grupos de Disponibilidade>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 que foi 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 (Área de Trabalho Remota) para se conectar a uma instância do SQL Server que esteja na mesma rede virtual, mas não seja 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 de 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 comando sqlcmd a seguir conecta-se 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.

Observação

Verifique se a porta especificada está aberta no firewall dos servidores SQL. Ambos os servidores exigem uma regra de entrada para a porta TCP que você usa. Para saber mais, confira Adicionar ou Editar Regra de Firewall.

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

Você pode usar o script a seguir para validar se a porta de investigação está configurada corretamente no 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 diretrizes a seguir no ouvinte do grupo de disponibilidade no Azure usando o balanceador de carga interno:

  • Com um balanceador de carga interno, você só pode acessar ao 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 do AG
    • O endereço IP do núcleo do cluster, se aplicável.
  • Crie um ponto de extremidade de serviço ao usar um Standard Load Balancer com o Armazenamento do Azure para a testemunha de nuvem. Para obter mais informações, confira Permitir acesso em uma rede virtual.

Cmdlets do PowerShell

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

Próximas etapas

Para obter mais informações, consulte: