Configurare uno o più listener del gruppo di disponibilità AlwaysOn

Si applica a:SQL Server su VM Azure

Suggerimento

Esistono molti metodi per distribuire un gruppo di disponibilità. Semplificare la distribuzione ed eliminare la necessità di un servizio di Azure Load Balancer o di un nome di rete distribuito (DNN) per il gruppo di disponibilità AlwaysOn creando le macchine virtuali (VM) di SQL Server in più subnet all'interno della stessa rete virtuale di Azure. Se il gruppo di disponibilità è già stato creato in una singola subnet, è possibile eseguirne la migrazione a un ambiente con più subnet.

Questo documento illustra come usare PowerShell per eseguire una delle attività seguenti:

  • Creare un servizio di bilanciamento del carico.
  • Aggiungere indirizzi IP a un servizio di bilanciamento del carico esistente per i gruppi di disponibilità di SQL Server.

Un listener del gruppo di disponibilità è un nome di rete virtuale al quale si connettono i client per l'accesso ai database. Nelle macchine virtuali di Azure in una singola subnet, un servizio di bilanciamento del carico contiene l'indirizzo IP del listener. Il servizio di bilanciamento del carico indirizza il traffico all'istanza di SQL Server in ascolto nella porta probe. In genere, un gruppo di disponibilità usa un servizio di bilanciamento del carico interno. Un servizio di bilanciamento del carico interno di Azure può ospitare uno o più indirizzi IP. Ogni indirizzo IP usa una porta probe specifica.

La possibilità di assegnare più indirizzi IP a un servizio di bilanciamento del carico interno è una novità di Azure ed è disponibile solo nel modello di Resource Manager. Per completare questa attività, è necessario un gruppo di disponibilità di SQL Server distribuito su macchine virtuali di Azure nel modello di Resource Manager. Entrambe le macchine virtuali di SQL Server devono appartenere allo stesso set di disponibilità. È possibile usare il modello Microsoft per creare automaticamente il gruppo di disponibilità in Azure Resource Manager. Questo modello crea automaticamente il gruppo di disponibilità, che include il servizio di bilanciamento del carico interno. Se si preferisce, è possibile configurare manualmente un gruppo di disponibilità AlwaysOn.

Per completare i passaggi descritti in questo articolo, i gruppi di disponibilità devono essere già configurati.

Gli argomenti correlati includono:

Nota

Questo articolo usa il modulo di PowerShell Azure Az consigliato per l'interazione con Azure. Per iniziare a usare il modulo Az PowerShell, vedere Installare Azure PowerShell. Per informazioni su come eseguire la migrazione al modulo AZ PowerShell, vedere Eseguire la migrazione di Azure PowerShell da AzureRM ad Az.

Avviare la sessione di PowerShell

Eseguire il cmdlet Connect-Az Account per visualizzare una schermata di accesso in cui immettere le credenziali. Usare le stesse credenziali usate per l'accesso al portale di Azure.

Connect-AzAccount

Se si hanno più sottoscrizioni, usare il cmdlet Set-AzContext per selezionare la sottoscrizione da usare nella sessione di PowerShell. Per visualizzare la sottoscrizione in uso nella sessione corrente di PowerShell, eseguire Get-AzContext. Per visualizzare tutte le sottoscrizioni, eseguire Get-AzSubscription.

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

Verificare la versione di PowerShell

Gli esempi di questo articolo sono stati testati usando la versione 5.4.1 del modulo di Azure PowerShell.

Verificare che la versione del modulo di PowerShell in uso sia 5.4.1 o successiva.

Vedere Installare il modulo Azure PowerShell.

Configurare Windows Firewall

Configurare Windows Firewall per consentire l'accesso a SQL Server. Le regole del firewall consentono le connessioni TCP alle porte usate dall'istanza di SQL Server e al probe di listener. Per informazioni dettagliate, vedere Configurazione di Windows Firewall per l'accesso al Motore di database. Creare una regola in entrata per la porta SQL Server e per la porta probe.

Se si limita l'accesso con un gruppo di sicurezza di rete di Azure, assicurarsi che le regole di autorizzazione includano gli indirizzi IP della macchina virtuale di SQL Server di back-end e gli indirizzi IP del bilanciamento del carico mobile per il listener AG e l'indirizzo IP principale del cluster, se disponibile.

Determinare lo SKU di Load Balancer necessario

Azure Load Balancer è disponibile in due SKU: Basic e Standard. Load Balancer Standard è consigliato perché lo SKU Basic è in programma di essere ritirato il 30 settembre 2025. L'uso di Load Balancer Standard è necessario se le macchine virtuali sono in una zona di disponibilità. Load Balancer Standard richiede che tutti gli indirizzi IP delle macchine virtuali usino indirizzi IP standard.

Il modello Microsoft corrente per un gruppo di disponibilità usa un'istanza di Load Balancer Basic con indirizzi IP di base.

Nota

Se si usa un Load Balancer Standard e l'Archiviazione di Azure per il cloud di controllo, è necessario configurare un endpoint di servizio.

Gli esempi in questo articolo si riferiscono a un'istanza di Load Balancer Standard. Negli esempi lo script include -sku Standard.

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

Per creare un'istanza di Load Balancer Basic, rimuovere -sku Standard dalla riga che consente di creare le istanze di Load Balancer. Ad esempio:

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

Script di esempio: creare un servizio di bilanciamento del carico interno con PowerShell

Nota

Se il gruppo di disponibilità è stato creato con il modello Microsoft, il bilanciamento del carico interno è già stato creato.

Il seguente script di PowerShell crea un servizio di bilanciamento del carico interno, configura le regole di bilanciamento del carico e imposta un indirizzo IP per il servizio di bilanciamento del carico. Per eseguire lo script, aprire Windows PowerShell ISE e copiare lo script nel riquadro Script. Usare Connect-AzAccount per l'accesso a PowerShell. Se si dispone di più sottoscrizioni di Azure, usare Select-AzSubscription per impostare la sottoscrizione.

# 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 di esempio: aggiungere un indirizzo IP a un servizio di bilanciamento del carico esistente con PowerShell

Per usare più di un gruppo di disponibilità, aggiungere un altro indirizzo IP al bilanciamento del carico. Ogni indirizzo IP richiede la sua regola di bilanciamento del carico, la sua porta probe e la sua porta front-end. Aggiungere solo l'indirizzo IP primario della macchina virtuale al pool back-end del servizio di bilanciamento del carico. L'indirizzo IP secondario della macchina virtuale non supporta l'indirizzo IP mobile.

La porta front-end è quella usata dalle applicazioni per connettersi all'istanza di SQL Server. Gli indirizzi IP per i diversi gruppi di disponibilità possono usare la stessa porta front-end.

Nota

Per i gruppi di disponibilità di SQL Server, ogni indirizzo IP richiede una porta probe specifica. Ad esempio, se un indirizzo IP su un servizio di bilanciamento del carico usa la porta probe 59999, nessun altro indirizzo IP in tale servizio di bilanciamento del carico può usare la porta probe 59999.

Lo script seguente aggiunge un nuovo indirizzo IP a un servizio di bilanciamento del carico esistente. Il servizio di bilanciamento del carico interno usa la porta del listener per la porta front-end di bilanciamento del carico. Questa porta può essere la porta su cui SQL Server è in ascolto. Per le istanze predefinite di SQL Server, la porta è la numero 1433. La regola di bilanciamento del carico per un gruppo di disponibilità richiede un indirizzo IP mobile (Direct Server Return), quindi la porta back-end corrisponde alla porta front-end. Aggiornare le variabili per l'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   

Configurare il listener

Il listener del gruppo di disponibilità è un nome di rete e indirizzo IP sul quale è in ascolto il gruppo di disponibilità di SQL Server. Creare il listener del gruppo di disponibilità:

  1. Ottenere il nome della risorsa di rete di cluster:

    a. Usare RDP per connettersi alla macchina virtuale di Azure che ospita la replica primaria.

    b. Aprire Gestione cluster di failover.

    c. Selezionare il nodo Reti e annotare il nome di rete del cluster. Usare questo nome nella variabile $ClusterNetworkName nello script di PowerShell. Nell'immagine seguente il nome della rete di cluster; Cluster Network 1:

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

  2. Aggiungere il punto di accesso client. Il punto di accesso client è il nome della rete che le applicazioni useranno per connettersi ai database nel gruppo di disponibilità.

    a. In Gestione cluster di failover espandere il nome del cluster e quindi fare clic su Ruoli.

    b. Nel pannello Ruoli fare clic con il pulsante destro del mouse sul nome del gruppo di disponibilità e quindi scegliere Aggiungi risorsa>Punto di accesso client.

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

    c. Nella casella Nome creare un nome per il nuovo listener. Il nome del nuovo listener è il nome della rete che le applicazioni useranno per connettersi ai database nel gruppo di disponibilità di SQL Server.

    d. Per completare la creazione del listener, selezionare Avanti due volte; quindi Fine. Non portare il listener o la risorsa in linea a questo punto.

  3. Portare offline il ruolo del cluster del gruppo di disponibilità. In Gestione cluster di failover; in Ruoli fare clic con il pulsante destro del mouse sul ruolo e scegliere Arresta ruolo.

  4. Configurare la risorsa IP per il gruppo di disponibilità:

    a. Scegliere la scheda Risorse e quindi espandere il punto di accesso client creato. Il punto di accesso client è offline.

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

    b. Fare clic con il pulsante destro del mouse sulla risorsa IP, quindi selezionare Proprietà. Annotare il nome dell'indirizzo IP e usarlo nella variabile $IPResourceName nello script di PowerShell.

    c. In Indirizzo IP selezionare Indirizzo IP statico. Impostare l'indirizzo IP sullo stesso indirizzo usato quando è stato impostato l'indirizzo del servizio di bilanciamento del carico nel portale di Azure.

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

  5. Rendere il gruppo di disponibilità di SQL Server dipendente dal punto di accesso client:

    a. In Gestione cluster di failover selezionare Ruoli e quindi il gruppo di disponibilità.

    b. Nella scheda Risorse fare clic con il pulsante destro del mouse sul gruppo di disponibilità in Altre risorse e quindi scegliere ‭Proprietà.

    c. Nella scheda Dipendenze aggiungere il nome del punto di accesso client (listener).

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

    d. Seleziona OK.

  6. Rendere il punto di accesso client dipendente dall'indirizzo IP:

    a. In Gestione cluster di failover selezionare Ruoli e quindi il gruppo di disponibilità.

    b. Nella scheda Risorse fare clic con il pulsante destro del mouse sul punto di accesso client in Nome server e quindi selezionare Proprietà.

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

    c. Selezionare la scheda Dipendenze. Verificare che l'indirizzo IP sia una dipendenza. In caso contrario, impostare una dipendenza sull'indirizzo IP. Se sono presenti più risorse elencate, verificare che gli indirizzi IP abbiano dipendenze OR anziché AND. Selezionare OK.

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

    Suggerimento

    È possibile confermare che le dipendenze sono state configurate correttamente. In Gestione cluster di failover passare a Ruoli, fare clic con il pulsante destro del mouse sul gruppo di disponibilità, scegliere Altre azioni e infine fare clic su Visualizza rapporto dipendenze. Quando le dipendenze sono configurate correttamente, il gruppo di disponibilità dipende dal nome della rete e il nome della rete dipende dall'indirizzo IP.

  7. Impostare i parametri del cluster in PowerShell:

    a. Copiare lo script di PowerShell seguente in una delle istanze di SQL Server. Aggiornare le variabili per l'ambiente.

    • $ClusterNetworkNameTrovare il nome in Gestione cluster di failover selezionandoReti, fare clic con il pulsante destro del mouse sulla rete e scegliere Proprietà. $ClusterNetworkName si trova in Nome nella scheda Generale.

    • $IPResourceName è il nome assegnato alla risorsa indirizzo IP in Gestione cluster di failover. Questo si trova in ‭Gestione cluster di failover selezionando ‭Ruoli‬, quindi selezionare ‭SQL Server AG o il nome dell'istanza di cluster del failover‭‬, in seguito selezionare la scheda ‭ Risorse in nome Server‭fare clic con il pulsante destro del mouse sulla risorsa indirizzo IP, quindi scegliere ‭Proprietà. Il valore corretto è riportato in Nome nella scheda Generale.

    • $ListenerILBIP è l'indirizzo IP creato nel bilanciamento del carico di Azure per il listener del gruppo di disponibilità. Trovare $ListenerILBIP in Gestione cluster di failover, nella stessa pagina delle proprietà in cui si trova il nome della risorsa del listener AG/FCI di SQL Server.

    • $ListenerProbePort è la porta configurata nel Load Balancer di Azure per il listener del gruppo di disponibilità, ad esempio 59999. È valida qualsiasi porta TCP inutilizzata.

    $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. Impostare i parametri del cluster eseguendo lo script di PowerShell in uno dei nodi del cluster.

    Nota

    Se le istanze di SQL Server sono in aree separate, è necessario eseguire lo script di PowerShell due volte. La prima volta usare i valori $ListenerILBIP e $ListenerProbePort della prima area. La seconda volta usare i valori $ListenerILBIP e $ListenerProbePort della seconda area. Il nome della rete e il nome della risorsa IP del cluster sono inoltre diversi per ciascuna regione.

  8. Portare online il ruolo del cluster del gruppo di disponibilità. In Gestione cluster di failover in Ruoli fare clic con il pulsante destro del mouse sul ruolo e selezionare Avvia ruolo.

Se necessario, ripetere i passaggi precedenti per impostare i parametri del cluster per l'indirizzo IP del cluster di failover di Windows Server:

  1. Impostare il nome dell'indirizzo IP del cluster di failover di Windows Server. In Gestione cluster di failover in Risorse principali del cluster individuare Nome server.

  2. Fare clic con il pulsante destro del mouse su Indirizzo IP e scegliere Proprietà.

  3. Copiare il nome dell'indirizzo IP da Nome. Potrebbe essere Indirizzo IP del cluster‭.

  4. Impostare i parametri del cluster in PowerShell:

    a. Copiare lo script di PowerShell seguente in una delle istanze di SQL Server. Aggiornare le variabili per l'ambiente.

    • $ClusterCoreIP è l'indirizzo IP creato nel Load Balancer di Azure per la risorsa cluster principale del cluster di failover di Windows Server. È differente dall'indirizzo IP per il listener del gruppo di disponibilità.

    • $ClusterProbePort è la porta configurata nel Load Balancer di Azure per il probe di integrità del cluster di failover di Windows Server. È differente dal probe per il listener del gruppo di disponibilità.

    $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. Impostare i parametri del cluster eseguendo lo script di PowerShell in uno dei nodi del cluster.

Se una risorsa SQL è configurata per l'uso di una porta compresa tra 49152 e 65536 (intervallo di porte dinamiche predefinito per TCP/IP), aggiungere un'esclusione per ogni porta. Per risorse si intendono:

  • Motore di database di SQL Server
  • Listener del gruppo di disponibilità Always On
  • Probe di integrità per l'istanza del cluster di failover
  • Endpoint del mirroring del database
  • Risorsa IP principale del cluster

L'aggiunta di un'esclusione impedirà l'assegnazione dinamica di altri processi di sistema alla stessa porta. Per questo scenario, configurare le esclusioni seguenti in tutti i nodi del 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 configurare l'esclusione della porta quando la porta non è in uso. In caso contrario, il comando avrà esito negativo con un messaggio simile a "Il processo non può accedere al file perché in uso da un altro processo". Per verificare che le esclusioni siano configurate correttamente, usare il comando seguente: ‭netsh int ipv4 show excludedportrange tcp.

Avviso

La porta del probe di integrità del listener del gruppo di disponibilità deve essere diversa dalla porta del probe di integrità dell'indirizzo IP principale del cluster. In questi esempi la porta del listener è 59999 e la porta del probe di integrità dell'indirizzo IP principale del cluster è 58888. Entrambe le porte richiedono una regola del firewall "consenti ingresso".

Impostare la porta del listener in SQL Server Management Studio

  1. Avviare SQL Server Management Studio e connettersi alla replica primaria.

  2. Passare a Disponibilità elevata AlwaysOn>Gruppi di disponibilità>Listener gruppo di disponibilità.

  3. Viene visualizzato il nome del listener creato in Gestione Cluster di Failover. Fare clic con il pulsante destro del mouse sul nome del listener e scegliere Proprietà.

  4. Nella casella Porta specificare il numero di porta per il listener del gruppo di disponibilità usando il valore di $EndpointPort usato in precedenza (l'impostazione predefinita era 1433), quindi selezionare OK.

Testare la connessione al listener

Per testare la connessione:

  1. Usare Remote Desktop Protocol (RDP) per connettersi a un'istanza di SQL Server che si trova nella stessa rete virtuale ma non è proprietaria della replica. Può trattarsi dell'altra istanza di SQL Server nel cluster.

  2. Usare l'utilità sqlcmd per testare la connessione. Lo script seguente, ad esempio, stabilisce una connessione sqlcmd alla replica primaria tramite il listener con l'autenticazione di Windows:

    sqlcmd -S <listenerName> -E
    

    Se il listener usa una porta diversa da quella predefinita (1433), specificare la porta nella stringa di connessione. Il seguente comando sqlcmd, ad esempio, si connette a un listener nella porta 1435:

    sqlcmd -S <listenerName>,1435 -E
    

La connessione SQLCMD si connette automaticamente a qualsiasi istanza di SQL Server ospiti la replica primaria.

Nota

Verificare che la porta specificata sia aperta nel firewall di entrambe le istanze di SQL Server. Per entrambi i server è necessaria una regola in ingresso per la porta TCP usata. Per altre informazioni, vedere Aggiungere o modificare una regola del firewall.

Se si usa la macchina virtuale di replica secondaria e non è possibile connettersi al listener, è possibile che la porta probe non sia stata configurata correttamente.

È possibile usare il seguente script per verificare che la porta probe sia configurata correttamente per il gruppo di disponibilità:

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")}

Linee guida e limitazioni

Tenere presente le linee guida seguenti per il listener del gruppo di disponibilità in Azure con il servizio di bilanciamento del carico interno:

  • Con un servizio di bilanciamento del carico interno è possibile accedere al listener solo dalla stessa rete virtuale.

  • Se si limita l'accesso con un gruppo di sicurezza di rete di Azure, assicurarsi che le regole di autorizzazione includano:

    • Gli indirizzi IP della macchina virtuale di SQL Server back-end
    • Gli indirizzi IP mobili del bilanciamento del carico per il listener del gruppo di disponibilità
    • L'indirizzo IP principale del cluster, se applicabile.
  • Creare un endpoint di servizio quando si usa un Load Balancer Standard con l'Archiviazione di Azure per il cloud di controllo. Per altre informazioni, vedere Concedere l'accesso da una rete virtuale.

Cmdlet di PowerShell

Usare i seguenti cmdlet PowerShell per creare un servizio di bilanciamento del carico interno per le macchine virtuali di Azure.

Passaggi successivi

Per altre informazioni, vedere: