Freigeben über


Konfigurieren von Always On-Verfügbarkeitsgruppenlistenern

Gilt für: SQL Server auf Azure-VMs

Tipp

Es gibt viele Methoden zum Bereitstellen einer Verfügbarkeitsgruppe. Vereinfachen Sie Ihre Bereitstellung, indem Sie Ihre SQL Server-VMs in mehreren Subnetzen innerhalb desselben virtuellen Azure-Netzwerks erstellen. So benötigen Sie weder eine Azure Load Balancer-Instanz noch einen verteilten Netzwerknamen (DNN) für Ihre Always On-Verfügbarkeitsgruppe. Wenn Sie Ihre Verfügbarkeitsgruppe bereits in einem einzelnen Subnetz erstellt haben, können Sie sie in eine Umgebung mit mehreren Subnetzen migrieren.

In diesem Dokument erfahren Sie, wie Sie PowerShell für eine der folgenden Aufgaben nutzen können:

  • Erstellen eines Lastenausgleichs
  • Hinzufügen von IP-Adressen zu einem Lastenausgleich für SQL Server-Verfügbarkeitsgruppen

Ein Verfügbarkeitsgruppenlistener ist der Name eines virtuellen Netzwerks, mit dem Clients eine Verbindung herstellen, um Zugriff auf die Datenbank zu erhalten. Bei virtuellen Azure-Maschinen in einem einzelnen Subnetz hält ein Load Balancer die IP-Adresse für den Listener. Mit dem Lastenausgleichsmodul wird Datenverkehr auf die Instanz von SQL Server geleitet, die über den Testport lauscht. Normalerweise wird für eine Verfügbarkeitsgruppe ein interner Load Balancer verwendet. Mit einem internen Azure Load Balancer kann auch eine größere Anzahl von IP-Adressen gehostet werden. Für jede IP-Adresse wird ein bestimmter Testport verwendet.

Die Möglichkeit zum Zuweisen mehrerer IP-Adressen zu einem internen Lastenausgleichsmodul ist neu in Azure und nur im Resource Manager-Modell verfügbar. Für diese Aufgabe benötigen Sie eine SQL Server-Verfügbarkeitsgruppe, die in Azure Virtual Machines unter dem Resource Manager-Modell bereitgestellt wird. Beide virtuellen SQL Server-Computer müssen der gleichen Verfügbarkeitsgruppe angehören. Mithilfe der Microsoft-Vorlage können Sie die Verfügbarkeitsgruppe in Azure Resource Manager automatisch erstellen. Mit dieser Vorlage wird die Verfügbarkeitsgruppe automatisch erstellt, einschließlich des internen Lastenausgleichsmoduls. Alternativ können Sie auch eine Always On-Verfügbarkeitsgruppe manuell konfigurieren.

Um die Schritte in diesem Artikel ausführen zu können, müssen die Verfügbarkeitsgruppen bereits konfiguriert sein.

Verwandte Themen:

Hinweis

In diesem Artikel wird das Azure Az PowerShell-Modul verwendet. Dieses PowerShell-Modul wird für die Interaktion mit Azure empfohlen. Informationen zu den ersten Schritten mit dem Az PowerShell-Modul finden Sie unter Installieren von Azure PowerShell. Informationen zum Migrieren zum Az PowerShell-Modul finden Sie unter Migrieren von Azure PowerShell von AzureRM zum Az-Modul.

Starten der PowerShell-Sitzung

Führen Sie das Cmdlet Connect-AzAccount aus. Daraufhin wird eine Anmeldeseite angezeigt, auf der Sie Ihre Anmeldeinformationen eingeben müssen. Verwenden Sie die gleichen Anmeldeinformationen wie für die Anmeldung beim Azure-Portal.

Connect-AzAccount

Wenn Sie über mehrere Abonnements verfügen, wählen Sie mit dem Cmdlet Set-AzContext das Abonnement aus, das für die PowerShell-Sitzung verwendet werden soll. Führen Sie das Cmdlet Get-AzContext aus, um das Abonnement anzuzeigen, das für die aktuelle PowerShell-Sitzung verwendet wird. Um alle Ihre Abonnements anzuzeigen, führen Sie Get-AzSubscription aus.

Set-AzContext -SubscriptionId 'aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e'

Überprüfen der PowerShell-Version

Die Beispiele in diesem Artikel wurden mit Version 5.4.1 des Azure PowerShell-Moduls getestet.

Vergewissern Sie sich, dass Sie mindestens Version 5.4.1 des PowerShell-Moduls verwenden.

Siehe Installieren des Azure PowerShell-Moduls.

Konfigurieren der Windows-Firewall

Konfigurieren Sie die Windows-Firewall so, dass der SQL Server-Zugriff zulässig ist. Die Firewallregeln lassen TCP-Verbindungen mit den Ports für die SQL Server-Instanz und den Listenertest zu. Weitere Informationen finden Sie unter Konfigurieren einer Windows-Firewall für Datenbank-Engine-Zugriff. Erstellen Sie für den SQL Server-Port und den Testport eine Regel für eingehenden Datenverkehr.

Wenn Sie den Zugriff mit einer Azure-Netzwerksicherheitsgruppe einschränken, stellen Sie sicher, dass die Zulassungsregeln die IP-Adressen des virtuellen SQL Server-Back-End-Computers, die Floating IP-Adressen des Lastenausgleichs für den AG-Listener und die IP-Adresse der Hauptressourcen des Clusters (falls zutreffend) umfassen.

Festlegen der erforderlichen Load Balancer-SKU

Azure Load Balancer ist in zwei SKUs verfügbar: Basic und Standard. Load Balancer Standard wird empfohlen, da die Basic-SKU am 30. September 2025 eingestellt wird. Load Balancer Standard ist für virtuelle Computer in einer Verfügbarkeitszone erforderlich. Für Load Balancer Standard müssen für alle virtuellen Computer Standard-IP-Adressen verwendet werden.

Die aktuelle Microsoft-Vorlage für eine Verfügbarkeitsgruppe verwendet Load Balancer Basic mit grundlegenden IP-Adressen.

Hinweis

Sie müssen einen Dienstendpunkt konfigurieren, wenn Sie einen Standardlastenausgleich und Azure Storage als Cloudzeugen verwenden.

In den Beispielen in diesem Artikel wird Load Balancer Standard angegeben. In den Beispielen ist -sku Standard im Skript enthalten.

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

Zum Erstellen einer Load Balancer Basic-Instanz entfernen Sie -sku Standard aus der Zeile, über die der Load Balancer erstellt wird. Beispiel:

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

Beispielskript: Erstellen eines internen Lastenausgleichs mit PowerShell

Hinweis

Wenn Sie Ihre Verfügbarkeitsgruppe mit der Microsoft-Vorlage erstellt haben, wurde der interne Load Balancer bereits erstellt.

Mit dem folgenden PowerShell-Skript wird ein internes Lastenausgleichsmodul erstellt, die Lastenausgleichsregeln werden erstellt und eine IP-Adresse für das Lastenausgleichsmodul wird festgelegt. Öffnen Sie Windows PowerShell ISE, und fügen Sie das Skript im Bereich „Skript“ ein, um es auszuführen. Melden Sie sich mithilfe von Connect-AzAccount bei PowerShell an. Verwenden Sie bei mehreren Azure-Abonnements Select-AzSubscription , um das Abonnement festzulegen.

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

Beispielskript: Hinzufügen einer IP-Adresse zu einem vorhandenen Lastenausgleichsmodul mit PowerShell

Wenn Sie mehrere Verfügbarkeitsgruppen verwenden möchten, fügen Sie dem Load Balancer eine zusätzliche IP-Adresse hinzu. Für jede IP-Adresse sind eine eigene Lastenausgleichsregel, ein Testport und ein Front-End-Port erforderlich. Fügen Sie dem Back-End-Pool des Lastenausgleichs nur die primäre IP-Adresse des virtuellen Computers hinzu, da die IP-Adresse des sekundären virtuellen Computers keine Floating-IP-Adresse unterstützt.

Der Front-End-Port ist der Port, der von Anwendungen zum Herstellen einer Verbindung mit der SQL Server-Instanz genutzt wird. IP-Adressen für unterschiedliche Verfügbarkeitsgruppen können denselben Front-End-Port verwenden.

Hinweis

Bei SQL Server-Verfügbarkeitsgruppen wird für jede IP-Adresse ein bestimmter Testport benötigt. Wenn für eine IP-Adresse eines Lastenausgleichsmoduls beispielsweise der Testport 59999 verwendet wird, können keine anderen IP-Adressen des Lastenausgleichsmoduls den Testport 59999 nutzen.

Mit dem folgenden Skript wird einem vorhandenen Lastenausgleichsmodul eine neue IP-Adresse hinzugefügt. Das interne Lastenausgleichsmodul verwendet den Listenerport für den Front-End-Port des Lastenausgleichs. Dieser Port kann der Port sein, über den SQL Server lauscht. Für Standardinstanzen von SQL Server lautet der Port 1433. Für die Lastenausgleichsregel einer Verfügbarkeitsgruppe wird eine Floating IP-Adresse (Direct Server Return) benötigt, sodass der Back-End-Port dem Front-End-Port entspricht. Aktualisieren Sie die Variablen für Ihre Umgebung.

# 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   

Konfigurieren des Listeners

Der Verfügbarkeitsgruppenlistener umfasst eine IP-Adresse und einen Netzwerknamen, über die die SQL Server-Verfügbarkeitsgruppe lauscht. So erstellen Sie einen Verfügbarkeitsgruppenlistener:

  1. Abrufen des Namens der Clusternetzwerkressource:

    a. Stellen Sie eine RDP-Verbindung mit dem virtuellen Azure-Computer her, der das primäre Replikat hostet.

    b. Öffnen Sie den Failovercluster-Manager.

    c. Wählen Sie den Knoten Netzwerke aus, und notieren Sie den Netzwerknamen des Clusters. Verwenden Sie diesen Namen im PowerShell-Skript in der Variablen $ClusterNetworkName . In der folgenden Abbildung lautet der Name des Clusternetzwerks Cluster Network 1:

    Screenshot eines Clusternetzwerknamen im Failovercluster-Manager

  2. Fügen Sie den Clientzugriffspunkt hinzu. Der Clientzugriffspunkt ist der Netzwerkname, der von den Anwendungen zum Herstellen der Verbindung mit den Datenbanken einer Verfügbarkeitsgruppe verwendet wird.

    a. Erweitern Sie im Failovercluster-Manager den Clusternamen, und wählen Sie dann Rollen aus.

    b. Klicken Sie im Bereich Rollen mit der rechten Maustaste auf den Verfügbarkeitsgruppennamen, und wählen Sie dann Ressource hinzufügen>Clientzugriffspunkt aus.

    Screenshot des Failovercluster-Managers beim Auswählen des Clientzugriffspunkt-Befehls im Kontextmenü für die Verfügbarkeitsgruppe

    c. Erstellen Sie im Feld Name einen Namen für diesen neuen Listener. Der Name für den neuen Listener ist der Netzwerkname, den Anwendungen beim Herstellen einer Verbindung mit Datenbanken in der SQL Server-Verfügbarkeitsgruppe verwenden.

    d. Klicken Sie zum Abschließen der Listenererstellung zweimal auf Weiter und dann auf Fertig stellen. Schalten Sie den Listener oder die Ressource jetzt noch nicht online.

  3. Schalten Sie die Clusterrolle der Verfügbarkeitsgruppe offline. Klicken Sie im Failovercluster-Manager unter Rollen mit der rechten Maustaste auf die Rolle, und klicken Sie dann auf Rolle beenden.

  4. Konfigurieren der IP-Ressource für die Verfügbarkeitsgruppe:

    a. Klicken Sie auf die Registerkarte Ressourcen, und erweitern Sie dann den erstellten Clientzugriffspunkt. Der Clientzugriffspunkt ist offline.

    Screenshot des Failovercluster-Managers mit einem Offlinestatus für einen Clientzugriffspunkt

    b. Klicken Sie mit der rechten Maustaste auf die IP-Ressource, und klicken Sie dann auf Eigenschaften. Notieren Sie den Namen der IP-Adresse, und verwenden Sie ihn in der Variablen $IPResourceName im PowerShell-Skript.

    c. Klicken Sie unter IP-Adresse auf Statische IP-Adresse. Legen Sie die IP-Adresse auf die gleiche Adresse fest, die Sie beim Festlegen der Adresse für den Lastenausgleich im Azure-Portal verwendet haben.

    Screenshot des Failovercluster-Managers, der die Auswahl einer IP-Adresse zeigt

  5. Einrichten der Abhängigkeit der SQL Server-Verfügbarkeitsgruppenressource vom Clientzugriffspunkt:

    a. Klicken Sie im Failovercluster-Manager auf Rollen und dann auf Ihre Verfügbarkeitsgruppe.

    b. Klicken Sie auf der Registerkarte Ressourcen unter Sonstige Ressourcen mit der rechten Maustaste auf die Verfügbarkeitsressource, und klicken Sie dann auf Eigenschaften.

    c. Fügen Sie auf der Registerkarte Abhängigkeiten den Namen des Clientzugriffspunkts (Listener) hinzu.

    Screenshot des Failovercluster-Managers, der das Hinzufügen eines Namens auf der Registerkarte „Abhängigkeiten“ zeigt

    d. Klicken Sie auf OK.

  6. Abhängigmachen der Ressource des Clientzugangspunkts von der IP-Adresse:

    a. Klicken Sie im Failovercluster-Manager auf Rollen und dann auf Ihre Verfügbarkeitsgruppe.

    b. Klicken Sie auf der Registerkarte Ressourcen unter Servername mit der rechten Maustaste auf den Clientzugriffspunkt, und wählen Sie dann Eigenschaften aus.

    Screenshot des Failovercluster-Managers mit der Menüoption „Eigenschaften“ für den Namen des Listeners

    c. Klicken Sie auf die Registerkarte Abhängigkeiten. Überprüfen Sie, ob es sich bei der IP-Adresse um eine Abhängigkeit handelt. Wenn dies nicht der Fall ist, legen Sie eine Abhängigkeit für die IP-Adresse fest. Wenn mehrere Ressourcen aufgeführt sind, überprüfen Sie, ob die IP-Adressen OR-Abhängigkeiten und keine AND-Abhängigkeiten aufweisen. Klicken Sie anschließend auf OK.

    Screenshot der Registerkarte „Abhängigkeiten“ mit einer IP-Ressource für eine Verfügbarkeitsgruppe

    Tipp

    Sie können überprüfen, ob die Abhängigkeiten ordnungsgemäß konfiguriert sind. Wechseln Sie im Failovercluster-Manager zu Rollen, klicken Sie mit der rechten Maustaste auf die Verfügbarkeitsgruppe, wählen Sie Weitere Aktionen aus, und klicken Sie dann auf Abhängigkeitsbericht anzeigen. Wenn die Abhängigkeiten ordnungsgemäß konfiguriert sind, ist die Verfügbarkeitsgruppe vom Netzwerknamen und der Netzwerkname von der IP-Adresse abhängig.

  7. Festlegen der Clusterparameter in PowerShell:

    a. Kopieren Sie das folgende PowerShell-Skript in eine Ihrer SQL Server-Instanzen. Aktualisieren Sie die Variablen für Ihre Umgebung.

    • $ClusterNetworkName: Suchen Sie nach dem Namen im Failovercluster-Manger, indem Sie Netzwerke auswählen, mit der rechten Maustaste auf das Netzwerk klicken und dann Eigenschaften auswählen. Der $ClusterNetworkName befindet sich auf der Registerkarte Allgemein unter Name.

    • $IPResourceName ist der Name der IP-Adressressource im Failovercluster-Manager. Dieses finden Sie im Failovercluster-Manager, indem Sie Rollen auswählen, den SQL Server AG- oder FCI-Namen auswählen, unter Servername die Registerkarte Ressourcen auswählen, mit der rechten Maustaste auf die IP-Adressressource klicken und Eigenschaften auswählen. Der richtige Wert befindet sich auf der Registerkarte Allgemein unter Name.

    • $ListenerILBIP ist die IP-Adresse, die Sie im Azure Load Balancer für den Verfügbarkeitsgruppenlistener angelegt haben. Suchen Sie den $ListenerILBIP im Failovercluster-Manager auf derselben Eigenschaftenseite wie den SQL Server AG/FCI Listener-Ressourcenname.

    • $ListenerProbePort ist der Port, den Sie in Azure Load Balancer für den Verfügbarkeitsgruppenlistener konfiguriert haben, z. B. 59999. Alle nicht verwendeten TCP-Ports sind zulässig.

    $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. Legen Sie die Clusterparameter fest, indem Sie das PowerShell-Skript auf einem der Clusterknoten ausführen.

    Hinweis

    Falls sich Ihre SQL Server-Instanzen in unterschiedlichen Regionen befinden, muss das PowerShell-Skript zweimal ausgeführt werden. Verwenden Sie beim ersten Mal die Werte $ListenerILBIP und $ListenerProbePort der ersten Region. Verwenden Sie beim zweiten Mal die Werte $ListenerILBIP und $ListenerProbePort der zweiten Region. Der Name des Clusternetzwerks und der Cluster-IP-Ressourcenname sind auch in jeder Region unterschiedlich.

  8. Schalten Sie die Clusterrolle für die Verfügbarkeitsgruppe online. Klicken Sie im Failovercluster-Manager unter Rollen mit der rechten Maustaste auf die Rolle, und klicken Sie dann auf Rolle starten.

Wiederholen Sie bei Bedarf die vorherigen Schritte, um die Clusterparameter für die IP-Adresse des Windows Server-Failoverclusters festzulegen:

  1. Rufen Sie den IP-Adressnamen des Windows Server-Failoverclusters ab. Suchen Sie den Servernamen im Failovercluster-Manager unter Hauptressourcen des Clusters.

  2. Klicken Sie erst mit der rechten Maustaste auf IP-Adresse, und wählen Sie dann Eigenschaften aus.

  3. Kopieren Sie aus Name den Namen der IP-Adresse. Es kann sich um die Cluster-IP-Adresse handeln.

  4. Festlegen der Clusterparameter in PowerShell:

    a. Kopieren Sie das folgende PowerShell-Skript in eine Ihrer SQL Server-Instanzen. Aktualisieren Sie die Variablen für Ihre Umgebung.

    • $ClusterCoreIP ist die IP-Adresse, die Sie in Azure Load Balancer für die Hauptclusterressource des Windows Server-Failoverclusters erstellt haben. Sie unterscheidet sich von der IP-Adresse des Verfügbarkeitsgruppenlisteners.

    • $ClusterProbePort ist der Port, den Sie in Azure Load Balancer für den Integritätstest des Windows Server-Failoverclusters konfiguriert haben. Er unterscheidet sich vom Test für den Verfügbarkeitsgruppenlistener.

    $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. Legen Sie die Clusterparameter fest, indem Sie das PowerShell-Skript auf einem der Clusterknoten ausführen.

Wenn eine SQL-Ressource für das Verwenden eines Ports zwischen 49152 und 65536 konfiguriert ist, wobei es sich um den dynamischen Standardportbereich für TCP/IP handelt, fügen Sie für jeden Port einen Ausschluss hinzu. Solche Ressourcen können Folgendes umfassen:

  • SQL Server-Datenbank-Engine
  • Always On-Verfügbarkeitsgruppenlistener
  • Integritätstest für die Failoverclusterinstanz
  • Endpunkt für die Datenbankspiegelung
  • Clusterkern-IP-Ressource

Durch Hinzufügen eines Ausschlusses wird verhindert, dass andere Systemprozesse dynamisch demselben Port zugewiesen werden. Konfigurieren Sie für dieses Szenario die folgenden Ausschlüsse auf allen Clusterknoten:

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

Wenn der Port nicht verwendet wird, muss der Portausschluss unbedingt konfiguriert werden. Andernfalls tritt bei der Ausführung des Befehls ein Fehler auf, und eine Meldung wie „Der Prozess kann nicht auf die Datei zugreifen, weil sie von einem anderen Prozess verwendet wird“ wird angezeigt. Um zu überprüfen, ob die Ausschlüsse korrekt konfiguriert sind, verwenden Sie den folgenden Befehl: netsh int ipv4 show excludedportrange tcp.

Warnung

Der Port für den Integritätstest des Verfügbarkeitsgruppenlisteners muss sich vom Port für den Integritätstest der IP-Adresse der Hauptressource des Clusters unterscheiden. In diesen Beispielen ist der Listenerport 59999, und der Port für den Integritätstest der IP-Adresse der Hauptressource des Clusters lautet 58888. Für beide Ports ist eine „Eingehende zulassen“-Firewallregel erforderlich.

Festlegen des Listenerports in SQL Server Management Studio

  1. Starten Sie SQL Server Management Studio, und stellen Sie eine Verbindung mit dem primären Replikat her.

  2. Navigieren Sie zu Hochverfügbarkeit mit Always On>Verfügbarkeitsgruppen>Verfügbarkeitsgruppenlistener.

  3. Jetzt sollte der Listenername angezeigt werden, den Sie im Failovercluster-Manager erstellt haben. Klicken Sie mit der rechten Maustaste auf den Listenernamen, und wählen Sie Eigenschaften aus.

  4. Geben Sie im Feld Port die Portnummer für den Verfügbarkeitsgruppenlistener an. Verwenden Sie dabei den zuvor verwendeten Wert für $EndpointPort (Standardwert: 1433). Wählen Sie anschließend OK aus.

Testen der Verbindung mit dem Listener

Gehen Sie wie folgt vor, um die Verbindung zu testen:

  1. Stellen Sie eine RDP-Verbindung (Remote Desktop Protocol) mit einer SQL Server-Instanz her, die sich im selben virtuellen Netzwerk befindet, aber nicht für das Replikat zuständig ist. Hierbei kann es sich um die andere SQL Server-Instanz im Cluster handeln.

  2. Testen Sie die Verbindung mithilfe des sqlcmd -Hilfsprogramms. Das folgende Skript stellt beispielsweise über den Listener eine sqlcmd -Verbindung mit Windows-Authentifizierung mit dem primären Replikat her:

    sqlcmd -S <listenerName> -E
    

    Geben Sie den Port in der Verbindungszeichenfolge an, wenn der Listener einen anderen Port als den Standardport (1433) verwendet. Mit dem folgenden sqlcmd-Befehl wird beispielsweise eine Verbindung mit einem Listener über Port 1435 hergestellt:

    sqlcmd -S <listenerName>,1435 -E
    

Die sqlcmd-Verbindung wird automatisch mit der SQL Server-Instanz hergestellt, die das primäre Replikat hostet.

Hinweis

Vergewissern Sie sich, dass der angegebene Port in der Firewall beider SQL Server geöffnet ist. Beide Server benötigen eine eingehende Regel für den TCP-Port, den Sie verwenden möchten. Weitere Informationen finden Sie unter Hinzufügen oder Bearbeiten einer Firewallregel.

Wenn Sie sich auf der sekundären Replikat-VM befinden und keine Verbindung mit dem Listener herstellen können, wurde der Testport möglicherweise nicht ordnungsgemäß konfiguriert.

Sie können das folgende Skript verwenden, um zu überprüfen, ob der Testport für die Verfügbarkeitsgruppe ordnungsgemäß konfiguriert ist:

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

Richtlinien und Einschränkungen

Für Verfügbarkeitsgruppenlistener in Azure mit internem Load Balancer gelten folgenden Richtlinien:

  • Bei Verwendung eines internen Load Balancers erfolgt der Zugriff auf den Listener nur innerhalb desselben virtuellen Netzwerks.

  • Wenn Sie den Zugriff über eine Azure-Netzwerksicherheitsgruppe Zugriff einschränken, stellen Sie sicher, dass die Zulassungsregeln Folgendes umfassen:

    • Die IP-Adressen der SQL Server-VMs im Back-End
    • Die Floating IP-Adressen des Lastenausgleichs für den Verfügbarkeitsgruppenlistener
    • Die IP-Adresse der Hauptressource des Clusters, falls zutreffend
  • Erstellen Sie einen Dienstendpunkt, wenn Sie einen Standardlastenausgleich mit Azure Storage als Cloudzeugen verwenden. Weitere Informationen finden Sie unter Gewähren des Zugriffs über ein virtuelles Netzwerk.

PowerShell-Cmdlets

Verwenden Sie die folgenden PowerShell-Cmdlets, um ein internes Lastenausgleichsmodul für Azure Virtual Machines zu erstellen.

Nächste Schritte

Weitere Informationen finden Sie unter: