Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Gilt für:SQL Server auf Azure-VMs
In diesem Artikel werden die erforderlichen Schritte zum Erstellen eines domänenunabhängigen Active Directory-Clusters mit einer Always On-Verfügbarkeitsgruppe erläutert. Dies wird auch als Arbeitsgruppencluster bezeichnet. Dieser Artikel konzentriert sich auf die relevanten Schritte für das Vorbereiten und Konfigurieren der Arbeitsgruppe und der Verfügbarkeitsgruppe. Schritte, die in anderen Artikeln behandelt werden, wie z. B. das Erstellen des Clusters oder das Bereitstellen der Verfügbarkeitsgruppe, werden hier übergangen.
Voraussetzungen
Zum Konfigurieren einer Verfügbarkeitsgruppe für eine Arbeitsgruppe benötigen Sie Folgendes:
- Mindestens zwei virtuelle Computer mit Windows Server 2016 (oder höher), auf denen SQL Server 2016 (oder höher) ausgeführt wird und die mit statischen IP-Adressen in derselben Verfügbarkeitsgruppe oder unterschiedlichen Verfügbarkeitszonen bereitgestellt werden.
- Ein lokales Netzwerk mit mindestens vier freien IP-Adressen im Subnetz.
- Ein Konto auf jedem Computer in der Administratorengruppe, das auch über Systemadministratorrechte in SQL Server verfügt.
- Offene Ports: TCP 1433, TCP 5022, TCP 59999.
In diesem Artikel werden die folgenden Parameter verwendet, die jedoch nach Bedarf geändert werden können:
Name | Parameter |
---|---|
Knoten1 | AGNode1 (10.0.0.4) |
Node2 | AGNode2 (10.0.0.5) |
Clustername | AGWGAG (10.0.0.6) |
Zuhörer | AGListener (10.0.0.7) |
DNS-Suffix | ag.wgcluster.example.com |
Name der Arbeitsgruppe | AGWorkgroup |
Festlegen eines DNS-Suffix
In diesem Schritt konfigurieren Sie das DNS-Suffix für beide Server. Beispiel: ag.wgcluster.example.com
. Auf diese Weise können Sie den Namen des Objekts, mit dem Sie eine Verbindung herstellen möchten, als vollqualifizierte Adresse in Ihrem Netzwerk verwenden, z. B. AGNode1.ag.wgcluster.example.com
.
Führen Sie zum Konfigurieren des DNS-Suffix diese Schritte aus:
Öffnen Sie zunächst Bastion auf Ihrem ersten Knoten und anschließend den Server-Manager.
Wählen Sie Lokaler Server und dann unter Computername den Namen des virtuellen Computers aus.
Wählen Sie unter Klicken Sie auf „Ändern“, um den Computer umzubenennen die Option Ändern aus.
Ändern Sie den Namen der Arbeitsgruppe in einen aussagekräftigen Namen, z. B.
AGWORKGROUP
:Wählen Sie Mehr aus, um das Dialogfeld DNS-Suffix und NetBIOS-Computername zu öffnen.
Geben Sie unter Primäres DNS-Suffix des Computers den Namen des DNS-Suffixes ein, z. B.
ag.wgcluster.example.com
, und wählen Sie dann OK aus:Vergewissern Sie sich, dass unter Vollständiger Computername nun das DNS-Suffix angezeigt wird, und wählen Sie dann OK aus, um die Änderungen zu speichern:
Starten Sie den Server neu, wenn Sie dazu aufgefordert werden.
Wiederholen Sie diese Schritte für alle anderen Knoten, die für die Verfügbarkeitsgruppe verwendet werden sollen.
Bearbeiten einer Hostdatei
Da kein Active Directory vorhanden ist, gibt es keine Möglichkeit, Windows-Verbindungen zu authentifizieren. Weisen Sie daher eine Vertrauensstellung zu, indem Sie die Hostdatei mit einem Text-Editor bearbeiten.
Gehen Sie folgendermaßen vor, um die Hostdatei zu bearbeiten:
Bastion in Ihre virtuelle Maschine.
Wechseln Sie im Datei-Explorer zu
c:\windows\system32\drivers\etc
.Klicken Sie mit der rechten Maustaste auf die Datei hosts, und öffnen Sie die Datei mit Windows-Editor (oder einem anderen Text-Editor).
Fügen Sie am Ende der Datei einen Eintrag für jeden Knoten, die Verfügbarkeitsgruppe und den Listener in der Form
IP Address, DNS Suffix #comment
wie folgt hinzu: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
Festlegen von Berechtigungen
Da kein Active Directory zum Verwalten von Berechtigungen vorhanden ist, müssen Sie manuell einem lokalen Administratorkonto genehmigen, den Cluster zu erstellen.
Führen Sie dazu das folgende PowerShell-Cmdlet in einer administrativen PowerShell-Sitzung auf jedem Knoten aus:
new-itemproperty -path HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System -Name LocalAccountTokenFilterPolicy -Value 1
Erstellen des Failoverclusters
In diesem Schritt erstellen Sie den Failovercluster. Wenn Sie mit diesen Schritten nicht vertraut sind, können Sie sich im Tutorial für Failovercluster darüber informieren.
Wichtige Unterschiede zwischen dem Tutorial und den Aktionen, die für einen Arbeitsgruppencluster durchgeführt werden sollten:
- Deaktivieren Sie beim Ausführen der Clusterüberprüfung Speicher und Direkte Speicherplätze.
- Fügen Sie beim Hinzufügen der Knoten zum Cluster den vollqualifizierten Namen hinzu, z. B.:
AGNode1.ag.wgcluster.example.com
AGNode2.ag.wgcluster.example.com
- Deaktivieren Sie Der gesamte geeignete Speicher soll dem Cluster hinzugefügt werden.
Weisen Sie nach dem Erstellen des Clusters eine statische Cluster-IP-Adresse zu. Gehen Sie dazu folgendermaßen vor:
Öffnen Sie in einem der Knoten Failovercluster-Manager, wählen Sie den Cluster aus, und klicken Sie unter < mit der rechten Maustaste auf den -Namen: >ClusterNam. Wählen Sie anschließend Eigenschaften aus.
Wählen Sie unter IP-Adressen die IP-Adresse aus, und wählen Sie dann Bearbeiten aus.
Wählen Sie Statische verwenden aus, geben Sie die IP-Adresse des Clusters an, und wählen Sie dann OK aus:
Vergewissern Sie sich, dass Ihre Einstellungen korrekt aussehen, und wählen Sie dann OK aus, um sie zu speichern:
Erstellen eines Cloudzeugen
In diesem Schritt konfigurieren Sie einen Cloudfreigabezeugen. Wenn Sie mit den Schritten nicht vertraut sind, finden Sie weitere Informationen unter Bereitstellen eines Cloudzeugen für einen Failovercluster.
Aktivieren des Verfügbarkeitsgruppenfeatures
In diesem Schritt aktivieren Sie das Feature für Verfügbarkeitsgruppen. Wenn Sie mit den Schritten nicht vertraut sind, finden Sie weitere Informationen im Tutorial zu Verfügbarkeitsgruppen.
Erstellen von Schlüsseln und Zertifikaten
In diesem Schritt erstellen Sie Zertifikate, die in einer SQL-Anmeldung beim verschlüsselten Endpunkt verwendet werden. Erstellen Sie auf jedem Knoten einen Ordner, in dem die Zertifikatsicherungen gespeichert werden sollen, z. B. c:\certs
.
Hinweis
Wenn Sie kein Ablaufdatum für das Zertifikat angeben, ist die Gültigkeit für ein Jahr ab dem Erstellungsdatum. Wenn das Zertifikat abläuft, schlägt die Verbindung zwischen Endpunkten fehl.
Führen Sie zum Konfigurieren des ersten Knotens folgende Schritte durch:
Öffnen Sie SQL Server Management Studio, und stellen Sie eine Verbindung mit Ihrem ersten Knoten her, z. B.
AGNode1
.Öffnen Sie ein neues Abfragefenster, und führen Sie die folgende T-SQL-Anweisung (Transact-SQL) aus, nachdem Sie das Kennwort komplexer und sicherer gestaltet haben:
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
Erstellen Sie als Nächstes den HADR-Endpunkt, und verwenden Sie das Zertifikat für die Authentifizierung, indem Sie diese T-SQL-Anweisung (Transact-SQL) ausführen:
--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
Verwenden Sie den Datei-Explorer, um zu dem Dateispeicherort zu wechseln, an dem sich das Zertifikat befindet, z. B.
c:\certs
.Erstellen Sie manuell eine Kopie des Zertifikats (z. B.
AGNode1Cert.crt
) für den ersten Knoten, und übertragen Sie es an den gleichen Speicherort auf dem zweiten Knoten.
Führen Sie zum Konfigurieren des zweiten Knotens folgende Schritte durch:
Stellen Sie mit SQL Server Management Studio eine Verbindung mit dem zweiten Knoten her, z. B.
AGNode2
.Führen Sie in einem neuen Abfragefenster die folgende T-SQL-Anweisung (Transact-SQL) aus, nachdem Sie das Kennwort komplexer und sicherer gestaltet haben:
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
Erstellen Sie als Nächstes den HADR-Endpunkt, und verwenden Sie das Zertifikat für die Authentifizierung, indem Sie diese T-SQL-Anweisung (Transact-SQL) ausführen:
--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
Verwenden Sie den Datei-Explorer, um zu dem Dateispeicherort zu wechseln, an dem sich das Zertifikat befindet, z. B.
c:\certs
.Erstellen Sie manuell eine Kopie des Zertifikats (z. B.
AGNode2Cert.crt
) für den zweiten Knoten, und übertragen Sie es an den gleichen Speicherort auf dem ersten Knoten.
Wenn weitere Knoten im Cluster vorhanden sind, wiederholen Sie diese Schritte auch dort, und ändern Sie dabei die jeweiligen Zertifikatnamen.
Erstellen von Anmeldungen
Die Zertifikatauthentifizierung wird verwendet, um Daten knotenübergreifend zu synchronisieren. Um dies zuzulassen, erstellen Sie einen Anmeldenamen für den anderen Knoten, einen Benutzer für die Anmeldung und ein Zertifikat zur Verwendung des gesicherten Zertifikats für die Anmeldung. Erteilen Sie dann die Berechtigung zur Verbindung auf dem Spiegelungsendpunkt.
Führen Sie dazu zuerst die folgende T-SQL-Abfrage (Transact-SQL) auf dem ersten Knoten aus, z. B. 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
Führen Sie als Nächstes die folgende T-SQL-Abfrage (Transact-SQL) auf dem zweiten Knoten aus, z. B. 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
Wenn weitere Knoten im Cluster vorhanden sind, wiederholen Sie diese Schritte auch dort, und ändern Sie dabei die jeweiligen Zertifikat- und Benutzernamen.
Konfigurieren einer Verfügbarkeitsgruppe
In diesem Schritt konfigurieren Sie die Verfügbarkeitsgruppe und fügen ihr Ihre Datenbanken hinzu. Erstellen Sie zu diesem Zeitpunkt keinen Listener. Wenn Sie mit den Schritten nicht vertraut sind, finden Sie weitere Informationen im Tutorial zu Verfügbarkeitsgruppen. Initiieren Sie unbedingt ein Failover und ein Failback, um sicherzustellen, dass alles ordnungsgemäß funktioniert.
Hinweis
Wenn während des Synchronisierungsvorgangs ein Fehler auftritt, müssen Sie möglicherweise NT AUTHORITY\SYSTEM
vorübergehend Systemadmininistratorberechtigungen erteilen, um Clusterressourcen auf dem ersten Knoten zu erstellen, z. B. AGNode1
.
Konfigurieren eines Lastenausgleichs
Konfigurieren Sie in diesem letzten Schritt das Lastenausgleichsmodul entweder über das Azure-Portal oder PowerShell.
Bei der Verwendung der Windows-Cluster-GUI kann es jedoch einige Einschränkungen geben. Daher sollten Sie PowerShell verwenden, um einen Clientzugriffspunkt oder den Netzwerknamen für Ihren Listener zu erstellen. Nutzen Sie dazu folgendes Beispielskript:
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
Konfigurieren des Probeports
Wenn Sie einen Azure Load Balancer verwenden, um eine VNN-Ressource (Virtual Network Name) zu unterstützen, müssen Sie den Cluster so konfigurieren, dass er auf die Integritätstestanforderungen antwortet. Wenn die Integritätssonde keine Antwort von einer Back-End-Instanz erhalten kann, werden keine neuen Verbindungen an diese Back-End-Instanz gesendet, bis die Integritätssonde erneut erfolgreich ist.
Verwenden Sie zum Festlegen des Probeportparameters in PowerShell das folgende Skript einmal pro anwendbarer IP-Adressressource:
$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}
Die änderungen, die Sie vornehmen, werden erst wirksam, wenn die IP-Adressressource offline geschaltet und wieder online gestellt wird. Führen Sie ein Failover der Ressource aus, damit diese Änderung wirksam wird.
Nachdem Sie den Clustertest festgelegt haben, verwenden Sie das folgende PowerShell-Skript, um Clusterparameter zu überprüfen:
Get-ClusterResource $IPResourceName | Get-ClusterParameter
Schließen Sie Ports aus dem dynamischen Portbereich aus.
Wenn Sie einen Integritätssondenport zwischen 49.152 und 65.536 (den standardmäßigen dynamischen Portbereich für TCP/IP) verwenden, fügen Sie einen Ausschluss für jeden Integritätstestport auf jedem virtuellen Computer hinzu.
Das Konfigurieren des Portausschlusses verhindert, dass anderen Systemprozessen derselbe Port auf dem virtuellen Computer dynamisch zugewiesen wird.
Verwenden Sie das folgende PowerShell-Skript, um einen Portausschluss festzulegen:
- für jeden Gesundheitssondenport
- auf jedem virtuellen Computer
[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
Um zu bestätigen, dass Ausschlüsse ordnungsgemäß konfiguriert wurden, verwenden Sie den folgenden Befehl:
netsh int ipv4 show excludedportrange tcp
Verwandte Inhalte
Nachdem die Verfügbarkeitsgruppe bereitgestellt wurde, sollten Sie die HADR-Einstellungen für SQL Server auf Azure-VMs optimieren.
Weitere Informationen finden Sie unter: