Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Einrichten und Konfigurieren der Always-On-Verfügbarkeitsgruppe in SQL Server

SQL Server stellt uns eine Reihe von Hochverfügbarkeits- und Disaster-Recovery-Lösungen zur Verfügung, die dabei helfen, die Daten, die den kritischen Systemen dienen, so lange wie möglich mit möglichst geringen Ausfallzeiten verfügbar zu machen. Diese von Microsoft SQL Server bereitgestellten Hochverfügbarkeits- und Notfallwiederherstellungslösungen werden im Artikel SQL Server-Transaktionsprotokoll und Hochverfügbarkeitslösungen erläutert.

In diesem Artikel zeigen wir, wie Sie eine Verfügbarkeitsgruppen-Site einrichten und konfigurieren und sie so konfigurieren, dass sie die Unternehmensanforderungen erfüllt. Beginnen wir jedoch mit einem kurzen Überblick über die Funktion „Always-on-Verfügbarkeitsgruppe“, um uns damit vertraut zu machen.

Übersicht

Die in SQL Server 2012 eingeführte SQL Server Always-on-Verfügbarkeitsgruppe ist eine Hochverfügbarkeits- und Notfallwiederherstellungslösung auf Unternehmensebene, die auf der Windows Server-Failoverclustering-Funktion aufbaut, in der eine oder mehrere Datenbanken als eine Verfügbarkeitsgruppe fungieren können Failover als einzelne Einheit.

Die Verfügbarkeitsgruppe ist ein Container für eine Reihe von Datenbanken, die in einem primären Replikat gehostet werden, die Lese-/Schreibkopie der Datenbanken enthalten und mit bis zu acht sekundären Replikaten synchronisiert sind und eine schreibgeschützte Kopie dieser Datenbanken enthalten.

Als Alternative zur Datenbankspiegelungsfunktion kann die Always on-Verfügbarkeitsgruppe verwendet werden, um die Last auf der primären Instanz zu reduzieren, indem die sekundären Replikate so konfiguriert werden, dass sie die schreibgeschützte Arbeitslast und die Sicherungsvorgänge verarbeiten. Auf diese Weise kann die Always-On-Verfügbarkeitsgruppe verwendet werden, um die Verfügbarkeit der Datenbanken zu verbessern und die SQL Server-Ressourcennutzung für alle Replikate zu verbessern.

Der Synchronisierungsprozess zwischen den Replikaten der Verfügbarkeitsgruppe kann in einem von zwei unterstützten Verfügbarkeitsmodi durchgeführt werden:

  • Synchroner Commit-Modus :In diesem Verfügbarkeitsmodus wartet das primäre Replikat darauf, dass die sekundären Replikate (bis zu zwei synchrone sekundäre Replikate) das Schreiben des Protokolls in ihre Datenbank-Transaktionsprotokolldatei bestätigen, bevor es am primären Replikat festgeschrieben wird. Dieser Verfügbarkeitsmodus erhöht die Datenverfügbarkeit über den Transaktionslatenzpreis hinaus.
  • Asynchroner Commit-Modus :Dieser Verfügbarkeitsmodus wird hauptsächlich zur Synchronisierung mit Disaster-Recovery-Replikaten verwendet, die über entfernte Rechenzentren verteilt sind, wo das primäre Replikat nicht auf die sekundären Replikate wartet, um die Härtung des Protokolls zu bestätigen, um die Transaktion auf der primären Seite festzuschreiben und weniger Daten bereitzustellen Verfügbarkeitsniveau und weniger Transaktionslatenz.

Der Failover-Prozess für Always-On-Verfügbarkeitsgruppen, bei dem die primäre Rolle zwischen den Replikaten geändert wird, kann manuell vom Datenbankadministrator oder automatisch vom SQL Server selbst im Falle eines Ausfalls auf Serverebene ausgeführt werden, wobei dies zu berücksichtigen ist Failover findet nicht statt, falls Probleme auf Datenbankebene auftreten, wie z. B. Datenbankbeschädigung.

Für jede Verfügbarkeitsgruppe kann ein Servername erstellt werden, um den Clients die Möglichkeit zu geben, eine direkte Verbindung mit dem primären Replikat oder den schreibgeschützten Replikaten herzustellen, ohne die zugrunde liegenden SQL Server-Instanznamen und -Rollen innerhalb der Verfügbarkeitsgruppe abzurufen. Dieser Servername wird als Verfügbarkeitsgruppen-Listener bezeichnet .

Demo-Szenario

Nach einer kurzen Einführung in das Feature „Always-On-Verfügbarkeitsgruppe“ können wir eine Verfügbarkeitsgruppe einrichten und ordnungsgemäß konfigurieren. In dieser Demo erstellen wir eine Verfügbarkeitsgruppe, um die AdventureWorks2017-Datenbank zwischen zwei SQL Server-Instanzen zu replizieren; SQL1 und SQL2, wobei SQL Server 2017 bereits auf diesen Servern installiert ist.

Zu Test- und Demozwecken werden die SQL Server-Dienste sowohl in SQL1- als auch in SQL2-Instanzen unter dem ay\sqladmin-Dienstkonto ausgeführt, das über die entsprechenden Berechtigungen für diese SQL Server-Instanzen verfügt.

Erste Schritte

Wie in der Übersicht dieses Artikels erwähnt, baut das Feature „Always-On-Verfügbarkeitsgruppe“ auf dem Windows Server-Failovercluster-Feature auf. Wir müssen also eine Failover-Clustering-Site erstellen, über der wir die Availability Group-Site definieren.

Erstellen Sie einen Failover-Cluster

Zunächst müssen wir sicherstellen, dass das Failoverclustering-Feature auf allen Replikaten installiert ist, die am Standort der Verfügbarkeitsgruppe teilnehmen werden. Öffnen Sie dazu das Server-Manager-Dashboard auf jedem Replikat und wählen Sie die Option „Rollen und Funktionen hinzufügen“ aus dem Menü „Verwalten“. Aktivieren Sie dann das Failover-Clustering und installieren Sie es Funktion dieses Assistenten, wie unten gezeigt:

Öffnen Sie nach der Installation der Failover-Clustering-Funktion den Failover-Cluster-Manager Fenster in einer der Repliken unter Verwendung eines autorisierten lokalen Administratorkontos mit Domänenadministratorrechten, die es ihm ermöglichen, diesen Clusternamen im Active Directory zu erstellen, und klicken Sie auf Cluster erstellen Option, wie unten:

Aus dem geöffneten Assistenten zum Erstellen von Clustern , lesen Sie die bereitgestellten Anweisungen unter Bevor Sie beginnen Fenster und klicken Sie auf Weiter um fortzufahren:

Geben Sie auf der nächsten Seite den Namen oder die IP-Adresse der Replikate an, die an der Verfügbarkeitsgruppe teilnehmen werden, und klicken Sie dann auf „Weiter“, um fortzufahren:

Danach müssen Sie angeben, ob der Cluster-Validierungstest ausgeführt werden soll, um zu überprüfen, ob die auf diesen Servern verfügbaren Ressourcen mit der Failover-Clustering-Funktion kompatibel sind, bevor Sie den Failover-Cluster erstellen oder nicht. Es wird immer empfohlen, den Validierungstest in diesem Schritt durchzuführen, bevor Sie versuchen, die Failover-Cluster-Site zu erstellen.

Dadurch gelangen Sie zum Validate a Configuration Wizard . Überprüfen Sie auf der ersten Seite des Validierungsassistenten die Anweisungen des Assistenten und klicken Sie auf Weiter um fortzufahren:

Danach müssen Sie angeben, ob alle Failover-Cluster-Validierungen ausgeführt werden sollen, was die empfohlene Option ist, oder bestimmte schnellere Tests auswählen. In dieser Demo verwenden wir die von Microsoft empfohlene Option, führen alle Validierungstests durch und klicken dann auf Weiter um fortzufahren:

Und Sie können die Validierungstests überprüfen, die in diesem Validierungsassistenten durchgeführt werden, und bestätigen, dass Sie fortfahren, indem Sie auf Weiter klicken , wie folgt:

Wenn der Validierungsprozess abgeschlossen ist, können Sie auf die Schaltfläche „Bericht anzeigen“ klicken, um das Ergebnis des Validierungstests zu überprüfen, oder es an einen anderen Techniker exportieren, um ein aufgetretenes Problem zu beheben, oder direkt auf „Fertig stellen“ klicken, um den Clustererstellungsprozess zu starten, wie unten beschrieben:

Im Moment haben wir überprüft, ob unsere Server mit den Anforderungen der Failover-Clustering-Funktion kompatibel sind, und wir können mit der Erstellung der Failover-Clustering-Site fortfahren. Im Zugangspunkt zur Verwaltung des Clusters geben Sie einen eindeutigen Namen und eine IP-Adresse für den Failover-Cluster ein und klicken Sie dann auf Weiter um fortzufahren:

Überprüfen Sie danach die von Ihnen bereitgestellten Einstellungen zur Clustererstellung und stellen Sie sicher, dass Sie sie entfernen das Häkchen neben Alle berechtigten Speicher zum Cluster hinzufügen , da die Funktion „Always on Availability Group“ auf dediziertem Speicher für jeden Server und NICHT arbeitet Geteiltes Lager. Wenn Sie mit den Einstellungen zufrieden sind, klicken Sie auf Weiter um fortzufahren:

Sobald die Failover-Clustering-Site erfolgreich erstellt wurde, benachrichtigt Sie der Assistent mit einer Meldung, dass die Failover-Clustering-Site vollständig erstellt wurde, wie unten gezeigt:

Sie können überprüfen, ob die Failover-Cluster-Site erfolgreich erstellt wurde, indem Sie den Failover-Cluster-Manager öffnen, der Ihnen die erstellte Cluster-Site und alle Komponenten dieses Clusters wie unten gezeigt anzeigt:

Um die Failovercluster-Site im besten Verfügbarkeitsmodus zu halten, müssen Sie das Cluster-Quorum konfigurieren, das steuert, wann der Failovercluster basierend auf den Knoten- und Ressourcenstimmen online bleibt oder offline geschaltet wird. Um das Cluster-Quorum zu konfigurieren, klicken Sie unter dem Failover-Cluster-Manager mit der rechten Maustaste auf den Cluster-Namen und wählen Sie Cluster-Quorum-Einstellungen konfigurieren aus Option unter Weitere Aktionen Menü, wie unten. Ausführliche Informationen zu den Quorumeinstellungen für die Funktion „Always On-Verfügbarkeitsgruppen“ finden Sie unter Quorummodi für Windows-Failovercluster in SQL Server Always On-Verfügbarkeitsgruppen:

Funktion „Always on Availability Group“ aktivieren

Nach dem Erstellen des Failover-Clusters, über dem die Verfügbarkeitsgruppe erstellt wird, müssen wir die Funktion „Always-On-Verfügbarkeitsgruppe“ aktivieren und sie mit der zu verwendenden Failover-Cluster-Site verbinden.

Um die Funktion „Always-On-Verfügbarkeitsgruppe“ zu aktivieren, öffnen Sie den SQL Server-Konfigurations-Manager -> SQL Server-Dienste, klicken Sie dann mit der rechten Maustaste auf den SQL Server-Dienst und wählen Sie die Option Eigenschaften. Wechseln Sie im Eigenschaftenfenster des SQL Server-Dienstes zu Immer verfügbar Seite und kreuzen Sie „Always on-Verfügbarkeitsgruppen aktivieren an “ unter dem automatisch erkannten Failover-Cluster-Namen, wie unten gezeigt:

Berücksichtigen Sie, dass diese Änderung für alle Replikate durchgeführt werden sollte, die an der Verfügbarkeitsgruppe teilnehmen, und nach dem Neustart des SQL Server-Diensts wie folgt wirksam wird:

Neue Always-On-Verfügbarkeitsgruppe erstellen

Nachdem Sie die Funktion „Always-on-Verfügbarkeitsgruppe“ aktiviert haben, beginnen wir mit der Erstellung der neuen Verfügbarkeitsgruppe, indem wir den Knoten „Always-on High Availability“ im SSMS-Objekt-Explorer erweitern, dann mit der rechten Maustaste auf den Knoten „Availability Groups“ klicken und Neu auswählen Assistent für Verfügbarkeitsgruppen , wie unten gezeigt:

Die erste Seite im Assistenten für neue Verfügbarkeitsgruppen ist die Einführungsseite, auf der Sie eine kurze Beschreibung der Schritte finden, die von diesem Assistenten ausgeführt werden, um eine neue Verfügbarkeitsgruppe zu erstellen. Überprüfen Sie die bereitgestellte Zusammenfassung und klicken Sie dann auf Weiter um fortzufahren:

In den Optionen für Verfügbarkeitsgruppen angeben Fenster müssen Sie den Namen der Verfügbarkeitsgruppe, den Typ des Clusters basierend auf der SQL Server-Version und dem auf den Replikaten verwendeten Betriebssystem angeben, wobei Sie aus dem Windows Server-Failover-Clustering wählen können , Nicht-Windows EXTERN Cluster oder NONE wenn kein Cluster verwendet wird.

Auf dieser Seite können Sie auch die Integritätserkennung auf Datenbankebene aktivieren Option, die prüft, wann sich eine Datenbank nicht mehr im Online-Status befindet, und das automatische Failover der Verfügbarkeitsgruppe durchführt und die verteilten Transaktionen in Verfügbarkeitsgruppen für jede Datenbank aktiviert, wie unten gezeigt:

Danach müssen Sie die Datenbank(en) auswählen, die an dieser Verfügbarkeitsgruppe teilnehmen. Der Assistent überprüft die Vorabanforderungen für die Datenbank, um sie der Verfügbarkeitsgruppe hinzuzufügen, einschließlich des vollständigen Wiederherstellungsmodells der Datenbank und dass eine vollständige Sicherung von dieser Datenbank erstellt wird, bevor sie hinzugefügt wird. Nachdem Sie die Anforderungen für die einzuschließenden Datenbanken erfüllt haben, aktualisieren Sie die Datenbankliste, überprüfen Sie die Datenbank und klicken Sie dann auf Weiter um fortzufahren:

Auf der nächsten Seite unter Repliken müssen Sie alle SQL Server-Replikate hinzufügen, die an dieser Verfügbarkeitsgruppe teilnehmen und eine Kopie der enthaltenen Datenbanken hosten. Nach dem Hinzufügen der Replikate können Sie bis zu drei Instanzen auswählen, die mit dem Verfügbarkeitsmodus Synchronous Commit konfiguriert werden sollen, und das automatische Failover zwischen diesen Replikaten und den übrigen Replikaten zulassen, die mit dem Modus Asynchronous Commit konfiguriert werden. Sie können auch entscheiden, ob Sie jedes Replikat als lesbares sekundäres für schreibgeschützte Verbindungen oder als lesbares Replikat mit Leseabsicht konfigurieren möchten, um die vom Listener automatisch geleitete schreibgeschützte Arbeitslast zu verarbeiten, wie unten gezeigt:

Überprüfen Sie auf der Registerkarte Endpunkte die Einstellungen der Verbindungsendpunkte, die für die Kommunikation zwischen den Replikaten verwendet werden, wobei Sie sicherstellen müssen, dass der verwendete TCP-Port in den Firewall-Regeln aller Replikate aktiviert ist und das bereitgestellte Dienstkonto hat Verbindungsberechtigung auf dem Endpunkt der Replikate wie folgt:

Auf der Registerkarte Sicherungseinstellungen müssen Sie den Speicherort angeben, an dem die Sicherungsaufträge in der Verfügbarkeitsgruppe ausgeführt werden. Es ermöglicht Ihnen, eine automatische Sicherung vom sekundären Replikat als bevorzugte Option, vom sekundären als Muss, vom primären als Muss oder von jedem Replikat durchzuführen. Basierend auf dieser Option können Sie den Wartungsplan erstellen, um eine Sicherung von den Datenbanken zu erstellen, die an der Verfügbarkeitsgruppe teilnehmen, wie unten:

Aus demselben Fenster können Sie auch die Listener-Einstellungen der Verfügbarkeitsgruppe auf der Seite „Listener“ definieren oder vorerst ohne die Erstellung des Listeners fortfahren und die Erstellung später durchführen. In dieser Demo konfigurieren wir den Listener nach dem Erstellen der Verfügbarkeitsgruppe, wie unten gezeigt:

Außerdem können Sie die Seite Read-Only Routing verwenden, um die Read-Only-Routing-Liste zu definieren, die verwendet wird, um die Read-Only-Workload innerhalb der sekundären Server zu steuern. Weitere Informationen finden Sie unter How to Configure Read-Only Routing for an Availability Groups in SQL Server 2016:

Auf der nächsten Seite müssen Sie den Mechanismus angeben, der für den anfänglichen Datensynchronisierungsprozess zwischen dem primären und dem sekundären Replikat verwendet wird, mit der Möglichkeit, die Synchronisierung automatisch oder manuell durchzuführen, indem Sie das sekundäre Replikat der Verfügbarkeitsgruppe hinzufügen und die Datenbanken synchronisieren später manuell.

In diesem Assistenten sind zwei automatische Synchronisierungsmethoden verfügbar. Die erste ist die Angabe eines freigegebenen Ordners, um die vollständigen und Transaktionsprotokollsicherungen vorübergehend zu kopieren und die Wiederherstellung automatisch durchzuführen, was wir hier in dieser Demo verwenden werden, oder eine direkte Seeding-Methode ohne Erstellen einer Sicherung, wie in der SQL Server 2016 Always On-Verfügbarkeitsgruppe mit Direct Seeding beschrieben:

Um die Vollständige Datenbank- und Protokollsicherung zu verwenden -Methode müssen wir einen freigegebenen Ordner erstellen und die SQL Server-Dienstkonten für die Replikate mit Lese- und Schreibberechtigungen für diesen Ordner bereitstellen, wie unten gezeigt:

Danach führt der Assistent für neue Verfügbarkeitsgruppen eine Validierungsprüfung für alle Konfigurationen durch, bevor er mit dem Erstellungsprozess der Verfügbarkeitsgruppe fortfährt. Wenn ein Fehler auftritt, können Sie ihn direkt beheben, dann die Seite aktualisieren und auf Weiter klicken um fortzufahren:

In der letzten Phase stellt Ihnen der Assistent eine Zusammenfassung aller Assistentenkonfigurationen zur Verfügung, die Sie überprüfen können, und klicken Sie dann auf Fertig stellen um mit dem Erstellen der Verfügbarkeitsgruppe zu beginnen, wie unten:

Wenn der Assistent abgeschlossen ist, zeigt er Ihnen das Ergebnis jedes Schritts und ob ein Fehler aufgetreten ist. Andernfalls wird eine Meldung angezeigt, dass die Verfügbarkeitsgruppe ohne Probleme erfolgreich erstellt wurde, wie unten gezeigt:

Sie können auch überprüfen, ob die Always on-Verfügbarkeitsgruppe erfolgreich mit dem SSMS-Objekt-Explorer erstellt und konfiguriert wurde, indem Sie überprüfen, ob sich die teilnehmenden Datenbanken in allen Replikaten in einem synchronisierten Zustand befinden und dass die Replikate und Datenbanken unter Always on online sind Hochverfügbarkeitsknoten, wie unten gezeigt:

Sie können auch eine Verbindung mit dem primären Replikat herstellen, wobei das Wort „Primär“ neben dem Namen der Verfügbarkeitsgruppe steht, und die Seite „Eigenschaften der Verfügbarkeitsgruppe“ überprüfen, auf der Sie dieselben Aufgaben ausführen können, die wir im Assistenten für neue Verfügbarkeitsgruppen ausgeführt haben, z. B. das Hinzufügen neuer Replikate , Hinzufügen einer neuen Datenbank, Ändern der einzelnen Replikatkonfigurationen, Ändern der Sicherungseinstellungen und Definieren einer schreibgeschützten Routingliste, wie unten gezeigt:

Always-on-Verfügbarkeitsgruppen-Listener erstellen

Der letzte Schritt beim Konfigurieren der Verfügbarkeitsgruppe ist das Erstellen des Verfügbarkeitsgruppen-Listeners, der beim Herstellen einer Verbindung mit den primären und sekundären Replikaten verwendet wird, ohne den Replikatnamen anzugeben.

Um den Verfügbarkeitsgruppen-Listener zu erstellen, klicken Sie mit der rechten Maustaste auf den Verfügbarkeitsgruppen-Listener-Knoten unter dem erstellten Verfügbarkeitsgruppen-Knoten und wählen Sie Lister hinzufügen aus Möglichkeit. Aus dem geöffneten New Availability Group Listener Geben Sie im Fenster den Namen dieses Listeners, den TCP-Port, der für die Verbindung mit diesem Listener verwendet wird, und die statische IP-Adresse ein, die dem Listener zugewiesen wird, und klicken Sie dann auf OK um es zu erstellen. Wenn der Listener erfolgreich erstellt wurde, wird das Fenster automatisch geschlossen und der Listener-Name wird unter dem Listener-Knoten angezeigt, wie unten gezeigt:

Um mit dem Listener-Namen eine Verbindung zur Verfügbarkeitsgruppe herzustellen, geben Sie den Namen oder die IP-Adresse des Listeners mit der TCP-Portnummer in Connect to Server an, und es wird eine direkte Verbindung zum primären Knoten hergestellt, wie unten gezeigt:

Failover-Prozess testen

Nach dem Testen der Verbindung mit dem Verfügbarkeitsgruppen-Listener und den Replikaten müssen wir einen wichtigen Test für das Failover durchführen, um sicherzustellen, dass die primäre Rolle ohne Probleme zwischen den Replikaten verschoben wird und dass die Datenbanken erreichbar und vorhanden sind den synchronisierten Zustand nach dem Failover.

Um ein manuelles Failover durchzuführen, klicken Sie mit der rechten Maustaste auf den Namen der Verfügbarkeitsgruppe und wählen Sie Failover aus Option, wie unten:

Die erste Seite in der Failover-Verfügbarkeitsgruppe Assistent ist die Einführungsseite, die eine Zusammenfassung der Aktionen enthält, die in diesem Assistenten ausgeführt werden können. Lesen Sie die Einführung und klicken Sie auf Weiter um fortzufahren:

Wählen Sie auf der nächsten Seite aus, welcher Knoten als neues primäres Replikat fungieren soll, und stellen Sie sicher, dass es zu keinem Datenverlust kommt, wenn der Failover-Vorgang durchgeführt wird, und klicken Sie dann auf Weiter, um fortzufahren:

Danach sollten Sie sich mit dem neuen primären Replikat verbinden, das Sie auswählen, um sicherzustellen, dass dieses Replikat online und erreichbar ist, wie unten gezeigt:

Überprüfen Sie dann Ihre Auswahl im Failover-Assistenten auf der Zusammenfassungsseite und klicken Sie auf Fertig stellen, um den Failover-Prozess zu starten:

Wenn das Failover abgeschlossen ist, überprüfen Sie die Ergebnisseite, um sicherzustellen, dass während des Failover-Prozesses keine Probleme aufgetreten sind, wie unten gezeigt:

Im SSMS-Objekt-Explorer wird die Rolle des SQL1-Replikats direkt in „Sekundär“ geändert, wie unten gezeigt:

In diesem Artikel haben wir ausführlich die Schritte beschrieben, die zur Vorbereitung der Websiteerstellung der Verfügbarkeitsgruppe ausgeführt werden sollten, und wie die Website der Always-On-Verfügbarkeitsgruppe erstellt und konfiguriert wird. Im nächsten Artikel erfahren Sie, wie Sie die Probleme beheben können, die bei einer vorhandenen Verfügbarkeitsgruppensite auftreten können. Bleiben Sie dran.