Konfigurowanie grupy dostępności dla programu SQL Server na maszynie wirtualnej platformy Azure przy użyciu szablonów szybkiego startu platformy Azure

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 artykule opisano sposób używania szablonów szybkiego startu platformy Azure do częściowego automatyzowania wdrażania konfiguracji zawsze włączonej grupy dostępności dla maszyn wirtualnych programu SQL Server w ramach jednej podsieci na platformie Azure. W tym procesie są używane dwa szablony szybkiego startu platformy Azure:

Szablon opis
sql-vm-ag-setup Tworzy klaster trybu failover systemu Windows i dołącza do niego maszyny wirtualne programu SQL Server.
sql-vm-aglistener-setup Tworzy odbiornik grupy dostępności i konfiguruje wewnętrzny moduł równoważenia obciążenia. Tego szablonu można użyć tylko wtedy, gdy klaster trybu failover systemu Windows został utworzony za pomocą szablonu 101-sql-vm-ag-setup .

Inne części konfiguracji grupy dostępności muszą być wykonywane ręcznie, takie jak tworzenie grupy dostępności i tworzenie wewnętrznego modułu równoważenia obciążenia. Ten artykuł zawiera sekwencję zautomatyzowanych i ręcznych kroków.

Chociaż w tym artykule użyto szablonów szybkiego startu platformy Azure do skonfigurowania środowiska grupy dostępności, można to zrobić również za pomocą witryny Azure Portal, programu PowerShell lub interfejsu wiersza polecenia platformy Azure lub ręcznie .

Uwaga

Teraz można podnieść i przenieść rozwiązanie grupy dostępności do programu SQL Server na maszynach wirtualnych platformy Azure przy użyciu usługi Azure Migrate. Aby dowiedzieć się więcej, zobacz Migrowanie grupy dostępności.

Wymagania wstępne

Aby zautomatyzować konfigurację zawsze włączonej grupy dostępności przy użyciu szablonów szybkiego startu, musisz mieć następujące wymagania wstępne:

Uprawnienia

Następujące uprawnienia są niezbędne do skonfigurowania zawsze włączonej grupy dostępności przy użyciu szablonów szybkiego startu platformy Azure:

  • Istniejące konto użytkownika domeny z uprawnieniem Tworzenie obiektu komputera w domenie. Na przykład konto administratora domeny zwykle ma wystarczające uprawnienia (na przykład: account@domain.com). To konto powinno być również częścią grupy administratorów lokalnych na każdej maszynie wirtualnej w celu utworzenia klastra.
  • Konto użytkownika domeny, które kontroluje program SQL Server.

Tworzenie klastra

Po zarejestrowaniu maszyn wirtualnych programu SQL Server z rozszerzeniem agenta IaaS sql możesz dołączyć maszyny wirtualne programu SQL Server do grup SqlVirtualMachineGroups. Ten zasób definiuje metadane klastra trybu failover systemu Windows. Metadane obejmują wersję, wydanie, w pełni kwalifikowaną nazwę domeny, konta usługi Active Directory do zarządzania zarówno klastrem, jak i programem SQL Server, oraz kontem magazynu jako monitorem w chmurze.

Dodanie maszyn wirtualnych programu SQL Server do grupy zasobów SqlVirtualMachineGroups spowoduje uruchomienie usługi klastra trybu failover systemu Windows w celu utworzenia klastra, a następnie dołączenie tych maszyn wirtualnych programu SQL Server do tego klastra. Ten krok jest zautomatyzowany przy użyciu szablonu Szybki start 101-sql-vm-ag-setup . Można go zaimplementować, wykonując następujące czynności:

  1. Przejdź do szablonu szybkiego startu sql-vm-ag-setup . Następnie wybierz pozycję Wdróż na platformie Azure , aby otworzyć szablon szybkiego startu w witrynie Azure Portal.

  2. Wypełnij wymagane pola, aby skonfigurować metadane dla klastra trybu failover systemu Windows. Możesz pozostawić pola opcjonalne puste.

    W poniższej tabeli przedstawiono niezbędne wartości szablonu:

    Pole Wartość
    Subskrypcja Subskrypcja, w której istnieją maszyny wirtualne programu SQL Server.
    Grupa zasobów: Grupa zasobów, w której znajdują się maszyny wirtualne programu SQL Server.
    Nazwa klastra trybu failover Nazwa nowego klastra trybu failover systemu Windows.
    Istniejąca lista maszyn wirtualnych Maszyny wirtualne programu SQL Server, które chcesz uczestniczyć w grupie dostępności i być częścią tego nowego klastra. Rozdziel te wartości przecinkami i spacją (na przykład: SQLVM1, SQLVM2).
    Wersja programu SQL Server Wersja programu SQL Server maszyn wirtualnych programu SQL Server. Wybierz ją z listy rozwijanej. Obecnie obsługiwane są tylko obrazy programów SQL Server 2016 i SQL Server 2017.
    Istniejąca w pełni kwalifikowana nazwa domeny Istniejąca nazwa FQDN domeny, w której znajdują się maszyny wirtualne programu SQL Server.
    Istniejące konto domeny Istniejące konto użytkownika domeny z uprawnieniem Utwórz obiekt komputera w domenie, ponieważ obiekt CNO jest tworzony podczas wdrażania szablonu. Na przykład konto administratora domeny zwykle ma wystarczające uprawnienia (na przykład: account@domain.com). To konto powinno być również częścią grupy administratorów lokalnych na każdej maszynie wirtualnej w celu utworzenia klastra.
    Hasło konta domeny Hasło dla wcześniej wymienionego konta użytkownika domeny.
    Istniejące konto usługi Sql Konto użytkownika domeny, które kontroluje usługę programu SQL Server podczas wdrażania grupy dostępności (na przykład: account@domain.com).
    Hasło usługi SQL Hasło używane przez konto użytkownika domeny, które kontroluje program SQL Server.
    Nazwa monitora chmury Nowe konto usługi Azure Storage, które zostanie utworzone i użyte na potrzeby monitora w chmurze. Możesz zmodyfikować tę nazwę.
    lokalizacja _artifacts To pole jest domyślnie ustawione i nie powinno być modyfikowane.
    token sas lokalizacji _artifacts To pole jest celowo pozostawione puste.
  3. Jeśli zgadzasz się na warunki i postanowienia, zaznacz pole wyboru Wyrażam zgodę na powyższe warunki i postanowienia. Następnie wybierz pozycję Kup , aby zakończyć wdrażanie szablonu szybkiego startu.

  4. Aby monitorować wdrożenie, wybierz wdrożenie z ikony dzwonka Powiadomienia na górnym banerze nawigacji lub przejdź do pozycji Grupa zasobów w witrynie Azure Portal. Wybierz pozycję Wdrożenia w obszarze Ustawienia i wybierz wdrożenie Microsoft.Template.

Uwaga

Poświadczenia podane podczas wdrażania szablonu są przechowywane tylko dla długości wdrożenia. Po zakończeniu wdrażania te hasła zostaną usunięte. Jeśli do klastra zostanie dodanych więcej maszyn wirtualnych programu SQL Server, zostanie wyświetlony monit o ich podanie.

Konfigurowanie kworum

Mimo że monitor dysku jest najbardziej odporną opcją kworum, wymaga dysku udostępnionego platformy Azure, który nakłada pewne ograniczenia dla grupy dostępności. W związku z tym monitor w chmurze jest zalecanym rozwiązaniem kworum dla klastrów hostowania grup dostępności dla programu SQL Server na maszynach wirtualnych platformy Azure.

Jeśli masz parzystą liczbę głosów w klastrze, skonfiguruj rozwiązanie kworum, które najlepiej odpowiada twoim potrzebom biznesowym. Aby uzyskać więcej informacji, zobacz Kworum z maszynami wirtualnymi programu SQL Server.

Weryfikowanie klastra

Aby klaster trybu failover był obsługiwany przez firmę Microsoft, musi przejść walidację klastra. Połączenie do maszyny wirtualnej przy użyciu preferowanej metody, takiej jak Protokół RDP (Remote Desktop Protocol) i sprawdź, czy klaster przechodzi walidację przed kontynuowaniem. Niepowodzenie w tym celu pozostawia klaster w stanie nieobsługiwanym.

Klaster można zweryfikować przy użyciu Menedżera klastra trybu failover (FCM) lub następującego polecenia programu PowerShell:

Test-Cluster –Node ("<node1>","<node2>") –Include "Inventory", "Network", "System Configuration"

Tworzenie grupy dostępności

Ręcznie utwórz grupę dostępności, tak jak zwykle, przy użyciu programu SQL Server Management Studio, programu PowerShell lub języka Transact-SQL.

Ważne

Nie twórz odbiornika w tej chwili, ponieważ szablon szybki start 101-sql-vm-aglistener-setup wykonuje to automatycznie w kroku 4.

Tworzenie modułu równoważenia obciążenia

Uwaga

Wdrożenia grup dostępności w wielu podsieciach nie wymagają modułu równoważenia obciążenia. W środowisku z jedną podsiecią klienci korzystający z programu SQL Server 2019 CU8 lub nowszego w systemie Windows 2016 i nowszych mogą zastąpić tradycyjny odbiornik nazwy sieci wirtualnej (VNN) i odbiornik usługi Azure Load Balancer odbiornikiem rozproszonej nazwy sieci (DNN). Jeśli chcesz użyć nazwy sieci rozproszonej, pomiń wszystkie kroki samouczka, które konfigurują usługę Azure Load Balancer dla grupy dostępności.

Odbiornik zawsze włączonej grupy dostępności wymaga wewnętrznego wystąpienia usługi Azure Load Balancer. Wewnętrzny moduł równoważenia obciążenia udostępnia "pływający" adres IP odbiornika grupy dostępności, który umożliwia szybsze przełączanie w tryb failover i ponowne nawiązywanie połączenia. Jeśli maszyny wirtualne programu SQL Server w grupie dostępności są częścią tego samego zestawu dostępności, możesz użyć podstawowego modułu równoważenia obciążenia. W przeciwnym razie należy użyć modułu równoważenia obciążenia w warstwie Standardowa.

Ważne

Wewnętrzny moduł równoważenia obciążenia powinien znajdować się w tej samej sieci wirtualnej co wystąpienia maszyn wirtualnych programu SQL Server.

Wystarczy utworzyć wewnętrzny moduł równoważenia obciążenia. W kroku 4 szablon szybki start 101-sql-vm-aglistener-setup obsługuje pozostałą część konfiguracji (na przykład pulę zaplecza, sondę kondycji i reguły równoważenia obciążenia).

  1. W witrynie Azure Portal otwórz grupę zasobów zawierającą maszyny wirtualne programu SQL Server.

  2. W grupie zasobów wybierz pozycję Dodaj.

  3. Wyszukaj moduł równoważenia obciążenia. W wynikach wyszukiwania wybierz pozycję Load Balancer, który jest publikowany przez firmę Microsoft.

  4. W okienku Moduł równoważenia obciążenia wybierz pozycję Utwórz.

  5. W oknie dialogowym Tworzenie modułu równoważenia obciążenia skonfiguruj moduł równoważenia obciążenia w następujący sposób:

    Ustawienie Wartość
    Nazwa/nazwisko Wprowadź nazwę tekstową reprezentującą moduł równoważenia obciążenia. Na przykład wprowadź sqlLB.
    Type Wewnętrzne: Większość implementacji używa wewnętrznego modułu równoważenia obciążenia, który umożliwia aplikacjom w tej samej sieci wirtualnej łączenie się z grupą dostępności.
    Zewnętrzne: umożliwia aplikacjom łączenie się z grupą dostępności za pośrednictwem publicznego połączenia internetowego.
    Sieć wirtualna Wybierz sieć wirtualną, w których znajdują się wystąpienia programu SQL Server.
    Podsieć Wybierz podsieć, w których znajdują się wystąpienia programu SQL Server.
    Przypisanie adresu IP Static
    Prywatny adres IP Określ dostępny adres IP z podsieci.
    Subskrypcja Jeśli masz wiele subskrypcji, może zostać wyświetlone to pole. Wybierz subskrypcję, którą chcesz skojarzyć z tym zasobem. Zwykle jest to ta sama subskrypcja co wszystkie zasoby dla grupy dostępności.
    Grupa zasobów: Wybierz grupę zasobów, w których znajdują się wystąpienia programu SQL Server.
    Lokalizacja Wybierz lokalizację platformy Azure, w których znajdują się wystąpienia programu SQL Server.
  6. Wybierz pozycję Utwórz.

Ważne

Zasób publicznego adresu IP dla każdej maszyny wirtualnej z programem SQL Server powinien mieć jednostkę SKU w warstwie Standardowa, która ma być zgodna z modułem równoważenia obciążenia w warstwie Standardowa. Aby określić jednostkę SKU zasobu publicznego adresu IP maszyny wirtualnej, przejdź do pozycji Grupa zasobów, wybierz zasób publicznego adresu IP dla maszyny wirtualnej z programem SQL Server i znajdź wartość w obszarze JEDNOSTKA SKU w okienku Przegląd .

Tworzenie odbiornika

Utwórz odbiornik grupy dostępności i skonfiguruj wewnętrzny moduł równoważenia obciążenia automatycznie przy użyciu szablonu Szybki start 101-sql-vm-aglistener-setup . Szablon aprowizuje zasób Microsoft.SqlVirtualMachine/SqlVirtualMachineGroups/AvailabilityGroupListener. Szablon szybkiego startu 101-sql-vm-aglistener-setup za pośrednictwem rozszerzenia agenta IaaS sql wykonuje następujące czynności:

  • Tworzy nowy zasób adresu IP frontonu (na podstawie wartości adresu IP podanej podczas wdrażania) dla odbiornika.
  • Konfiguruje ustawienia sieciowe klastra i wewnętrznego modułu równoważenia obciążenia.
  • Konfiguruje pulę zaplecza dla wewnętrznego modułu równoważenia obciążenia, sondy kondycji i reguł równoważenia obciążenia.
  • Tworzy odbiornik grupy dostępności z podanym adresem IP i nazwą.

Uwaga

101-sql-vm-aglistener-setup można użyć tylko wtedy, gdy klaster trybu failover systemu Windows został utworzony za pomocą szablonu 101-sql-vm-ag-setup.

Aby skonfigurować wewnętrzny moduł równoważenia obciążenia i utworzyć odbiornik grupy dostępności, wykonaj następujące czynności:

  1. Przejdź do szablonu szybkiego startu sql-vm-aglistener-setup i wybierz pozycję Wdróż na platformie Azure , aby uruchomić szablon szybkiego startu w witrynie Azure Portal.

  2. Wypełnij pola wymagane do skonfigurowania wewnętrznego modułu równoważenia obciążenia i utwórz odbiornik grupy dostępności. Możesz pozostawić pola opcjonalne puste.

    W poniższej tabeli przedstawiono niezbędne wartości szablonu:

    Pole Wartość
    Grupa zasobów: Grupa zasobów, w której istnieją maszyny wirtualne programu SQL Server i grupa dostępności.
    Istniejąca nazwa klastra trybu failover Nazwa klastra, do którego są przyłączone maszyny wirtualne programu SQL Server.
    Istniejąca grupa dostępności SQL Nazwa grupy dostępności, z którą należą maszyny wirtualne programu SQL Server.
    Istniejąca lista maszyn wirtualnych Nazwy maszyn wirtualnych programu SQL Server, które są częścią wcześniej wymienionej grupy dostępności. Rozdziel nazwy przecinkami i spacją (na przykład SQLVM1, SQLVM2).
    Odbiornik Nazwa DNS, którą chcesz przypisać do odbiornika. Domyślnie ten szablon określa nazwę "aglistener", ale można ją zmienić. Nazwa nie powinna przekraczać 15 znaków.
    Port odbiornika Port, którego ma używać odbiornik. Zazwyczaj ten port powinien być domyślnym portem 1433. Jest to numer portu określony przez szablon. Jeśli jednak port domyślny został zmieniony, port odbiornika powinien użyć tej wartości.
    Adres IP odbiornika Adres IP, który ma być używany przez odbiornik. Ten adres zostanie utworzony podczas wdrażania szablonu, dlatego podaj ten, który nie jest jeszcze używany.
    Istniejąca podsieć Nazwa wewnętrznej podsieci maszyn wirtualnych programu SQL Server (na przykład: domyślna). Tę wartość można określić, przechodząc do pozycji Grupa zasobów, wybierając sieć wirtualną, wybierając pozycję Podsieci w okienku Ustawienia i kopiując wartość w obszarze Nazwa.
    Istniejący wewnętrzny moduł równoważenia obciążenia Nazwa wewnętrznego modułu równoważenia obciążenia utworzonego w kroku 3.
    Port sondy Port sondy, który ma być używany przez wewnętrzny moduł równoważenia obciążenia. Szablon domyślnie używa wartości 59999, ale można zmienić tę wartość.
  3. Jeśli zgadzasz się na warunki i postanowienia, zaznacz pole wyboru Wyrażam zgodę na powyższe warunki i postanowienia. Wybierz pozycję Kup , aby zakończyć wdrażanie szablonu szybkiego startu.

  4. Aby monitorować wdrożenie, wybierz wdrożenie z ikony dzwonka Powiadomienia na górnym banerze nawigacji lub przejdź do pozycji Grupa zasobów w witrynie Azure Portal. Wybierz pozycję Wdrożenia w obszarze Ustawienia i wybierz wdrożenie Microsoft.Template.

Uwaga

Jeśli wdrożenie zakończy się niepowodzeniem w połowie, musisz ręcznie usunąć nowo utworzony odbiornik przy użyciu programu PowerShell przed ponownym wdrożeniem szablonu szybki start 101-sql-vm-aglistener-setup .

Usuwanie odbiornika

Jeśli później musisz usunąć odbiornik grupy dostępności skonfigurowany przez szablon, musisz przejść przez rozszerzenie agenta IaaS SQL. Ponieważ odbiornik jest zarejestrowany za pośrednictwem rozszerzenia agenta IaaS SQL, usunięcie go za pośrednictwem programu SQL Server Management Studio jest niewystarczające.

Najlepszą metodą jest usunięcie go za pośrednictwem rozszerzenia agenta IaaS SQL przy użyciu następującego fragmentu kodu w programie PowerShell. Spowoduje to usunięcie metadanych odbiornika grupy dostępności z rozszerzenia agenta IaaS SQL. Ponadto fizycznie usuwa odbiornik z grupy dostępności.

# Remove the availability group listener
# example: Remove-AzResource -ResourceId '/subscriptions/a1a11a11-1a1a-aa11-aa11-1aa1a11aa11a/resourceGroups/SQLAG-RG/providers/Microsoft.SqlVirtualMachine/SqlVirtualMachineGroups/Cluster/availabilitygrouplisteners/aglistener' -Force
Remove-AzResource -ResourceId '/subscriptions/<SubscriptionID>/resourceGroups/<resource-group-name>/providers/Microsoft.SqlVirtualMachine/SqlVirtualMachineGroups/<cluster-name>/availabilitygrouplisteners/<listener-name>' -Force

Typowe błędy

W tej sekcji omówiono niektóre znane problemy i ich możliwe rozwiązanie.

Odbiornik grupy dostępności dla grupy dostępności "<Nazwa> grupy dostępności" już istnieje Wybrana grupa dostępności używana w szablonie Szybkiego startu platformy Azure dla odbiornika grupy dostępności zawiera już odbiornik. Jest fizycznie w grupie dostępności lub jego metadane pozostają w rozszerzeniu agenta IaaS sql. Usuń odbiornik przy użyciu programu PowerShell przed ponownym wdrożeniem szablonu Szybki start 101-sql-vm-aglistener-setup .

Połączenie ion działa tylko z repliki podstawowej To zachowanie jest prawdopodobnie związane z niepowodzeniem wdrożenia szablonu 101-sql-vm-aglistener-setup, które pozostawiło konfigurację wewnętrznego modułu równoważenia obciążenia w stanie niespójnym. Sprawdź, czy pula zaplecza zawiera listę zestawu dostępności, a reguły istnieją dla sondy kondycji i reguł równoważenia obciążenia. Jeśli coś nie istnieje, konfiguracja wewnętrznego modułu równoważenia obciążenia jest niespójnym stanem.

Aby rozwiązać ten problem, usuń odbiornik przy użyciu programu PowerShell, usuń wewnętrzny moduł równoważenia obciążenia za pośrednictwem witryny Azure Portal i uruchom ponownie w kroku 3.

BadRequest — można zaktualizować tylko listę maszyn wirtualnych SQL. Ten błąd może wystąpić podczas wdrażania szablonu 101-sql-vm-aglistener-setup , jeśli odbiornik został usunięty za pośrednictwem programu SQL Server Management Studio (SSMS), ale nie został usunięty z rozszerzenia agenta IaaS SQL. Usunięcie odbiornika za pośrednictwem programu SSMS nie powoduje usunięcia metadanych odbiornika z rozszerzenia agenta IaaS SQL. Odbiornik musi zostać usunięty z dostawcy zasobów za pośrednictwem programu PowerShell.

Konto domeny nie istnieje Ten błąd może mieć dwie przyczyny. Określone konto domeny nie istnieje lub brakuje danych głównej nazwy użytkownika (UPN). Szablon 101-sql-vm-ag-setup oczekuje konta domeny w formularzu nazwy UPN (czyli user@domain.com), ale niektóre konta domeny mogą go nie mieć. Zazwyczaj dzieje się tak, gdy użytkownik lokalny został zmigrowany jako pierwsze konto administratora domeny, gdy serwer został podwyższony do kontrolera domeny lub kiedy użytkownik został utworzony za pomocą programu PowerShell.

Sprawdź, czy konto istnieje. Jeśli tak się stanie, może wystąpić druga sytuacja. Aby rozwiązać ten problem, wykonaj następujące czynności:

  1. Na kontrolerze domeny otwórz okno Użytkownicy i komputery usługi Active Directory z opcji Narzędzia w Menedżer serwera.

  2. Przejdź do konta, wybierając pozycję Użytkownicy w okienku po lewej stronie.

  3. Kliknij prawym przyciskiem myszy konto i wybierz polecenie Właściwości.

  4. Wybierz kartę Konto . Jeśli pole Nazwa logowania użytkownika jest puste, jest to przyczyna błędu.

    Blank user account indicates missing UPN

  5. Wypełnij pole Nazwa logowania użytkownika, aby dopasować nazwę użytkownika, a następnie wybierz odpowiednią domenę z listy rozwijanej.

  6. Wybierz pozycję Zastosuj , aby zapisać zmiany, a następnie zamknij okno dialogowe, wybierając przycisk OK.

Po wprowadzeniu tych zmian spróbuj ponownie wdrożyć szablon Szybkiego startu platformy Azure.

Następne kroki

Aby dowiedzieć się więcej, zobacz: