Konfigurera en eller flera lyssnare för AlwaysOn-tillgänglighetsgrupper

Gäller för:SQL Server på en virtuell Azure-dator

Dricks

Det finns många metoder för att distribuera en tillgänglighetsgrupp. Förenkla distributionen och eliminera behovet av en Azure Load Balancer eller ett distribuerat nätverksnamn (DNN) för din AlwaysOn-tillgänglighetsgrupp genom att skapa dina virtuella SQL Server-datorer i flera undernät i samma virtuella Azure-nätverk. Om du redan har skapat tillgänglighetsgruppen i ett enda undernät kan du migrera den till en miljö med flera undernät.

Det här dokumentet visar hur du använder PowerShell för att utföra någon av följande uppgifter:

  • skapa en lastbalanserare
  • lägg till IP-adresser till en befintlig lastbalanserare för SQL Server-tillgänglighetsgrupper.

En tillgänglighetsgruppslyssnare är ett virtuellt nätverksnamn som klienter ansluter till för databasåtkomst. På Virtuella Azure-datorer i ett enda undernät innehåller en lastbalanserare IP-adressen för lyssnaren. Lastbalanseraren dirigerar trafik till instansen av SQL Server som lyssnar på avsökningsporten. Vanligtvis använder en tillgänglighetsgrupp en intern lastbalanserare. En intern Azure-lastbalanserare kan vara värd för en eller flera IP-adresser. Varje IP-adress använder en specifik avsökningsport.

Möjligheten att tilldela flera IP-adresser till en intern lastbalanserare är ny i Azure och är endast tillgänglig i Resource Manager-modellen. För att slutföra den här uppgiften måste du ha en SQL Server-tillgänglighetsgrupp distribuerad på Azure Virtual Machines i Resource Manager-modellen. Båda de virtuella SQL Server-datorerna måste tillhöra samma tillgänglighetsuppsättning. Du kan använda Microsoft-mallen för att automatiskt skapa tillgänglighetsgruppen i Azure Resource Manager. Den här mallen skapar automatiskt tillgänglighetsgruppen, inklusive den interna lastbalanseraren åt dig. Om du vill kan du konfigurera en AlwaysOn-tillgänglighetsgrupp manuellt.

För att slutföra stegen i den här artikeln måste dina tillgänglighetsgrupper redan vara konfigurerade.

Relaterade ämnen är:

Kommentar

Den här artikeln använder Azure Az PowerShell-modulen, som är den rekommenderade PowerShell-modulen för interaktion med Azure. För att komma igång med Az PowerShell kan du läsa artikeln om att installera Azure PowerShell. Information om hur du migrerar till Az PowerShell-modulen finns i artikeln om att migrera Azure PowerShell från AzureRM till Az.

Starta din PowerShell-session

Kör cmdleten Anslut-Az-konto så visas en inloggningsskärm för att ange dina autentiseringsuppgifter. Använd samma autentiseringsuppgifter som du använder för att logga in på Azure Portal.

Connect-AzAccount

Om du har flera prenumerationer använder du cmdleten Set-AzContext för att välja vilken prenumeration din PowerShell-session ska använda. Om du vill se vilken prenumeration den aktuella PowerShell-sessionen använder kör du Get-AzContext. Om du vill se alla dina prenumerationer kör du Get-AzSubscription.

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

Verifiera PowerShell-versionen

Exemplen i den här artikeln testas med hjälp av Azure PowerShell-modulversion 5.4.1.

Kontrollera att PowerShell-modulen är 5.4.1 eller senare.

Se Installera Azure PowerShell-modulen.

Konfigurera Windows-brandväggen

Konfigurera Windows-brandväggen för att tillåta SQL Server-åtkomst. Brandväggsreglerna tillåter TCP-anslutningar till de portar som används av SQL Server-instansen och lyssnaravsökningen. Detaljerade anvisningar finns i Konfigurera en Windows-brandvägg för databasmotoråtkomst. Skapa en inkommande regel för SQL Server-porten och för avsökningsporten.

Om du begränsar åtkomsten med en Azure-nätverkssäkerhetsgrupp kontrollerar du att reglerna för tillåtna innehåller IP-adresserna för den virtuella sql server-datorn i serverdelen och lastbalanserarens flytande IP-adresser för tillgänglighetsgruppens lyssnare och klustrets kärn-IP-adress, om tillämpligt.

Fastställa vilken SKU för lastbalanserare som krävs

Azure-lastbalanserare finns i två SKU:er: Basic och Standard. Standardlastbalanseraren rekommenderas eftersom basic-SKU:n är schemalagd att dras tillbaka den 30 september 2025. Standardlastbalanseraren krävs för virtuella datorer i en tillgänglighetszon. Standardlastbalanserare kräver att alla VM IP-adresser använder standard-IP-adresser.

Den aktuella Microsoft-mallen för en tillgänglighetsgrupp använder en grundläggande lastbalanserare med grundläggande IP-adresser.

Kommentar

Du måste konfigurera en tjänstslutpunkt om du använder en standardlastbalanserare och Azure Storage för molnvittnet.

Exemplen i den här artikeln anger en standardlastbalanserare. I exemplen innehåller -sku Standardskriptet .

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

Om du vill skapa en grundläggande lastbalanserare tar du bort -sku Standard från raden som skapar lastbalanseraren. Till exempel:

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

Exempelskript: Skapa en intern lastbalanserare med PowerShell

Kommentar

Om du har skapat din tillgänglighetsgrupp med Microsoft-mallen har den interna lastbalanseraren redan skapats.

Följande PowerShell-skript skapar en intern lastbalanserare, konfigurerar belastningsutjämningsreglerna och anger en IP-adress för lastbalanseraren. Om du vill köra skriptet öppnar du Windows PowerShell ISE och klistrar sedan in skriptet i fönstret Skript. Använd Connect-AzAccount för att logga in på PowerShell. Om du har flera Azure-prenumerationer använder du Select-AzSubscription för att ange prenumerationen.

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

Exempelskript: Lägga till en IP-adress till en befintlig lastbalanserare med PowerShell

Om du vill använda mer än en tillgänglighetsgrupp lägger du till ytterligare en IP-adress till lastbalanseraren. Varje IP-adress kräver en egen belastningsutjämningsregel, avsökningsport och frontport. Lägg bara till den virtuella datorns primära IP-adress till serverdelspoolen för lastbalanseraren eftersom den sekundära VM-IP-adressen inte stöder flytande IP-adress.

Klientdelsporten är den port som program använder för att ansluta till SQL Server-instansen. IP-adresser för olika tillgänglighetsgrupper kan använda samma klientdelsport.

Kommentar

För SQL Server-tillgänglighetsgrupper kräver varje IP-adress en specifik avsökningsport. Om till exempel en IP-adress på en lastbalanserare använder avsökningsport 59999 kan inga andra IP-adresser på lastbalanseraren använda avsökningsport 59999.

Följande skript lägger till en ny IP-adress till en befintlig lastbalanserare. ILB använder lyssnarporten för lastbalanseringsklientporten. Den här porten kan vara porten som SQL Server lyssnar på. För standardinstanser av SQL Server är porten 1433. Belastningsutjämningsregeln för en tillgänglighetsgrupp kräver en flytande IP-adress (direkt serverretur) så att serverdelsporten är samma som klientdelsporten. Uppdatera variablerna för din miljö.

# 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   

Konfigurera lyssnaren

Tillgänglighetsgruppens lyssnare är en IP-adress och ett nätverksnamn som SQL Server-tillgänglighetsgruppen lyssnar på. Så här skapar du tillgänglighetsgruppens lyssnare:

  1. Hämta namnet på klusternätverksresursen:

    a. Använd RDP för att ansluta till den virtuella Azure-dator som är värd för den primära repliken.

    b. Öppna Hanteraren för redundanskluster.

    c. Välj noden Nätverk och anteckna namnet på klustrets nätverk. Använd det här namnet i variabeln $ClusterNetworkName i PowerShell-skriptet. I följande bild är klustrets nätverksnamn Klusternätverk 1:

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

  2. Lägg till klientåtkomstpunkten. Klientåtkomstpunkten är det nätverksnamn som program använder för att ansluta till databaserna i en tillgänglighetsgrupp.

    a. I Klusterhanteraren för växling vid fel expanderar du klusternamnet och väljer sedan Roller.

    b. Högerklicka på tillgänglighetsgruppens namn i fönstret Roller och välj sedan Lägg till resursklientåtkomstpunkt>.

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

    c. I rutan Namn skapar du ett namn för den nya lyssnaren. Namnet på den nya lyssnaren är det nätverksnamn som program använder för att ansluta till databaser i SQL Server-tillgänglighetsgruppen.

    d. Om du vill slutföra skapandet av lyssnaren väljer du Nästa två gånger och sedan Slutför. Ta inte lyssnaren eller resursen online just nu.

  3. Koppla från klusterrollen för tillgänglighetsgruppen. I Klusterhanteraren för växling vid fel högerklickar du på rollen under Roller och väljer sedan Stoppa roll.

  4. Konfigurera IP-resursen för tillgänglighetsgruppen:

    a. Välj fliken Resurser och expandera sedan klientåtkomstpunkten som du skapade. Klientåtkomstpunkten är offline.

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

    b. Högerklicka på IP-resursen och välj sedan Egenskaper. Anteckna namnet på IP-adressen och använd den i variabeln $IPResourceName i PowerShell-skriptet.

    c. Under IP-adress väljer du Statisk IP-adress. Ange IP-adressen som samma adress som du använde när du angav lastbalanserarens adress på Azure-portalen.

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

  5. Gör SQL Server-tillgänglighetsgruppen beroende av klientåtkomstpunkten:

    a. I Klusterhanteraren för växling vid fel väljer du Roller och sedan din tillgänglighetsgrupp.

    b. På fliken Resurser , under Andra resurser, högerklickar du på resursen för tillgänglighetsgruppen och väljer sedan Egenskaper.

    c. På fliken Beroenden lägger du till namnet på klientåtkomstpunkten (lyssnaren).

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

    d. Välj OK.

  6. Gör klientåtkomstpunkten beroende av IP-adressen:

    a. I Klusterhanteraren för växling vid fel väljer du Roller och sedan din tillgänglighetsgrupp.

    b. Högerklicka på klientåtkomstpunkten under Servernamn på fliken Resurser och välj sedan Egenskaper.

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

    c. Välj fliken Beroenden . Kontrollera att IP-adressen är ett beroende. Om den inte är det anger du ett beroende av IP-adressen. Om flera resurser visas kontrollerar du att IP-adresserna har ELLER, inte OCH, beroenden. Välj sedan OK.

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

    Dricks

    Du kan kontrollera att beroendena är korrekt konfigurerade. I Klusterhanteraren för växling vid fel går du till Roller, högerklickar på tillgänglighetsgruppen, väljer Fler åtgärder och väljer sedan Visa beroenderapport. När beroendena är korrekt konfigurerade är tillgänglighetsgruppen beroende av nätverksnamnet och nätverksnamnet är beroende av IP-adressen.

  7. Ange klusterparametrarna i PowerShell:

    a. Kopiera följande PowerShell-skript till en av dina SQL Server-instanser. Uppdatera variablerna för din miljö.

    • $ClusterNetworkName leta reda på namnet i klusterhanteraren för växling vid fel genom att välja Nätverk, högerklicka på nätverket och välja Egenskaper. $ClusterNetworkName finns under Namn på fliken Allmänt.

    • $IPResourceName är namnet på IP-adressresursen i klusterhanteraren för växling vid fel. Detta finns i Klusterhanteraren för växling vid fel genom att välja Roller, välja SQL Server AG- eller FCI-namnet, välja fliken Resurser under Servernamn, högerklicka på IP-adressresursen och välja Egenskaper. Rätt värde finns under Namn på fliken Allmänt.

    • $ListenerILBIP är DEN IP-adress som du skapade i Azure-lastbalanseraren för tillgänglighetsgruppens lyssnare. Leta reda på $ListenerILBIP i Klusterhanteraren för växling vid fel på samma egenskapssida som resursnamnet för SQL Server AG/FCI-lyssnaren.

    • $ListenerProbePort är den port som du konfigurerade i Azure-lastbalanseraren för tillgänglighetsgruppens lyssnare, till exempel 59999. Alla oanvända TCP-portar är giltiga.

    $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. Ange klusterparametrarna genom att köra PowerShell-skriptet på en av klusternoderna.

    Kommentar

    Om dina SQL Server-instanser finns i separata regioner måste du köra PowerShell-skriptet två gånger. Första gången använder du $ListenerILBIP värdena och $ListenerProbePort från den första regionen. Den andra gången använder du $ListenerILBIP värdena och $ListenerProbePort från den andra regionen. Klustrets nätverksnamn och klustrets IP-resursnamn är också olika för varje region.

  8. Aktivera klusterrollen för tillgänglighetsgruppen. I Klusterhanteraren för växling vid fel högerklickar du på rollen under Roller och väljer sedan Starta roll.

Upprepa vid behov föregående steg för att ange klusterparametrarna för IP-adressen för Windows Server-redundansklustret:

  1. Hämta IP-adressnamnet för Windows Server-redundansklustret. I Klusterhanteraren för växling vid fel letar du upp Servernamn under Klusterkärnresurser.

  2. Högerklicka på IP-adress och välj sedan Egenskaper.

  3. Kopiera namnet på IP-adressen från Namn. Det kan vara kluster-IP-adress.

  4. Ange klusterparametrarna i PowerShell:

    a. Kopiera följande PowerShell-skript till en av dina SQL Server-instanser. Uppdatera variablerna för din miljö.

    • $ClusterCoreIP är DEN IP-adress som du skapade i Azure-lastbalanseraren för Windows Server-redundansklustrets kärnklusterresurs. Det skiljer sig från IP-adressen för tillgänglighetsgruppens lyssnare.

    • $ClusterProbePort är den port som du konfigurerade i Azure-lastbalanseraren för Windows Server-redundansklustrets hälsoavsökning. Det skiljer sig från avsökningen för tillgänglighetsgruppens lyssnare.

    $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. Ange klusterparametrarna genom att köra PowerShell-skriptet på en av klusternoderna.

Om en SQL-resurs har konfigurerats för att använda en port mellan 49152 och 65536 (standard dynamiskt portintervall för TCP/IP) lägger du till ett undantag för varje port. Sådana resurser kan vara:

  • SQL Server-databasmotor
  • Lyssnare för AlwaysOn-tillgänglighetsgrupp
  • Hälsoavsökning för redundansklusterinstansen
  • Databasspeglingsslutpunkt
  • Klusterkärnig IP-resurs

Om du lägger till ett undantag förhindrar du att andra systemprocesser tilldelas dynamiskt till samma port. I det här scenariot konfigurerar du följande undantag på alla klusternoder:

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

Det är viktigt att konfigurera portundantag när porten inte används. Annars misslyckas kommandot med ett meddelande som "Processen kan inte komma åt filen eftersom den används av en annan process". Om du vill bekräfta att undantagen är korrekt konfigurerade använder du följande kommando: netsh int ipv4 show excludedportrange tcp.

Varning

Porten för tillgänglighetsgruppens lyssnarens hälsoavsökning måste skilja sig från porten för klusterkärn-IP-adressens hälsoavsökning. I de här exemplen är lyssnarporten 59999 och klusterkärn-IP-adressens hälsoavsökningsport är 58888. Båda portarna kräver en brandväggsregel "tillåt inkommande".

Ange lyssnarporten i SQL Server Management Studio

  1. Starta SQL Server Management Studio och anslut till den primära repliken.

  2. Gå till AlwaysOn-tillgänglighetsgrupper>>tillgänglighetsgrupplyssnare.

  3. Nu bör du se lyssnarnamnet som du skapade i Klusterhanteraren för växling vid fel. Högerklicka på lyssnarnamnet och välj Egenskaper.

  4. I rutan Port anger du portnumret för tillgänglighetsgruppens lyssnare med hjälp av $EndpointPort du använde tidigare (1433 var standard) och väljer sedan OK.

Testa anslutningen till lyssnaren

Så här testar du anslutningen:

  1. Använd RDP (Remote Desktop Protocol) för att ansluta till en SQL Server som finns i samma virtuella nätverk, men som inte äger repliken. Det kan vara den andra SQL Server i klustret.

  2. Använd sqlcmd-verktyget för att testa anslutningen. Följande skript upprättar till exempel en sqlcmd-anslutning till den primära repliken via lyssnaren med Windows-autentisering:

    sqlcmd -S <listenerName> -E
    

    Om lyssnaren använder en annan port än standardporten (1433) anger du porten i anslutningssträng. Följande sqlcmd-kommando ansluter till exempel till en lyssnare på port 1435:

    sqlcmd -S <listenerName>,1435 -E
    

SQLCMD-anslutningen ansluter automatiskt till den instans av SQL Server som är värd för den primära repliken.

Kommentar

Kontrollera att porten som du anger är öppen i brandväggen för båda SQL-servrarna. Båda servrarna kräver en inkommande regel för den TCP-port som du använder. Mer information finns i Lägga till eller redigera brandväggsregel.

Om du är på den sekundära virtuella replikdatorn och inte kan ansluta till lyssnaren är det möjligt att avsökningsporten inte har konfigurerats korrekt.

Du kan använda följande skript för att verifiera att avsökningsporten är korrekt konfigurerad för tillgänglighetsgruppen:

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

Riktlinjer och begränsningar

Observera följande riktlinjer för tillgänglighetsgruppslyssnare i Azure med hjälp av intern lastbalanserare:

  • Med en intern lastbalanserare får du bara åtkomst till lyssnaren från samma virtuella nätverk.

  • Om du begränsar åtkomsten med en Azure Network Security-grupp kontrollerar du att tillåtna regler omfattar:

    • IP-adresserna för den virtuella sql server-datorn i serverdelen
    • Flyttalbalanserarens flytande IP-adresser för tillgänglighetsgruppens lyssnare
    • Klusterkärnans IP-adress, om tillämpligt.
  • Skapa en tjänstslutpunkt när du använder en standardlastbalanserare med Azure Storage för molnvittnet. Mer information finns i Bevilja åtkomst från ett virtuellt nätverk.

PowerShell-cmdletar

Använd följande PowerShell-cmdletar för att skapa en intern lastbalanserare för virtuella Azure-datorer.

Nästa steg

Mer information finns i: