Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Konfigurieren Sie schreibgeschütztes Routing in AlwaysOn-Verfügbarkeitsgruppen in SQL Server auf AWS
Subhani Shaik, Amazon Web Services
Zusammenfassung
Dieses Muster beschreibt, wie das sekundäre Standby-Replikat in SQL Server Always On verwendet wird, indem die schreibgeschützten Workloads vom primären Replikat auf das sekundäre Replikat verlagert werden.
Die Datenbankspiegelung verfügt über eine Zuordnung. one-to-one Sie können die sekundäre Datenbank nicht direkt lesen, daher müssen Sie Snapshots erstellen. Die Always-On-Verfügbarkeitsgruppenfunktion wurde in Microsoft SQL Server 2012 eingeführt. In späteren Versionen wurden wichtige Funktionen eingeführt, darunter schreibgeschütztes Routing. In Always-On-Verfügbarkeitsgruppen können Sie die Daten direkt aus dem sekundären Replikat lesen, indem Sie den Replikatmodus auf Schreibgeschützt ändern.
Die Always-On-Lösung für Verfügbarkeitsgruppen unterstützt Hochverfügbarkeit (HA), Notfallwiederherstellung (DR) und ist eine Alternative zur Datenbankspiegelung. Always-On-Verfügbarkeitsgruppen arbeiten auf Datenbankebene und maximieren die Verfügbarkeit einer Reihe von Benutzerdatenbanken.
SQL Server verwendet den Nur-Lese-Routing-Mechanismus, um die eingehenden schreibgeschützten Verbindungen an das sekundäre Lesereplikat umzuleiten. Um dies zu erreichen, sollten Sie der Verbindungszeichenfolge die folgenden Parameter und Werte hinzufügen:
ApplicationIntent=ReadOnlyInitial Catalog=<database name>
Voraussetzungen und Einschränkungen
Voraussetzungen
Eine aktive AWS-Konto mit einer Virtual Private Cloud (VPC), zwei Availability Zones, privaten Subnetzen und einer Sicherheitsgruppe
Zwei Amazon Elastic Compute Cloud (Amazon EC2) -Maschinen mit SQL Server 2019 Enterprise Edition Amazon Machine Image
mit Windows Server Failover Clustering (WSFC), die auf Instanzebene konfiguriert sind, und einer Always-On-Verfügbarkeitsgruppe, die auf SQL Server-Ebene zwischen dem primären Knoten ( WSFCNODE1) und dem sekundären Knoten (WSFCNODE2) konfiguriert ist, die Teil des Verzeichnisses mit dem Namen sind AWS Directory Service for Microsoft Active Directorytagechtalk.comEin oder mehrere Knoten, die für die Annahme
read-onlyim sekundären Replikat konfiguriert sindEin Listener, der nach der
SQLAG1Always-On-Verfügbarkeitsgruppe benannt istSQL Server Database Engine wird mit demselben Dienstkonto auf zwei Knoten ausgeführt
SQL Server Management Studio (SSMS)
Eine Testdatenbank mit dem Namen
test
Produktversionen
SQL Server 2014 und höher
Architektur
Zieltechnologie-Stack
Amazon EC2
AWS Managed Microsoft AD
Amazon FSx
Zielarchitektur
Das folgende Diagramm zeigt, wie der Always On Availability Group (AG) -Listener Abfragen, die den ApplicationIntent Parameter in der Verbindung enthalten, an den entsprechenden sekundären Knoten umleitet.

Eine Anfrage wird an den Always-On-Verfügbarkeitsgruppen-Listener gesendet.
Wenn die Verbindungszeichenfolge den
ApplicationIntentParameter nicht enthält, wird die Anfrage an die primäre Instanz gesendet.Wenn die Verbindungszeichenfolge Folgendes enthält
ApplicationIntent=ReadOnly, wird die Anforderung an die sekundäre Instanz mit schreibgeschützter Routing-Konfiguration gesendet, bei der es sich um WSFC mit einer Always-On-Verfügbarkeitsgruppe handelt.
Tools
AWS-Services
AWS Directory Service for Microsoft Active Directoryermöglicht Ihren verzeichnissensitiven Workloads und AWS Ressourcen die Verwendung von Microsoft Active Directory in der. AWS Cloud
Amazon Elastic Compute Cloud (Amazon EC2) bietet sichere und skalierbare Rechenkapazität in der AWS Cloud. Sie können so viele virtuelle Server wie nötig nutzen und sie schnell nach oben oder unten skalieren.
Amazon FSx bietet Dateisysteme, die branchenübliche Konnektivitätsprotokolle unterstützen und eine hohe Verfügbarkeit und Replikation in allen Bereichen AWS-Regionen bieten.
Andere Dienste
SQL Server Management Studio (SSMS) ist ein Tool zum Verbinden, Verwalten und Verwalten der SQL Server-Instanzen.
sqlcmd ist ein Befehlszeilenprogramm.
Best Practices
Weitere Informationen zu AlwaysOn-Verfügbarkeitsgruppen finden Sie in der SQL Server-Dokumentation.
Epen
| Aufgabe | Description | Erforderliche Fähigkeiten |
|---|---|---|
Aktualisieren Sie die Replikate so, dass sie schreibgeschützt sind. | DBA | |
Erstellen Sie die Routing-URL. | Um die Routing-URL für beide Replikate zu erstellen, führen Sie den Schritt 2-Code aus dem Abschnitt Zusätzliche Informationen aus. In diesem Code | DBA |
Erstellen Sie die Routing-Liste. | Um die Routingliste für beide Replikate zu erstellen, führen Sie den Schritt 3-Code aus dem Abschnitt Zusätzliche Informationen aus. | DBA |
Überprüfen Sie die Routingliste. | Stellen Sie von SQL Server Management Studio aus eine Connect der primären Instanz her, und führen Sie den Schritt 4-Code aus dem Abschnitt Zusätzliche Informationen aus, um die Routingliste zu überprüfen. | DBA |
| Aufgabe | Description | Erforderliche Fähigkeiten |
|---|---|---|
Stellen Sie mithilfe des |
| DBA |
Führen Sie einen Failover durch. |
| DBA |
| Aufgabe | Description | Erforderliche Fähigkeiten |
|---|---|---|
Stellen Sie mithilfe von sqlcmd eine Connect. | Um von sqlcmd aus eine Verbindung herzustellen, führen Sie in der Befehlszeile den Schritt 5-Code aus dem Abschnitt Zusätzliche Informationen aus. Nachdem Sie die Verbindung hergestellt haben, führen Sie den folgenden Befehl aus, um den Namen des verbundenen Servers anzuzeigen.
In der Ausgabe wird der aktuelle Name des sekundären Replikats ( | DBA |
Fehlerbehebung
| Problem | Lösung |
|---|---|
Das Erstellen des Listeners schlägt fehl und es wird die Meldung „Der WSFC-Cluster konnte die Netzwerknamenressource nicht online bringen“ angezeigt. | Weitere Informationen finden Sie im Microsoft-Blogbeitrag Create Listener Fails with Message 'The WSFC-Cluster could not bring the Network Name resource online' |
Mögliche Probleme, einschließlich anderer Listener-Probleme oder Netzwerkzugriffsprobleme. | Weitere Informationen finden Sie unter Problembehandlung bei der Konfiguration von Always-On-Verfügbarkeitsgruppen (SQL Server) |
Zugehörige Ressourcen
Zusätzliche Informationen
Schritt 1. Aktualisieren Sie die Replikate so, dass sie schreibgeschützt sind
ALTER AVAILABILITY GROUP [SQLAG1] MODIFY REPLICA ON N'WSFCNODE1' WITH (SECONDARY_ROLE (ALLOW_CONNECTIONS = READ_ONLY)) GO ALTER AVAILABILITY GROUP [SQLAG1] MODIFY REPLICA ON N'WSFCNODE2' WITH (SECONDARY_ROLE (ALLOW_CONNECTIONS = READ_ONLY)) GO
Schritt 2. Erstellen Sie die Routing-URL
ALTER AVAILABILITY GROUP [SQLAG1] MODIFY REPLICA ON N'WSFCNODE1' WITH (SECONDARY_ROLE (READ_ONLY_ROUTING_URL = N'TCP://WSFCNode1.tagechtalk.com:1433')) GO ALTER AVAILABILITY GROUP [SQLAG1] MODIFY REPLICA ON N'WSFCNODE2' WITH (SECONDARY_ROLE (READ_ONLY_ROUTING_URL = N'TCP://WSFCNode2.tagechtalk.com:1433')) GO
Schritt 3. Erstellen Sie die Routing-Liste
ALTER AVAILABILITY GROUP [SQLAG1] MODIFY REPLICA ON N'WSFCNODE1' WITH (PRIMARY_ROLE(READ_ONLY_ROUTING_LIST=('WSFCNODE2','WSFCNODE1'))); GO ALTER AVAILABILITY GROUP [SQLAG1] MODIFY REPLICA ON N'WSFCNODE2' WITH (PRIMARY_ROLE (READ_ONLY_ROUTING_LIST=('WSFCNODE1','WSFCNODE2'))); GO
Schritt 4. Validieren Sie die Routing-Liste
SELECT AGSrc.replica_server_name AS PrimaryReplica, AGRepl.replica_server_name AS ReadOnlyReplica, AGRepl.read_only_routing_url AS RoutingURL , AGRL.routing_priority AS RoutingPriority FROM sys.availability_read_only_routing_lists AGRL INNER JOIN sys.availability_replicas AGSrc ON AGRL.replica_id = AGSrc.replica_id INNER JOIN sys.availability_replicas AGRepl ON AGRL.read_only_replica_id = AGRepl.replica_id INNER JOIN sys.availability_groups AV ON AV.group_id = AGSrc.group_id ORDER BY PrimaryReplica
Schritt 5. SQL-Befehlsdienstprogramm
sqlcmd -S SQLAG1,1433 -E -d test -K ReadOnly