Udostępnij za pośrednictwem


Konfigurowanie grupy roboczej grupy dostępności

Dotyczy: program SQL Server na maszynie wirtualnej platformy Azure

W tym artykule opisano kroki niezbędne do utworzenia klastra niezależnego od domeny usługi Active Directory z zawsze włączoną grupą dostępności; jest to również nazywane klastrem grupy roboczej. Ten artykuł koncentruje się na krokach, które mają zastosowanie do przygotowywania i konfigurowania grupy roboczej i grupy dostępności, oraz błyszczania kroków opisanych w innych artykułach, takich jak sposób tworzenia klastra lub wdrażania grupy dostępności.

Wymagania wstępne

Aby skonfigurować grupę dostępności grupy roboczej, potrzebne są następujące elementy:

  • Co najmniej dwie maszyny wirtualne z systemem Windows Server 2016 (lub nowszym) z programem SQL Server 2016 (lub nowszym) wdrożone w tym samym zestawie dostępności lub w różnych strefach dostępności przy użyciu statycznych adresów IP.
  • Sieć lokalna z co najmniej 4 bezpłatnymi adresami IP w podsieci.
  • Konto na każdej maszynie w grupie administratorów, które ma również prawa administratora systemu w programie SQL Server.
  • Otwarte porty: TCP 1433, TCP 5022, TCP 59999.

Do celów referencyjnych w tym artykule są używane następujące parametry, ale można je modyfikować w razie potrzeby:

Nazwa/nazwisko Parametr
Węzeł1 AGNode1 (10.0.0.4)
Węzeł 2 AGNode2 (10.0.0.5)
Nazwa klastra AGWGAG (10.0.0.6)
Odbiornik AgListener (10.0.0.7)
Sufiks DNS ag.wgcluster.example.com
Nazwa grupy roboczej Grupa robocza grupy dostępności

Ustawianie sufiksu DNS

W tym kroku skonfiguruj sufiks DNS dla obu serwerów. Na przykład ag.wgcluster.example.com. Dzięki temu można użyć nazwy obiektu, z którym chcesz nawiązać połączenie jako w pełni kwalifikowany adres w sieci, na przykład AGNode1.ag.wgcluster.example.com.

Aby skonfigurować sufiks DNS, wykonaj następujące kroki:

  1. Protokół RDP w pierwszym węźle i otwórz Menedżer serwera.

  2. Wybierz pozycję Serwer lokalny, a następnie wybierz nazwę maszyny wirtualnej w obszarze Nazwa komputera.

  3. Wybierz pozycję Zmień... w obszarze Aby zmienić nazwę tego komputera....

  4. Zmień nazwę nazwy grupy roboczej, aby miała znaczenie, na przykład AGWORKGROUP:

    Zmienianie nazwy grupy roboczej

  5. Wybierz pozycję Więcej... aby otworzyć okno dialogowe sufiks DNS i Nazwa komputera NetBIOS.

  6. Wpisz nazwę sufiksu DNS w obszarze Podstawowy sufiks DNS tego komputera, na przykład ag.wgcluster.example.com , a następnie wybierz przycisk OK:

    Zrzut ekranu przedstawiający okno dialogowe D N Sufiks i Nazwa komputera NetBIOS, w którym można wprowadzić wartość.

  7. Upewnij się, że w polu Pełna nazwa komputera jest teraz wyświetlany sufiks DNS, a następnie wybierz przycisk OK , aby zapisać zmiany:

    Zrzut ekranu przedstawiający miejsce wyświetlenia pełnej nazwy komputera.

  8. Uruchom ponownie serwer po wyświetleniu monitu o to.

  9. Powtórz te kroki we wszystkich innych węzłach, które mają być używane dla grupy dostępności.

Edytowanie pliku hosta

Ponieważ nie ma usługi Active Directory, nie ma możliwości uwierzytelniania połączeń systemu Windows. W związku z tym przypisz zaufanie, edytując plik hosta za pomocą edytora tekstów.

Aby edytować plik hosta, wykonaj następujące kroki:

  1. Połączenie RDP z maszyną wirtualną.

  2. Użyj Eksplorator plików, aby przejść do witryny c:\windows\system32\drivers\etc.

  3. Kliknij prawym przyciskiem myszy plik hosts i otwórz plik za pomocą Notatnika (lub dowolnego innego edytora tekstów).

  4. Na końcu pliku dodaj wpis dla każdego węzła, grupy dostępności i odbiornika w postaci IP Address, DNS Suffix #comment takich jak:

    10.0.0.4 AGNode1.ag.wgcluster.example.com #Availability group node
    10.0.0.5 AGNode2.ag.wgcluster.example.com #Availability group node
    10.0.0.6 AGWGAG.ag.wgcluster.example.com #Cluster IP
    10.0.0.7 AGListener.ag.wgcluster.example.com #Listener IP
    

    Dodawanie wpisów dla adresu IP, klastra i odbiornika do pliku hosta

Ustawianie uprawnień

Ponieważ nie ma usługi Active Directory do zarządzania uprawnieniami, musisz ręcznie zezwolić na utworzenie klastra bez wbudowanego konta administratora lokalnego.

W tym celu uruchom następujące polecenie cmdlet programu PowerShell w administracyjnej sesji programu PowerShell w każdym węźle:


new-itemproperty -path HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System -Name LocalAccountTokenFilterPolicy -Value 1

Tworzenie klastra trybu failover

W tym kroku utworzysz klaster trybu failover. Jeśli nie znasz tych kroków, możesz wykonać czynności opisane w samouczku dotyczącym klastra trybu failover.

Istotne różnice między samouczkiem i czynnościami, które należy wykonać dla klastra grupy roboczej:

  • Usuń zaznaczenie pola Storage i Miejsca do magazynowania Direct podczas uruchamiania walidacji klastra.
  • Podczas dodawania węzłów do klastra dodaj w pełni kwalifikowaną nazwę, na przykład:
    • AGNode1.ag.wgcluster.example.com
    • AGNode2.ag.wgcluster.example.com
  • Usuń zaznaczenie pola wyboru Dodaj cały uprawniony magazyn do klastra.

Po utworzeniu klastra przypisz statyczny adres IP klastra. W tym celu wykonaj następujące kroki:

  1. W jednym z węzłów otwórz Menedżera klastra trybu failover, wybierz klaster, kliknij prawym przyciskiem myszy nazwę: <ClusterNam> w obszarze Zasoby podstawowe klastra, a następnie wybierz pozycję Właściwości.

    Uruchamianie właściwości dla nazwy klastra

  2. Wybierz adres IP w obszarze Adresy IP i wybierz pozycję Edytuj.

  3. Wybierz pozycję Użyj statycznego, podaj adres IP klastra, a następnie wybierz przycisk OK:

    Podaj statyczny adres IP klastra

  4. Sprawdź, czy ustawienia wyglądają poprawnie, a następnie wybierz przycisk OK , aby je zapisać:

    Weryfikowanie właściwości klastra

Tworzenie monitora w chmurze

W tym kroku skonfiguruj monitor udziału w chmurze. Jeśli nie znasz kroków, zobacz Wdrażanie monitora w chmurze dla klastra trybu failover.

Włączanie funkcji grupy dostępności

W tym kroku włącz funkcję grupy dostępności. Jeśli nie znasz kroków, zapoznaj się z samouczkiem dotyczącym grupy dostępności.

Tworzenie kluczy i certyfikatów

W tym kroku utwórz certyfikaty używane przez logowanie SQL w zaszyfrowanym punkcie końcowym. Utwórz folder w każdym węźle, aby przechowywać kopie zapasowe certyfikatów, takie jak c:\certs.

Uwaga

Jeśli nie określisz daty wygaśnięcia certyfikatu, jego ważność będzie 1 rok od daty utworzenia. Jeśli certyfikat wygaśnie, połączenie między punktami końcowymi zakończy się niepowodzeniem.

Aby skonfigurować pierwszy węzeł, wykonaj następujące kroki:

  1. Otwórz program SQL Server Management Studio i połącz się z pierwszym węzłem, takim jak AGNode1.

  2. Otwórz okno Nowe zapytanie i uruchom następującą instrukcję Języka Transact-SQL (T-SQL) po zaktualizowaniu do złożonego i bezpiecznego hasła:

    USE master;  
    CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'PassWOrd123!';  
    GO
    
    --create a cert from the master key
    USE master;  
    CREATE CERTIFICATE AGNode1Cert   
       WITH SUBJECT = 'AGNode1 Certificate';  
    GO  
    
    --Backup the cert and transfer it to AGNode2
    BACKUP CERTIFICATE AGNode1Cert TO FILE = 'C:\certs\AGNode1Cert.crt';  
    GO  
    
  3. Następnie utwórz punkt końcowy usługi HADR i użyj certyfikatu do uwierzytelniania, uruchamiając następującą instrukcję Języka Transact-SQL (T-SQL):

    --CREATE or ALTER the mirroring endpoint
    CREATE ENDPOINT hadr_endpoint  
       STATE = STARTED  
       AS TCP (  
          LISTENER_PORT=5022  
          , LISTENER_IP = ALL  
       )   
       FOR DATABASE_MIRRORING (   
          AUTHENTICATION = CERTIFICATE AGNode1Cert  
          , ENCRYPTION = REQUIRED ALGORITHM AES  
          , ROLE = ALL  
       );  
    GO  
    
  4. Użyj Eksplorator plików, aby przejść do lokalizacji pliku, w której znajduje się certyfikat, na przykład c:\certs.

  5. Ręcznie utwórz kopię certyfikatu, na przykład AGNode1Cert.crt, z pierwszego węzła i przenieś go do tej samej lokalizacji w drugim węźle.

Aby skonfigurować drugi węzeł, wykonaj następujące kroki:

  1. Połącz się z drugim węzłem za pomocą programu SQL Server Management Studio, takiego jak AGNode2.

  2. W oknie Nowe zapytanie uruchom następującą instrukcję Języka Transact-SQL (T-SQL) po zaktualizowaniu do złożonego i bezpiecznego hasła:

    USE master;  
    CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'PassWOrd123!';  
    GO 
    
    --create a cert from the master key
    USE master;  
    CREATE CERTIFICATE AGNode2Cert   
       WITH SUBJECT = 'AGNode2 Certificate';  
    GO  
    --Backup the cert and transfer it to AGNode1
    BACKUP CERTIFICATE AGNode2Cert TO FILE = 'C:\certs\AGNode2Cert.crt';  
    GO
    
  3. Następnie utwórz punkt końcowy usługi HADR i użyj certyfikatu do uwierzytelniania, uruchamiając następującą instrukcję Języka Transact-SQL (T-SQL):

    --CREATE or ALTER the mirroring endpoint
    CREATE ENDPOINT hadr_endpoint  
       STATE = STARTED  
       AS TCP (  
          LISTENER_PORT=5022  
          , LISTENER_IP = ALL  
       )   
       FOR DATABASE_MIRRORING (   
          AUTHENTICATION = CERTIFICATE AGNode2Cert  
          , ENCRYPTION = REQUIRED ALGORITHM AES  
          , ROLE = ALL  
       );  
    GO  
    
  4. Użyj Eksplorator plików, aby przejść do lokalizacji pliku, w której znajduje się certyfikat, na przykład c:\certs.

  5. Ręcznie utwórz kopię certyfikatu, na przykład AGNode2Cert.crt, z drugiego węzła i przenieś go do tej samej lokalizacji w pierwszym węźle.

Jeśli w klastrze znajdują się inne węzły, powtórz te kroki, modyfikując odpowiednie nazwy certyfikatów.

Tworzenie identyfikatorów logowania

Uwierzytelnianie certyfikatu służy do synchronizowania danych między węzłami. Aby to umożliwić, utwórz identyfikator logowania dla innego węzła, utwórz użytkownika na potrzeby logowania, utwórz certyfikat logowania, aby użyć certyfikatu kopii zapasowej, a następnie przyznaj połączenie w punkcie końcowym dublowania.

W tym celu najpierw uruchom następujące zapytanie języka Transact-SQL (T-SQL) w pierwszym węźle, takie jak AGNode1:

--create a login for the AGNode2
USE master;  
CREATE LOGIN AGNode2_Login WITH PASSWORD = 'PassWord123!';  
GO  

--create a user from the login
CREATE USER AGNode2_User FOR LOGIN AGNode2_Login;  
GO  

--create a certificate that the login uses for authentication
CREATE CERTIFICATE AGNode2Cert  
   AUTHORIZATION AGNode2_User  
   FROM FILE = 'C:\certs\AGNode2Cert.crt'  
GO 

--grant connect for login
GRANT CONNECT ON ENDPOINT::hadr_endpoint TO [AGNode2_login];  
GO

Następnie uruchom następujące zapytanie języka Transact-SQL (T-SQL) w drugim węźle, takie jak AGNode2:

--create a login for the AGNode1
USE master;  
CREATE LOGIN AGNode1_Login WITH PASSWORD = 'PassWord123!';  
GO  

--create a user from the login
CREATE USER AGNode1_User FOR LOGIN AGNode1_Login;  
GO  

--create a certificate that the login uses for authentication
CREATE CERTIFICATE AGNode1Cert  
   AUTHORIZATION AGNode1_User  
   FROM FILE = 'C:\certs\AGNode1Cert.crt'  
GO 

--grant connect for login
GRANT CONNECT ON ENDPOINT::hadr_endpoint TO [AGNode1_login];  
GO

Jeśli w klastrze znajdują się inne węzły, powtórz te kroki, modyfikując odpowiednie nazwy certyfikatów i użytkowników.

Konfigurowanie grupy dostępności

W tym kroku skonfiguruj grupę dostępności i dodaj do niej bazy danych. Nie twórz odbiornika w tej chwili. Jeśli nie znasz kroków, zapoznaj się z samouczkiem dotyczącym grupy dostępności. Pamiętaj, aby zainicjować tryb failover i powrót po awarii, aby sprawdzić, czy wszystko działa tak, jak powinno być.

Uwaga

Jeśli podczas procesu synchronizacji wystąpi błąd, może być konieczne przyznanie NT AUTHORITY\SYSTEM uprawnień administratora systemu w celu utworzenia zasobów klastra w pierwszym węźle, na przykład AGNode1 tymczasowo.

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

W tym ostatnim kroku skonfiguruj moduł równoważenia obciążenia przy użyciu witryny Azure Portal lub programu PowerShell.

Jednak w przypadku korzystania z graficznego interfejsu użytkownika klastra systemu Windows mogą wystąpić pewne ograniczenia . W związku z tym należy użyć programu PowerShell do utworzenia punktu dostępu klienta lub nazwy sieciowej odbiornika przy użyciu następującego przykładowego skryptu:

Add-ClusterResource -Name "IPAddress1" -ResourceType "IP Address" -Group "WGAG" 
Get-ClusterResource -Name IPAddress1 | Set-ClusterParameter -Multiple @{"Network" = "Cluster Network 1";"Address" = "10.0.0.4";"SubnetMask" = "255.0.0.0";"EnableDHCP" = 0} 
Add-ClusterResource -Name "IPAddress2" -ResourceType "IP Address" -Group "WGAG" 
Get-ClusterResource -Name IPAddress2 | Set-ClusterParameter -Multiple @{"Network" = "Cluster Network 2";"Address" = "10.0.0.5";"SubnetMask" = "255.0.0.0";"EnableDHCP" = 0} 
Add-ClusterResource -Name "TestName" -Group "WGAG" -ResourceType "Network Name" 
Get-ClusterResource -Name "TestName" | Set-ClusterParameter -Multiple @{"DnsName" = "TestName";"RegisterAllProvidersIP" = 1} 
Set-ClusterResourceDependency -Resource TestName -Dependency "[IPAddress1] or [IPAddress2]" 
Start-ClusterResource -Name TestName -Verbose 

Następne kroki

Po wdrożeniu grupy dostępności rozważ optymalizację ustawień usługi HADR dla programu SQL Server na maszynach wirtualnych platformy Azure.

Aby dowiedzieć się więcej, zobacz: