Konfigurowanie co najmniej jednego odbiornika zawsze włączonej grupy dostępności

Dotyczy:SQL Server na maszynie wirtualnej platformy Azure

Napiwek

Istnieje wiele metod wdrażania grupy dostępności. Uprość wdrażanie i eliminuje konieczność korzystania z usługi Azure Load Balancer lub rozproszonej nazwy sieci (DNN) dla zawsze włączonej grupy dostępności, tworząc maszyny wirtualne programu SQL Server w wielu podsieciach w tej samej sieci wirtualnej platformy Azure. Jeśli grupa dostępności została już utworzona w jednej podsieci, możesz ją zmigrować do środowiska z wieloma podsieciami.

W tym dokumencie pokazano, jak za pomocą programu PowerShell wykonać jedno z następujących zadań:

  • tworzenie modułu równoważenia obciążenia
  • dodaj adresy IP do istniejącego modułu równoważenia obciążenia dla grup dostępności programu SQL Server.

Odbiornik grupy dostępności to nazwa sieci wirtualnej, z którą klienci łączą się w celu uzyskania dostępu do bazy danych. W usłudze Azure Virtual Machines w jednej podsieci moduł równoważenia obciążenia przechowuje adres IP odbiornika. Moduł równoważenia obciążenia kieruje ruch do wystąpienia programu SQL Server, które nasłuchuje na porcie sondy. Zazwyczaj grupa dostępności używa wewnętrznego modułu równoważenia obciążenia. Wewnętrzny moduł równoważenia obciążenia platformy Azure może hostować jeden lub wiele adresów IP. Każdy adres IP używa określonego portu sondy.

Możliwość przypisywania wielu adresów IP do wewnętrznego modułu równoważenia obciążenia jest nowa na platformie Azure i jest dostępna tylko w modelu usługi Resource Manager. Aby wykonać to zadanie, musisz mieć grupę dostępności programu SQL Server wdrożoną w usłudze Azure Virtual Machines w modelu usługi Resource Manager. Obie maszyny wirtualne programu SQL Server muszą należeć do tego samego zestawu dostępności. Za pomocą szablonu firmy Microsoft możesz automatycznie utworzyć grupę dostępności w usłudze Azure Resource Manager. Ten szablon automatycznie tworzy grupę dostępności, w tym wewnętrzny moduł równoważenia obciążenia. Jeśli wolisz, możesz ręcznie skonfigurować zawsze włączoną grupę dostępności.

Aby wykonać kroki opisane w tym artykule, grupy dostępności muszą być już skonfigurowane.

Powiązane tematy obejmują:

Uwaga

W tym artykule użyto modułu Azure Az programu PowerShell, który jest zalecanym modułem programu PowerShell do interakcji z platformą Azure. Aby rozpocząć pracę z modułem Azure PowerShell, zobacz Instalowanie programu Azure PowerShell. Aby dowiedzieć się, jak przeprowadzić migrację do modułu Az PowerShell, zobacz Migracja programu Azure PowerShell z modułu AzureRM do modułu Az.

Uruchamianie sesji programu PowerShell

Uruchom polecenie cmdlet Połączenie-Az Account i zostanie wyświetlony ekran logowania umożliwiający wprowadzenie poświadczeń. Użyj tych samych poświadczeń, których używasz do logowania w witrynie Azure Portal.

Connect-AzAccount

Jeśli masz wiele subskrypcji, użyj polecenia cmdlet Set-AzContext , aby wybrać subskrypcję, której sesji programu PowerShell należy użyć. Aby zobaczyć, jakiej subskrypcji używa bieżąca sesja programu PowerShell, uruchom polecenie Get-AzContext. Aby wyświetlić wszystkie subskrypcje, uruchom polecenie Get-AzSubscription.

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

Weryfikowanie wersji programu PowerShell

Przykłady w tym artykule są testowane przy użyciu modułu Azure PowerShell w wersji 5.4.1.

Sprawdź, czy moduł programu PowerShell ma wartość 5.4.1 lub nowszą.

Zobacz Instalowanie modułu programu Azure PowerShell.

Konfigurowanie Zapory systemu Windows

Skonfiguruj Zaporę systemu Windows, aby zezwolić na dostęp do programu SQL Server. Reguły zapory zezwalają na połączenia TCP z portami używanymi przez wystąpienie programu SQL Server i sondę odbiornika. Aby uzyskać szczegółowe instrukcje, zobacz Konfigurowanie zapory systemu Windows na potrzeby dostępu do aparatu bazy danych. Utwórz regułę ruchu przychodzącego dla portu programu SQL Server i portu sondy.

Jeśli ograniczasz dostęp za pomocą sieciowej grupy zabezpieczeń platformy Azure, upewnij się, że reguły zezwalania obejmują adresy IP maszyn wirtualnych programu SQL Server zaplecza oraz zmiennoprzecinkowe adresy IP modułu równoważenia obciążenia dla odbiornika grupy dostępności i podstawowego adresu IP klastra, jeśli ma to zastosowanie.

Określanie wymaganej jednostki SKU modułu równoważenia obciążenia

Moduł równoważenia obciążenia platformy Azure jest dostępny w dwóch jednostkach SKU: Podstawowa i Standardowa. Standardowy moduł równoważenia obciążenia jest zalecany, ponieważ jednostka SKU w warstwie Podstawowa ma zostać wycofana 30 września 2025 r. Standardowy moduł równoważenia obciążenia jest wymagany dla maszyn wirtualnych w strefie dostępności. Moduł równoważenia obciążenia w warstwie Standardowa wymaga, aby wszystkie adresy IP maszyn wirtualnych używały standardowych adresów IP.

Bieżący szablon firmy Microsoft dla grupy dostępności używa podstawowego modułu równoważenia obciążenia z podstawowymi adresami IP.

Przykłady w tym artykule określają standardowy moduł równoważenia obciążenia. W przykładach skrypt zawiera -sku Standardelement .

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

Aby utworzyć podstawowy moduł równoważenia obciążenia, usuń -sku Standard go z wiersza, który tworzy moduł równoważenia obciążenia. Na przykład:

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

Przykładowy skrypt: tworzenie wewnętrznego modułu równoważenia obciążenia za pomocą programu PowerShell

Uwaga

Jeśli grupa dostępności została utworzona za pomocą szablonu firmy Microsoft, wewnętrzny moduł równoważenia obciążenia został już utworzony.

Poniższy skrypt programu PowerShell tworzy wewnętrzny moduł równoważenia obciążenia, konfiguruje reguły równoważenia obciążenia i ustawia adres IP modułu równoważenia obciążenia. Aby uruchomić skrypt, otwórz program Windows PowerShell ISE, a następnie wklej skrypt w okienku Skrypt. Użyj Connect-AzAccount polecenia , aby zalogować się do programu PowerShell. Jeśli masz wiele subskrypcji platformy Azure, użyj polecenia Select-AzSubscription , aby ustawić subskrypcję.

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

Przykładowy skrypt: dodawanie adresu IP do istniejącego modułu równoważenia obciążenia za pomocą programu PowerShell

Aby użyć więcej niż jednej grupy dostępności, dodaj dodatkowy adres IP do modułu równoważenia obciążenia. Każdy adres IP wymaga własnej reguły równoważenia obciążenia, portu sondy i portu frontu. Dodaj tylko podstawowy adres IP maszyny wirtualnej do puli zaplecza modułu równoważenia obciążenia, ponieważ pomocniczy adres IP maszyny wirtualnej nie obsługuje pływającego adresu IP.

Port frontonu to port używany przez aplikacje do nawiązywania połączenia z wystąpieniem programu SQL Server. Adresy IP dla różnych grup dostępności mogą używać tego samego portu frontonu.

Uwaga

W przypadku grup dostępności programu SQL Server każdy adres IP wymaga określonego portu sondy. Jeśli na przykład jeden adres IP modułu równoważenia obciążenia używa portu sondy 59999, żadne inne adresy IP w tym module równoważenia obciążenia nie mogą używać portu sondy 599999.

Poniższy skrypt dodaje nowy adres IP do istniejącego modułu równoważenia obciążenia. Moduł równoważenia obciążenia używa portu odbiornika dla portu frontonu równoważenia obciążenia. Ten port może być portem, na który nasłuchuje program SQL Server. W przypadku domyślnych wystąpień programu SQL Server port to 1433. Reguła równoważenia obciążenia dla grupy dostępności wymaga pływającego adresu IP (powrotu serwera bezpośredniego), więc port zaplecza jest taki sam jak port frontonu. Zaktualizuj zmienne dla środowiska.

# 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   

Konfigurowanie odbiornika

Odbiornik grupy dostępności to adres IP i nazwa sieci, na których nasłuchuje grupa dostępności programu SQL Server. Aby utworzyć odbiornik grupy dostępności:

  1. Pobierz nazwę zasobu sieciowego klastra:

    a. Użyj protokołu RDP, aby nawiązać połączenie z maszyną wirtualną platformy Azure, która hostuje replikę podstawową.

    b. Otwórz przystawkę Menedżer klastra trybu failover.

    c. Wybierz węzeł Sieci i zanotuj nazwę sieci klastra. Użyj tej nazwy w zmiennej $ClusterNetworkName w skryscie programu PowerShell. Na poniższej ilustracji nazwa sieci klastra to Sieć klastra 1:

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

  2. Dodaj punkt dostępu klienta. Punkt dostępu klienta to nazwa sieci używana przez aplikacje do łączenia się z bazami danych w grupie dostępności.

    a. W Menedżerze klastra trybu failover rozwiń nazwę klastra, a następnie wybierz pozycję Role.

    b. W okienku Role kliknij prawym przyciskiem myszy nazwę grupy dostępności, a następnie wybierz pozycję Dodaj punkt dostępu klienta zasobu>.

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

    c. W polu Nazwa utwórz nazwę dla tego nowego odbiornika. Nazwa nowego odbiornika to nazwa sieci używana przez aplikacje do łączenia się z bazami danych w grupie dostępności programu SQL Server.

    d. Aby zakończyć tworzenie odbiornika, wybierz pozycję Dalej dwa razy, a następnie wybierz pozycję Zakończ. Nie przeprowadź odbiornika ani zasobu w trybie online w tym momencie.

  3. Przełącz rolę klastra dla grupy dostępności w tryb offline. W Menedżerze klastra trybu failover w obszarze Role kliknij prawym przyciskiem myszy rolę, a następnie wybierz pozycję Zatrzymaj rolę.

  4. Skonfiguruj zasób IP dla grupy dostępności:

    a. Wybierz kartę Zasoby , a następnie rozwiń utworzony punkt dostępu klienta. Punkt dostępu klienta jest w trybie offline.

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

    b. Kliknij prawym przyciskiem myszy zasób IP, a następnie wybierz polecenie Właściwości. Zanotuj nazwę adresu IP i użyj jej w zmiennej $IPResourceName w skrypcie programu PowerShell.

    c. W obszarze Adres IP wybierz pozycję Statyczny adres IP. Ustaw adres IP jako ten sam adres, który został użyty podczas ustawiania adresu modułu równoważenia obciążenia w witrynie Azure Portal.

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

  5. Ustaw grupę dostępności programu SQL Server na zależną od punktu dostępu klienta:

    a. W Menedżerze klastra trybu failover wybierz pozycję Role, a następnie wybierz grupę dostępności.

    b. Na karcie Zasoby w obszarze Inne zasoby kliknij prawym przyciskiem myszy zasób grupy dostępności, a następnie wybierz pozycję Właściwości.

    c. Na karcie Zależności dodaj nazwę punktu dostępu klienta (odbiornika).

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

    d. Wybierz przycisk OK.

  6. Ustaw punkt dostępu klienta na zależny od adresu IP:

    a. W Menedżerze klastra trybu failover wybierz pozycję Role, a następnie wybierz grupę dostępności.

    b. Na karcie Zasoby kliknij prawym przyciskiem myszy punkt dostępu klienta w obszarze Nazwa serwera, a następnie wybierz pozycję Właściwości.

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

    c. Wybierz kartę Zależności . Sprawdź, czy adres IP jest zależnością. Jeśli tak nie jest, ustaw zależność od adresu IP. Jeśli na liście znajduje się wiele zasobów, sprawdź, czy adresy IP mają adresy LUB, a nie AND, zależności. Następnie wybierz opcję OK.

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

    Napiwek

    Możesz sprawdzić, czy zależności są poprawnie skonfigurowane. W Menedżerze klastra trybu failover przejdź do pozycji Role, kliknij prawym przyciskiem myszy grupę dostępności, wybierz pozycję Więcej akcji, a następnie wybierz pozycję Pokaż raport zależności. Gdy zależności są poprawnie skonfigurowane, grupa dostępności jest zależna od nazwy sieci, a nazwa sieci jest zależna od adresu IP.

  7. Ustaw parametry klastra w programie PowerShell:

    a. Skopiuj następujący skrypt programu PowerShell do jednego z wystąpień programu SQL Server. Zaktualizuj zmienne dla środowiska.

    • $ClusterNetworkName znajdź nazwę w Menedżerze klastra trybu failover, wybierając pozycję Sieci, kliknij prawym przyciskiem myszy sieć i wybierz polecenie Właściwości. $ClusterNetworkName znajduje się w obszarze Nazwa na karcie Ogólne.

    • $IPResourceName to nazwa nadana zasobowi Adres IP w Menedżerze klastra trybu failover. Znajduje się to w Menedżerze klastra trybu failover, wybierając pozycję Role, wybierz nazwę grupy dostępności lub wystąpienia klastra trybu failover programu SQL Server, wybierz kartę Zasoby w obszarze Nazwa serwera, kliknij prawym przyciskiem myszy zasób adresu IP i wybierz pozycję Właściwości. Poprawna wartość znajduje się w obszarze Nazwa na karcie Ogólne.

    • $ListenerILBIP to adres IP utworzony w module równoważenia obciążenia platformy Azure dla odbiornika grupy dostępności. Znajdź $ListenerILBIP w Menedżerze klastra trybu failover na tej samej stronie właściwości co nazwa zasobu grupy dostępności/odbiornika trybu failover programu SQL Server.

    • $ListenerProbePort to port skonfigurowany w module równoważenia obciążenia platformy Azure dla odbiornika grupy dostępności, na przykład 59999. Dowolny nieużywany port TCP jest prawidłowy.

    $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. Ustaw parametry klastra, uruchamiając skrypt programu PowerShell w jednym z węzłów klastra.

    Uwaga

    Jeśli wystąpienia programu SQL Server znajdują się w oddzielnych regionach, musisz uruchomić skrypt programu PowerShell dwa razy. Po raz pierwszy użyj $ListenerILBIP wartości i $ListenerProbePort z pierwszego regionu. Po raz drugi użyj $ListenerILBIP wartości i $ListenerProbePort z drugiego regionu. Nazwa sieci klastra i nazwa zasobu adresu IP klastra są również inne dla każdego regionu.

  8. Przełącz rolę klastra dla grupy dostępności w tryb online. W Menedżerze klastra trybu failover w obszarze Role kliknij prawym przyciskiem myszy rolę, a następnie wybierz pozycję Uruchom rolę.

W razie potrzeby powtórz powyższe kroki, aby ustawić parametry klastra dla adresu IP klastra klastra trybu failover systemu Windows Server:

  1. Pobierz nazwę adresu IP klastra trybu failover systemu Windows Server. W Menedżerze klastra trybu failover w obszarze Zasoby podstawowe klastra znajdź nazwę serwera.

  2. Kliknij prawym przyciskiem myszy pozycję Adres IP, a następnie wybierz polecenie Właściwości.

  3. Skopiuj nazwę adresu IP z pola Nazwa. Może to być adres IP klastra.

  4. Ustaw parametry klastra w programie PowerShell:

    a. Skopiuj następujący skrypt programu PowerShell do jednego z wystąpień programu SQL Server. Zaktualizuj zmienne dla środowiska.

    • $ClusterCoreIP to adres IP utworzony w module równoważenia obciążenia platformy Azure dla podstawowego zasobu klastra trybu failover systemu Windows Server. Różni się on od adresu IP odbiornika grupy dostępności.

    • $ClusterProbePort to port skonfigurowany w module równoważenia obciążenia platformy Azure dla sondy kondycji klastra trybu failover systemu Windows Server. Różni się on od sondy odbiornika grupy dostępności.

    $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. Ustaw parametry klastra, uruchamiając skrypt programu PowerShell w jednym z węzłów klastra.

Jeśli dowolny zasób SQL jest skonfigurowany do używania portu z zakresu od 49152 do 65536 ( domyślny zakres portów dynamicznych dla protokołu TCP/IP), dodaj wykluczenie dla każdego portu. Takie zasoby mogą obejmować:

  • Aparat bazy danych programu SQL Server
  • Odbiornik zawsze włączonej grupy dostępności
  • Sonda kondycji wystąpienia klastra trybu failover
  • Punkt końcowy dublowania bazy danych
  • Zasób podstawowego adresu IP klastra

Dodanie wykluczenia uniemożliwi dynamiczne przypisanie innych procesów systemowych do tego samego portu. W tym scenariuszu skonfiguruj następujące wykluczenia na wszystkich węzłach klastra:

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

Ważne jest, aby skonfigurować wykluczenie portów, gdy port nie jest używany. W przeciwnym razie polecenie zakończy się niepowodzeniem z komunikatem, na przykład "Proces nie może uzyskać dostępu do pliku, ponieważ jest on używany przez inny proces". Aby potwierdzić poprawną konfigurację wykluczeń, użyj następującego polecenia: netsh int ipv4 show excludedportrange tcp.

Ostrzeżenie

Port sondy kondycji odbiornika grupy dostępności musi być inny niż port dla sondy kondycji podstawowego adresu IP klastra. W tych przykładach port odbiornika to 59999, a port sondy kondycji podstawowego adresu IP klastra to 58888. Oba porty wymagają reguły zapory "zezwalaj na ruch przychodzący".

Ustawianie portu odbiornika w programie SQL Server Management Studio

  1. Uruchom program SQL Server Management Studio i połącz się z repliką podstawową.

  2. Przejdź do pozycji Zawsze włączone odbiorniki grupy>dostępności o wysokiej dostępności.>

  3. Powinna zostać wyświetlona nazwa odbiornika utworzona w Menedżerze klastra trybu failover. Kliknij prawym przyciskiem myszy nazwę odbiornika i wybierz polecenie Właściwości.

  4. W polu Port określ numer portu odbiornika grupy dostępności przy użyciu $EndpointPort użytych wcześniej (wartość domyślna to 1433), a następnie wybierz przycisk OK.

Testowanie połączenia z odbiornikiem

Aby przetestować połączenie:

  1. Użyj protokołu RDP (Remote Desktop Protocol), aby nawiązać połączenie z programem SQL Server, który znajduje się w tej samej sieci wirtualnej, ale nie jest właścicielem repliki. Może to być inny program SQL Server w klastrze.

  2. Użyj narzędzia sqlcmd , aby przetestować połączenie. Na przykład poniższy skrypt ustanawia połączenie sqlcmd z repliką podstawową za pośrednictwem odbiornika z uwierzytelnianiem systemu Windows:

    sqlcmd -S <listenerName> -E
    

    Jeśli odbiornik używa portu innego niż port domyślny (1433), określ port w parametry połączenia. Na przykład następujące polecenie sqlcmd łączy się z odbiornikiem na porcie 1435:

    sqlcmd -S <listenerName>,1435 -E
    

Połączenie SQLCMD automatycznie łączy się z dowolnym wystąpieniem programu SQL Server hostem repliki podstawowej.

Uwaga

Upewnij się, że określony port jest otwarty w zaporze obu serwerów SQL. Oba serwery wymagają reguły ruchu przychodzącego dla używanego portu TCP. Aby uzyskać więcej informacji, zobacz Dodawanie lub edytowanie reguły zapory.

Jeśli korzystasz z pomocniczej maszyny wirtualnej repliki i nie możesz nawiązać połączenia z odbiornikiem, możliwe, że port sondy nie został poprawnie skonfigurowany.

Aby sprawdzić poprawność portu sondy dla grupy dostępności, można użyć następującego skryptu:

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

Wytyczne i ograniczenia

Zwróć uwagę na następujące wskazówki dotyczące odbiornika grupy dostępności na platformie Azure przy użyciu wewnętrznego modułu równoważenia obciążenia:

  • Za pomocą wewnętrznego modułu równoważenia obciążenia uzyskujesz dostęp tylko do odbiornika z tej samej sieci wirtualnej.

  • Jeśli ograniczasz dostęp za pomocą sieciowej grupy zabezpieczeń platformy Azure, upewnij się, że reguły zezwalania obejmują:

    • Adresy IP maszyny wirtualnej programu SQL Server zaplecza
    • Pływające adresy IP modułu równoważenia obciążenia dla odbiornika grupy dostępności
    • Podstawowy adres IP klastra, jeśli ma to zastosowanie.
  • Utwórz punkt końcowy usługi podczas korzystania ze standardowego modułu równoważenia obciążenia z usługą Azure Storage dla monitora w chmurze. Aby uzyskać więcej informacji, zobacz Udzielanie dostępu z sieci wirtualnej.

Polecenia cmdlet programu PowerShell

Użyj następujących poleceń cmdlet programu PowerShell, aby utworzyć wewnętrzny moduł równoważenia obciążenia dla usługi Azure Virtual Machines.

Następne kroki

Aby dowiedzieć się więcej, zobacz: