Een of meerdere listeners voor Always On-beschikbaarheidsgroep configureren

Van toepassing op: SQL Server op Azure VM

Tip

Er zijn veel methoden om een beschikbaarheidsgroep te implementeren. Vereenvoudig uw implementatie en elimineer de noodzaak van een Azure Load Balancer of gedistribueerde netwerknaam (DNN) voor uw AlwaysOn-beschikbaarheidsgroep door uw virtuele SQL Server-machines (VM's) te maken in meerdere subnetten binnen hetzelfde virtuele Azure-netwerk. Als u uw beschikbaarheidsgroep al in één subnet hebt gemaakt, kunt u deze migreren naar een omgeving met meerdere subnetten.

In dit document ziet u hoe u PowerShell gebruikt om een van de volgende taken uit te voeren:

  • een load balancer maken
  • IP-adressen toevoegen aan een bestaande load balancer voor SQL Server-beschikbaarheidsgroepen.

Een listener voor beschikbaarheidsgroepen is een naam voor een virtueel netwerk waarmee clients verbinding maken voor databasetoegang. Op virtuele Azure-machines in één subnet bevat een load balancer het IP-adres voor de listener. De load balancer stuurt verkeer naar het exemplaar van SQL Server dat luistert op de testpoort. Normaal gesproken maakt een beschikbaarheidsgroep gebruik van een interne load balancer. Een interne Load Balancer van Azure kan een of meer IP-adressen hosten. Elk IP-adres maakt gebruik van een specifieke testpoort.

De mogelijkheid om meerdere IP-adressen toe te wijzen aan een interne load balancer is nieuw voor Azure en is alleen beschikbaar in het Resource Manager-model. Als u deze taak wilt voltooien, moet er een SQL Server-beschikbaarheidsgroep zijn geïmplementeerd op virtuele Azure-machines in het Resource Manager-model. Beide virtuele SQL Server-machines moeten deel uitmaken van dezelfde beschikbaarheidsset. U kunt de Microsoft-sjabloon gebruiken om automatisch de beschikbaarheidsgroep te maken in Azure Resource Manager. Met deze sjabloon wordt automatisch de beschikbaarheidsgroep gemaakt, inclusief de interne load balancer voor u. U kunt desgewenst handmatig een AlwaysOn-beschikbaarheidsgroep configureren.

Als u de stappen in dit artikel wilt uitvoeren, moeten uw beschikbaarheidsgroepen al zijn geconfigureerd.

Verwante onderwerpen zijn onder andere:

Notitie

In dit artikel wordt gebruikgemaakt van de Azure Az PowerShell-module. Dit is de aanbevolen PowerShell-module voor interactie met Azure. Raadpleeg Azure PowerShell installeren om aan de slag te gaan met de Az PowerShell-module. Raadpleeg Azure PowerShell migreren van AzureRM naar Az om te leren hoe u naar de Azure PowerShell-module migreert.

Een PowerShell-sessie starten

Voer de Verbinding maken-Az Account-cmdlet uit en u krijgt een aanmeldingsscherm te zien om uw referenties in te voeren. Gebruik de referenties waarmee u zich aanmeldt bij de Azure-portal.

Connect-AzAccount

Als u meerdere abonnementen hebt, gebruikt u de cmdlet Set-AzContext om te selecteren welk abonnement uw PowerShell-sessie moet gebruiken. Voer Get-AzContext uit om te zien welk abonnement de huidige PowerShell-sessie gebruikt. Als u al uw abonnementen wilt zien, voert u Get-AzSubscription uit.

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

PowerShell-versie bevestigen

De voorbeelden in dit artikel worden getest met behulp van Azure PowerShell-module versie 5.4.1.

Controleer of uw PowerShell-module 5.4.1 of hoger is.

Zie De Azure PowerShell-module installeren.

Windows Firewall configureren

Configureer Windows Firewall om SQL Server-toegang toe te staan. De firewallregels staan TCP-verbindingen toe voor de poorten die worden gebruikt door het SQL Server-exemplaar en de listenertest. Zie Een Windows Firewall configureren voor Database Engine Access voor gedetailleerde instructies. Maak een binnenkomende regel voor de SQL Server-poort en voor de testpoort.

Als u de toegang met een Azure-netwerkbeveiligingsgroep beperkt, moet u ervoor zorgen dat de regels voor toestaan de IP-adressen van de back-end-SQL Server-VM bevatten en de zwevende IP-adressen van de load balancer voor de AG-listener en het IP-adres van de clusterkern, indien van toepassing.

Bepalen welke load balancer-SKU is vereist

Azure Load Balancer is beschikbaar in twee SKU's: Basic & Standard. De standard load balancer wordt aanbevolen omdat de Basic-SKU op 30 september 2025 buiten gebruik wordt gesteld. De standard load balancer is vereist voor virtuele machines in een beschikbaarheidszone. Standard load balancer vereist dat alle IP-adressen van virtuele machines gebruikmaken van standaard-IP-adressen.

De huidige Microsoft-sjabloon voor een beschikbaarheidsgroep maakt gebruik van een eenvoudige load balancer met basis-IP-adressen.

Notitie

U moet een service-eindpunt configureren als u een standaard load balancer en Azure Storage gebruikt voor de cloudwitness.

In de voorbeelden in dit artikel wordt een standard load balancer opgegeven. In de voorbeelden bevat -sku Standardhet script .

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

Als u een eenvoudige load balancer wilt maken, verwijdert -sku Standard u deze uit de regel waarmee de load balancer wordt gemaakt. Voorbeeld:

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

Voorbeeldscript: Een interne load balancer maken met PowerShell

Notitie

Als u uw beschikbaarheidsgroep hebt gemaakt met de Microsoft-sjabloon, is de interne load balancer al gemaakt.

Met het volgende PowerShell-script maakt u een interne load balancer, configureert u de taakverdelingsregels en stelt u een IP-adres in voor de load balancer. Als u het script wilt uitvoeren, opent u Windows PowerShell ISE en plakt u het script in het deelvenster Script. Gebruik Connect-AzAccount dit om u aan te melden bij PowerShell. Als u meerdere Azure-abonnementen hebt, kunt Select-AzSubscription u het abonnement instellen.

# 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 
    }

Voorbeeldscript: Een IP-adres toevoegen aan een bestaande load balancer met PowerShell

Als u meer dan één beschikbaarheidsgroep wilt gebruiken, voegt u een extra IP-adres toe aan de load balancer. Elk IP-adres vereist een eigen taakverdelingsregel, testpoort en frontpoort. Voeg alleen het primaire IP-adres van de VIRTUELE machine toe aan de back-endpool van de load balancer, omdat het secundaire IP-adres van de VIRTUELE machine geen ondersteuning biedt voor zwevend IP-adres.

De front-endpoort is de poort die toepassingen gebruiken om verbinding te maken met het SQL Server-exemplaar. IP-adressen voor verschillende beschikbaarheidsgroepen kunnen dezelfde front-endpoort gebruiken.

Notitie

Voor SQL Server-beschikbaarheidsgroepen is voor elk IP-adres een specifieke testpoort vereist. Als één IP-adres op een load balancer bijvoorbeeld testpoort 59999 gebruikt, kunnen geen andere IP-adressen op die load balancer testpoort 59999 gebruiken.

Met het volgende script wordt een nieuw IP-adres toegevoegd aan een bestaande load balancer. De ILB gebruikt de listenerpoort voor de front-endpoort voor taakverdeling. Deze poort kan de poort zijn waarop SQL Server luistert. Voor standaardexemplaren van SQL Server is de poort 1433. Voor de taakverdelingsregel voor een beschikbaarheidsgroep is een zwevend IP-adres (direct server return) vereist, zodat de back-endpoort hetzelfde is als de front-endpoort. Werk de variabelen voor uw omgeving bij.

# 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   

De listener configureren

De listener voor de beschikbaarheidsgroep is een IP-adres en netwerknaam waarnaar de SQL Server-beschikbaarheidsgroep luistert. De listener voor beschikbaarheidsgroepen maken:

  1. Haal de naam van de clusternetwerkresource op:

    a. Gebruik RDP om verbinding te maken met de Azure-VM die de primaire replica host.

    b. Open Failoverclusterbeheer.

    c. Selecteer het knooppunt Netwerken en noteer de naam van het clusternetwerk. Gebruik deze naam in de variabele $ClusterNetworkName in het PowerShell-script. In de volgende afbeelding is de clusternetwerknaam Cluster Network 1:

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

  2. Voeg het clienttoegangspunt toe. Het clienttoegangspunt is de netwerknaam die toepassingen gebruiken om verbinding te maken met de databases in een beschikbaarheidsgroep.

    a. Vouw in Failoverclusterbeheer de clusternaam uit en selecteer vervolgens Rollen.

    b. Klik in het deelvenster Rollen met de rechtermuisknop op de naam van de beschikbaarheidsgroep en selecteer vervolgens Toegangspunt voor resourceclient>toevoegen.

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

    c. Maak in het venster Naam een naam voor deze nieuwe listener. De naam van de nieuwe listener is de netwerknaam die toepassingen gebruiken om verbinding te maken met databases in de SQL Server-beschikbaarheidsgroep.

    d. Als u het maken van de listener wilt voltooien, selecteert u volgende twee keer en selecteert u Voltooien. Breng de listener of resource op dit moment niet online.

  3. Haal de clusterrol voor de beschikbaarheidsgroep offline. Klik in Failoverclusterbeheer onder Rollen met de rechtermuisknop op de rol en selecteer Rol stoppen.

  4. Configureer de IP-resource voor de beschikbaarheidsgroep:

    a. Selecteer het tabblad Resources en vouw vervolgens het clienttoegangspunt uit dat u hebt gemaakt. Het clienttoegangspunt is offline.

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

    b. Klik met de rechtermuisknop op de IP-resource en selecteer Vervolgens Eigenschappen. Noteer de naam van het IP-adres en gebruik het in de variabele $IPResourceName in het PowerShell-script.

    c. Selecteer onder IP-adres het statische IP-adres. Stel het IP-adres in op hetzelfde adres dat je hebt gebruikt toen u het adres van de load balancer instelde in de Azure Portal.

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

  5. Maak de SQL Server-beschikbaarheidsgroep afhankelijk van het clienttoegangspunt:

    a. Selecteer in Failoverclusterbeheer rollen en selecteer vervolgens uw beschikbaarheidsgroep.

    b. Klik op het tabblad Resources onder Overige resources met de rechtermuisknop op de resource van de beschikbaarheidsgroep en selecteer Vervolgens Eigenschappen.

    c. Voeg op het tabblad Afhankelijkheden de naam van het clienttoegangspunt (de listener) toe.

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

    d. Selecteer OK.

  6. Maak het clienttoegangspunt afhankelijk van het IP-adres:

    a. Selecteer in Failoverclusterbeheer rollen en selecteer vervolgens uw beschikbaarheidsgroep.

    b. Klik op het tabblad Resources met de rechtermuisknop op het clienttoegangspunt onder Servernaam en selecteer Vervolgens Eigenschappen.

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

    c. Selecteer het tabblad Afhankelijkheden . Controleer of het IP-adres een afhankelijkheid is. Als dit niet het probleem is, stelt u een afhankelijkheid van het IP-adres in. Als er meerdere resources worden vermeld, controleert u of de IP-adressen OF, niet EN, afhankelijkheden hebben. Selecteer vervolgens OK.

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

    Tip

    U kunt controleren of de afhankelijkheden correct zijn geconfigureerd. Ga in Failoverclusterbeheer naar Rollen, klik met de rechtermuisknop op de beschikbaarheidsgroep, selecteer Meer acties en selecteer Vervolgens Afhankelijkheidsrapport weergeven. Wanneer de afhankelijkheden correct zijn geconfigureerd, is de beschikbaarheidsgroep afhankelijk van de netwerknaam en is de netwerknaam afhankelijk van het IP-adres.

  7. Stel de clusterparameters in PowerShell in:

    a. Kopieer het volgende PowerShell-script naar een van uw SQL Server-exemplaren. Werk de variabelen voor uw omgeving bij.

    • $ClusterNetworkNamezoek de naam in Failoverclusterbeheer door Netwerken te selecteren, met de rechtermuisknop op het netwerk te klikken en Eigenschappen te selecteren. De $ClusterNetworkName bevindt zich onder Naam op het tabblad Algemeen.

    • $IPResourceNameis de naam die wordt gegeven aan de IP-adresresource in Failoverclusterbeheer. Dit is te vinden in failoverclusterbeheer door rollen te selecteren, de naam van de SQL Server-AG of FCI te selecteren, het tabblad Resources onder Servernaam te selecteren, met de rechtermuisknop op de IP-adresresource te klikken en Eigenschappen te selecteren. De juiste waarde ziet u op het tabblad Algemeen, bij Naam.

    • $ListenerILBIP is het IP-adres dat u hebt gemaakt in de Azure load balancer voor de listener voor de beschikbaarheidsgroep. Zoek de $ListenerILBIP in Failoverclusterbeheer op dezelfde eigenschappenpagina als de resourcenaam van de SQL Server-AG/FCI-listener.

    • $ListenerProbePort is de poort die u hebt geconfigureerd op de Azure Load Balancer voor de listener van de beschikbaarheidsgroep, zoals 59999. Elke ongebruikte TCP-poort is geldig.

    $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. Stel de clusterparameters in door het PowerShell-script uit te voeren in een van de clusterknooppunten.

    Notitie

    Als uw SQL Server-exemplaren zich in een andere regio bevinden, moet u het PowerShell-script twee keer uitvoeren. De eerste keer gebruikt u de $ListenerILBIP en $ListenerProbePort waarden uit de eerste regio. De tweede keer gebruikt u de $ListenerILBIP en $ListenerProbePort waarden uit de tweede regio. De clusternetwerknaam en de IP-resourcenaam van het cluster zijn ook verschillend voor elke regio.

  8. Breng de clusterrol voor de beschikbaarheidsgroep online. Klik in Failoverclusterbeheer onder Rollen met de rechtermuisknop op de rol en selecteer Rol starten.

Herhaal indien nodig de voorgaande stappen om de clusterparameters in te stellen voor het IP-adres van het Windows Server-failovercluster:

  1. Haal de IP-adresnaam van het Windows Server-failovercluster op. Zoek in Failoverclusterbeheer, onder ClusterKernresources, de servernaam.

  2. Klik met de rechtermuisknop op IP-adres en selecteer Vervolgens Eigenschappen.

  3. Kopieer de naam van het IP-adres uit de naam. Dit kan het IP-adres van het cluster zijn.

  4. Stel de clusterparameters in PowerShell in:

    a. Kopieer het volgende PowerShell-script naar een van uw SQL Server-exemplaren. Werk de variabelen voor uw omgeving bij.

    • $ClusterCoreIP is het IP-adres dat u hebt gemaakt op de Azure Load Balancer voor de kernclusterresource van het Windows Server-failovercluster. Dit verschilt van het IP-adres voor de listener van de beschikbaarheidsgroep.

    • $ClusterProbePort is de poort die u hebt geconfigureerd op de Azure Load Balancer voor de statustest van het Windows Server-failovercluster. Dit verschilt van de test voor de listener van de beschikbaarheidsgroep.

    $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. Stel de clusterparameters in door het PowerShell-script uit te voeren in een van de clusterknooppunten.

Als een SQL-resource is geconfigureerd voor het gebruik van een poort tussen 49152 en 65536 (het standaard dynamische poortbereik voor TCP/IP), voegt u een uitsluiting toe voor elke poort. Dergelijke resources kunnen het volgende omvatten:

  • SQL Server-database-engine
  • AlwaysOn-listener voor beschikbaarheidsgroepen
  • Statustest voor het failoverclusterexemplaren
  • Eindpunt voor databasespiegeling
  • IP-resource van clusterkern

Als u een uitsluiting toevoegt, wordt voorkomen dat andere systeemprocessen dynamisch worden toegewezen aan dezelfde poort. Voor dit scenario configureert u de volgende uitsluitingen op alle clusterknooppunten:

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

Het is belangrijk om de poortuitsluiting te configureren wanneer de poort niet in gebruik is. Anders mislukt de opdracht met een bericht als 'Het proces heeft geen toegang tot het bestand omdat het wordt gebruikt door een ander proces'. Gebruik de volgende opdracht om te bevestigen dat de uitsluitingen correct zijn geconfigureerd: netsh int ipv4 show excludedportrange tcp

Waarschuwing

De poort voor de statustest van de beschikbaarheidsgroeplistener moet afwijken van de poort voor de statustest van het clusterkern-IP-adres. In deze voorbeelden is de listenerpoort 59999 en is de statustestpoort van het clusterkern-IP-adres 58888. Voor beide poorten is een firewallregel voor binnenkomend verkeer toestaan vereist.

De listenerpoort instellen in SQL Server Management Studio

  1. Start SQL Server Management Studio en maak verbinding met de primaire replica.

  2. Navigeer naar Listeners voor beschikbaarheidsgroepen>met hoge beschikbaarheid>van AlwaysOn.

  3. U ziet nu de naam van de listener die u hebt gemaakt in Failoverclusterbeheer. Klik met de rechtermuisknop op de naam en selecteer Eigenschappen.

  4. Geef in het vak Poort het poortnummer op voor de listener van de beschikbaarheidsgroep met behulp van de $EndpointPort die u eerder hebt gebruikt (1433 was de standaardinstelling) en selecteer VERVOLGENS OK.

De verbinding met de listener testen

Test als volgt de verbinding:

  1. Gebruik Remote Desktop Protocol (RDP) om verbinding te maken met een SQL Server die zich in hetzelfde virtuele netwerk bevindt, maar die geen eigenaar is van de replica. Dit kan de andere SQL Server in het cluster zijn.

  2. Gebruik het hulpprogramma sqlcmd om de verbinding te testen. Met het volgende script wordt bijvoorbeeld met Windows-verificatie een sqlcmd-verbinding met de primaire replica tot stand gebracht via de listener:

    sqlcmd -S <listenerName> -E
    

    Als de listener een andere poort dan de standaardpoort (1433) gebruikt, geeft u de poort op in de verbindingsreeks. De volgende sqlcmd-opdracht maakt bijvoorbeeld verbinding met een listener op poort 1435:

    sqlcmd -S <listenerName>,1435 -E
    

De SQLCMD-verbinding maakt automatisch verbinding met het exemplaar van SQL Server dat als host voor de primaire replica fungeert.

Notitie

Zorg ervoor dat de poort die u opgeeft, geopend is op de firewall van beide SQL-servers. Voor beide servers is een regel voor binnenkomende verbindingen vereist voor de TCP-poort die u gebruikt. Zie Add or Edit Firewall Rule (Firewallregel toevoegen of bewerken) voor meer informatie.

Als u zich op de secundaire replica-VM en u geen verbinding kunt maken met de listener, is de testpoort mogelijk niet correct geconfigureerd.

U kunt het volgende script gebruiken om te controleren of de testpoort correct is geconfigureerd voor de beschikbaarheidsgroep:

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

Richtlijnen en beperkingen

Let op de volgende richtlijnen voor listener voor beschikbaarheidsgroepen in Azure met behulp van een interne load balancer:

  • Met een interne load balancer hebt u alleen toegang tot de listener vanuit hetzelfde virtuele netwerk.

  • Als u de toegang met een Azure-netwerkbeveiligingsgroep beperkt, moet u ervoor zorgen dat de regels voor toestaan zijn:

    • De IP-adressen van de BACK-end-SQL Server-VM
    • De zwevende IP-adressen van de load balancer voor de AG-listener
    • Het IP-adres van de clusterkern, indien van toepassing.
  • Maak een service-eindpunt wanneer u een standaard load balancer gebruikt met Azure Storage voor de cloudwitness. Zie Toegang verlenen vanuit een virtueel netwerk voor meer informatie.

PowerShell-cmdlets

Gebruik de volgende PowerShell-cmdlets om een interne load balancer voor virtuele Azure-machines te maken.

Volgende stappen

Raadpleeg voor meer informatie: