Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
              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:
Maak verbinding met uw eerste knooppunt met behulp van Bastion en open Serverbeheer.
Selecteer Lokale server en selecteer vervolgens de naam van uw virtuele machine onder Computernaam.
Selecteer Wijzigen... onder Naam van deze computer wijzigen....
Wijzig de naam van de werkgroep in iets zinvols, zoals
AGWORKGROUP:
              
              
            
Selecteer Meer... om het dialoogvenster DNS-achtervoegsel en NetBIOS-computernaam te openen.
Voer de naam in van het DNS-achtervoegsel onder het primaire DNS-achtervoegsel van deze computer, zoals
ag.wgcluster.example.comen selecteer VERVOLGENS OK:
              
              
            
Controleer of de volledige computernaam nu het DNS-achtervoegsel weergeeft en selecteer vervolgens OK om uw wijzigingen op te slaan:
              
              
            
Start de server opnieuw op wanneer u hierom wordt gevraagd.
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:
Maak verbinding met uw virtuele machine met behulp van Bastion.
Gebruik Verkenner om naar
c:\windows\system32\drivers\etcte gaan.Klik met de rechtermuisknop op het hosts-bestand en open het bestand met Kladblok (of een andere teksteditor).
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
              
              
            
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.comAGNode2.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:
Open Failover Clusterbeheer op een van de knooppunten, selecteer het cluster, klik met de rechtermuisknop op de naam: <ClusterName> onder ClusterKernresources en selecteer Eigenschappen.
              
              
            
Selecteer het IP-adres onder IP-adressen en selecteer Bewerken.
Selecteer Statisch gebruiken, geef het IP-adres van het cluster op en selecteer VERVOLGENS OK:
              
              
            
Controleer of uw instellingen er juist uitzien en selecteer vervolgens OK om ze op te slaan:
              
              
            
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:
Open SQL Server Management Studio en maak verbinding met uw eerste knooppunt, zoals
AGNode1.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'; GOMaak 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 ); GOGebruik Verkenner om naar de bestandslocatie te gaan waar uw certificaat zich bevindt, zoals
c:\certs.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:
Maak verbinding met het tweede knooppunt met SQL Server Management Studio, zoals
AGNode2.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'; GOMaak 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 ); GOGebruik Verkenner om naar de bestandslocatie te gaan waar uw certificaat zich bevindt, zoals
c:\certs.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
Verwante inhoud
- Best practices voor HADR-configuratie (SQL Server op Azure-VM's)
 - Windows Server-failovercluster met SQL Server op Azure-VM's
 - AlwaysOn-beschikbaarheidsgroep op SQL Server op Azure-VM's
 - Overzicht van alwayson-beschikbaarheidsgroepen