Delen via


Een werkgroep beschikbaarheidsgroep configureren

Van toepassing op:SQL Server op Azure VM-

In dit artikel worden de stappen uitgelegd die nodig zijn voor het maken van een Active Directory-domeinonafhankelijk cluster met een AlwaysOn-beschikbaarheidsgroep; ook wel werkgroepcluster genoemd. Dit artikel is gericht op de stappen die relevant zijn voor het voorbereiden en configureren van de werkgroep en beschikbaarheidsgroep. Het gaat voorbij aan stappen die worden behandeld in andere artikelen, zoals het maken van het cluster of het uitrollen van de beschikbaarheidsgroep.

Vereiste voorwaarden

Voor het configureren van een werkgroep beschikbaarheidsgroep hebt u de volgende vereisten nodig:

  • Ten minste twee virtuele Windows Server 2016-machines met SQL Server 2016 (of hoger), geïmplementeerd in dezelfde beschikbaarheidsset of verschillende beschikbaarheidszones, met behulp van statische IP-adressen.
  • Een lokaal netwerk met minimaal vier gratis IP-adressen op het subnet.
  • Een account op elke computer in de beheerdersgroep die ook sysadmin-rechten heeft in SQL Server.
  • Open poorten: TCP 1433, TCP 5022, TCP 59999.

Ter referentie worden de volgende parameters in dit artikel gebruikt, maar kunnen indien nodig worden gewijzigd:

Naam Parameter
Node1 AGNode1 (10.0.0.4)
Node2 AGNode2 (10.0.0.5)
Clusternaam AGWGAG (10.0.0.6)
Luisteraar AGListener (10.0.0.7)
DNS-achtervoegsel ag.wgcluster.example.com
Naam van werkgroep AGWorkgroup

Een DNS-achtervoegsel instellen

In deze stap configureert u het DNS-achtervoegsel voor beide servers. Bijvoorbeeld: ag.wgcluster.example.com. Met deze instelling kunt u de naam gebruiken van het object waarmee u verbinding wilt maken als een volledig gekwalificeerde adres binnen uw netwerk, zoals AGNode1.ag.wgcluster.example.com.

Volg deze stappen om het DNS-achtervoegsel te configureren:

  1. Maak verbinding met uw eerste knooppunt met behulp van Bastion en open Serverbeheer.

  2. Selecteer Lokale server en selecteer vervolgens de naam van uw virtuele machine onder Computernaam.

  3. Selecteer Wijzigen... onder Naam van deze computer wijzigen....

  4. Wijzig de naam van de werkgroep in iets zinvols, zoals AGWORKGROUP:

    Schermopname van het dialoogvenster Computernaam/Doman Changes met Workgroup geselecteerd en de naam AGWORKGROUP ingevoerd.

  5. Selecteer Meer... om het dialoogvenster DNS-achtervoegsel en NetBIOS-computernaam te openen.

  6. Voer de naam in van het DNS-achtervoegsel onder het primaire DNS-achtervoegsel van deze computer, zoals ag.wgcluster.example.com en selecteer VERVOLGENS OK:

    Schermopname van het dialoogvenster D N S-achtervoegsel en NetBIOS-computernaam met de waarde ag.wgcluster.example.com ingevoerd.

  7. Controleer of de volledige computernaam nu het DNS-achtervoegsel weergeeft en selecteer vervolgens OK om uw wijzigingen op te slaan:

    Schermopname van het dialoogvenster Computernaam/Doman Changes met de naam van de volledige computer gemarkeerd.

  8. Start de server opnieuw op wanneer u hierom wordt gevraagd.

  9. Herhaal deze stappen op andere knooppunten die moeten worden gebruikt voor de beschikbaarheidsgroep.

Een hostbestand bewerken

Omdat deze configuratie geen Active Directory bevat, is het niet mogelijk om Windows-verbindingen te verifiëren. Wijs daarom een vertrouwensrelatie toe door het hostbestand te bewerken met een teksteditor.

Voer de volgende stappen uit om het hostbestand te bewerken:

  1. Maak verbinding met uw virtuele machine met behulp van Bastion.

  2. Gebruik Verkenner om naar c:\windows\system32\drivers\etc te gaan.

  3. Klik met de rechtermuisknop op het hosts-bestand en open het bestand met Kladblok (of een andere teksteditor).

  4. Voeg aan het einde van het bestand een vermelding toe voor elk knooppunt, de beschikbaarheidsgroep en de listener in de vorm van IP Address, DNS Suffix #comment :

    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
    

    Schermopname van het hosts-bestand in Kladblok. De nieuwe vermeldingen voor het IP-adres, het cluster en de listener van elk nieuw knooppunt worden toegevoegd aan het einde van het bestand.

Machtigingen instellen

Omdat er geen Active Directory is om machtigingen te beheren, moet u handmatig een niet-ingebouwd lokaal beheerdersaccount toestaan om het cluster te maken.

Voer hiervoor de volgende PowerShell-cmdlet uit in een PowerShell-sessie met beheerdersrechten op elk knooppunt:

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

Maak het failovercluster

In deze stap maakt u een failovercluster. Als u niet bekend bent met de stappen, raadpleegt u 'Windows-failovercluster maken' in de zelfstudie failovercluster.

Belangrijke verschillen tussen de zelfstudie over failoverclusters en wat er moet worden gedaan voor een werkgroepcluster:

  • Schakel Opslag en Opslagruimten Direct uit bij het uitvoeren van de clustervalidatie.

  • Wanneer u de knooppunten aan het cluster toevoegt, voegt u de volledig gekwalificeerde naam toe, zoals:

    • AGNode1.ag.wgcluster.example.com
    • AGNode2.ag.wgcluster.example.com
  • Schakel het selectievakje Alle in aanmerking komende opslag toevoegen aan het cluster uit.

Zodra het cluster is gemaakt, wijst u een statisch IP-adres van het cluster toe. Voer hiervoor de volgende stappen uit:

  1. Open Failover Clusterbeheer op een van de knooppunten, selecteer het cluster, klik met de rechtermuisknop op de naam: <ClusterName> onder ClusterKernresources en selecteer Eigenschappen.

    Schermopname van het bewerken van de clustereigenschappen in failoverclusterbeheer.

  2. Selecteer het IP-adres onder IP-adressen en selecteer Bewerken.

  3. Selecteer Statisch gebruiken, geef het IP-adres van het cluster op en selecteer VERVOLGENS OK:

    Schermopname van het bewerken van het statische IP-adres voor het cluster.

  4. Controleer of uw instellingen er juist uitzien en selecteer vervolgens OK om ze op te slaan:

    Schermopname van de clustereigenschappen voor verificatie.

Een cloudwitness maken

In deze stap configureert u een cloud share witness. Zie Een cloudwitness implementeren voor een failovercluster als u niet bekend bent met de stappen.

De functie beschikbaarheidsgroep inschakelen

In deze stap schakelt u de functie van de beschikbaarheidsgroep in. Als u niet bekend bent met de stappen, raadpleegt u de zelfstudie over de beschikbaarheidsgroep.

Sleutels en certificaten maken

In deze stap maakt u certificaten die door een SQL-aanmelding worden gebruikt op het versleutelde eindpunt. Maak een map op elk knooppunt voor het opslaan van de certificaatback-ups, zoals c:\certs.

Opmerking

Als u geen vervaldatum voor het certificaat opgeeft, is het een jaar geldig vanaf de aanmaakdatum. Als het certificaat verloopt, mislukt de verbinding tussen eindpunten.

Voer de volgende stappen uit om het eerste knooppunt te configureren:

  1. Open SQL Server Management Studio en maak verbinding met uw eerste knooppunt, zoals AGNode1.

  2. Open een nieuw queryvenster en voer de volgende Transact-SQL (T-SQL)-instructie uit na het bijwerken naar een complex en beveiligd wachtwoord:

    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. Maak vervolgens het HADR-eindpunt en gebruik het certificaat voor verificatie door deze T-SQL-instructie (Transact-SQL) uit te voeren:

    --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. Gebruik Verkenner om naar de bestandslocatie te gaan waar uw certificaat zich bevindt, zoals c:\certs.

  5. Maak handmatig een kopie van het certificaat, bijvoorbeeld AGNode1Cert.crtvan het eerste knooppunt, en breng het over naar dezelfde locatie op het tweede knooppunt.

Voer de volgende stappen uit om het tweede knooppunt te configureren:

  1. Maak verbinding met het tweede knooppunt met SQL Server Management Studio, zoals AGNode2.

  2. Voer in een venster Nieuwe query de volgende Transact-SQL (T-SQL)-instructie uit na het bijwerken naar een complex en beveiligd wachtwoord:

    USE master;
    CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<complex password>';
    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. Maak vervolgens het HADR-eindpunt en gebruik het certificaat voor verificatie door deze T-SQL-instructie (Transact-SQL) uit te voeren:

    --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. Gebruik Verkenner om naar de bestandslocatie te gaan waar uw certificaat zich bevindt, zoals c:\certs.

  5. Maak handmatig een kopie van het certificaat, bijvoorbeeld AGNode2Cert.crtvan het tweede knooppunt, en breng het over naar dezelfde locatie op het eerste knooppunt.

Als er andere knooppunten in het cluster zijn, herhaalt u deze stappen ook en wijzigt u de respectieve certificaatnamen.

Aanmeldingen maken

Certificaatverificatie wordt gebruikt voor het synchroniseren van gegevens tussen knooppunten. Als u synchronisatie wilt toestaan, maakt u een aanmelding voor het andere knooppunt, maakt u een gebruiker voor de aanmelding, maakt u een certificaat voor de aanmelding om het back-upcertificaat te gebruiken en verleent u vervolgens verbinding op het mirroring-eindpunt.

Voer hiervoor eerst de volgende Transact-SQL (T-SQL)-query uit op het eerste knooppunt, zoals AGNode1:

--create a login for the AGNode2
USE master;
CREATE LOGIN AGNode2_Login WITH PASSWORD = '<complex password>';
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

Voer vervolgens de volgende Transact-SQL (T-SQL)-query uit op het tweede knooppunt, zoals AGNode2:

--create a login for the AGNode1
USE master;
CREATE LOGIN AGNode1_Login WITH PASSWORD = '<complex password>';
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

Als er andere knooppunten in het cluster zijn, herhaalt u deze stappen ook en wijzigt u het respectieve certificaat en de gebruikersnamen.

Een beschikbaarheidsgroep configureren

In deze stap configureert u uw beschikbaarheidsgroep en voegt u er uw databases aan toe. Maak op dit moment geen listener. Als u niet bekend bent met de stappen, raadpleegt u de zelfstudie over de beschikbaarheidsgroep. Als u wilt controleren of alles goed werkt, moet u een failover en failback initiëren.

Opmerking

Als er een fout opgetreden is tijdens het synchronisatieproces, moet u het NT AUTHORITY\SYSTEM account mogelijk tijdelijk sysadmin-rechten verlenen om clusterbronnen te maken op het eerste knooppunt, zoals AGNode1.

Een load balancer configureren

In deze laatste stap configureert u de load balancer met behulp van Azure Portal of PowerShell.

Er kunnen echter enkele beperkingen zijn bij het gebruik van de GUI van het Windows-cluster. Als zodanig moet u PowerShell gebruiken om een clienttoegangspunt of de netwerknaam voor uw listener te maken met het volgende voorbeeldscript:

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

Testpoort configureren

Wanneer u een Azure Load Balancer gebruikt ter ondersteuning van een VN-resource (Virtual Network Name), moet u het cluster configureren om te reageren op de statustestaanvragen. Als de gezondheidstest geen antwoord krijgt van een backendexemplaar, worden er geen nieuwe verbindingen naar dat backendexemplaar verzonden totdat de gezondheidstest opnieuw slaagt.

Als u de parameter voor de testpoort in PowerShell wilt instellen, gebruikt u het volgende script eenmaal per toepasselijke IP-adresresource:

$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.
[int]$ProbePort = <nnnnn> # The probe port that you configured in the health probe of the load balancer for a given Frontend IP Address. Any unused TCP port is valid.

Import-Module FailoverClusters

Get-ClusterResource $IPResourceName | Set-ClusterParameter -Multiple @{"Address"="$IPResourceName";"ProbePort"=$ProbePort;"SubnetMask"="255.255.255.255";"Network"="$ClusterNetworkName";"EnableDhcp"=0}

De wijzigingen die u aanbrengt, worden pas van kracht nadat de IP-adresresource offline is gehaald en weer online zijn gebracht. Voer een failover van de resource uit om deze wijziging van kracht te laten worden.

Nadat u de clustertest hebt ingesteld, gebruikt u het volgende PowerShell-script om de clusterparameters te controleren:

Get-ClusterResource $IPResourceName | Get-ClusterParameter

Poorten uitsluiten van het dynamische poortbereik

Wanneer u een statustestpoort gebruikt tussen 49.152 en 65.536 (het standaard dynamische poortbereik voor TCP/IP), voegt u een uitsluiting toe voor elke statustestpoort op elke VM.

Het configureren van poortuitsluiting voorkomt dat aan andere systeemprocessen dynamisch dezelfde poort op de VIRTUELE machine wordt toegewezen

Gebruik het volgende PowerShell-script om een poortuitsluiting in te stellen:

  • voor elke gezondheidsonderzoekpoort
  • op elke VIRTUELE machine
[int]$ProbePort = <nnnnn> # The probe port that you configured in the health probe of the load balancer. Any unused TCP port is valid.

netsh int ipv4 add excludedportrange tcp startport=$ProbePort numberofports=1 store=persistent

Gebruik de volgende opdracht om te bevestigen dat uitsluitingen correct zijn geconfigureerd:

netsh int ipv4 show excludedportrange tcp