Konfigurieren einer Always On Verfügbarkeitsgruppe zum Ausführen eines Failovers, wenn die Datenbankdatendatei nicht verfügbar ist
Zusammenfassung
In einer SQL Server Always On Verfügbarkeitsgruppe kann die Integritätserkennung auf Datenbankebene nur dann ein Failover ausführen, wenn der Fehler (Datenträgerfehler oder ähnliches) im Datenbanktransaktionsprotokoll auftritt.
Wenn der Fehler in der Datendatei auftritt, sendet SQL Server die Fehlermeldung nur an einen Windows Server-Failovercluster (WSFC) und ist darauf angewiesen, die richtige Entscheidung basierend auf der Richtlinienkonfiguration zu treffen.
Um eine Always On Verfügbarkeitsgruppe so zu konfigurieren, dass ein Failover ausgeführt wird, wenn Fehler 823 und andere auftreten, verwenden Sie eines der folgenden Verfahren:
Konfigurieren des Failovercluster-Managers
Dieses Verfahren richtet die WSFC-Richtlinie ein, um ein Failover auf einen der möglichen Besitzer zu verursachen, anstatt zu versuchen, die Rolle auf dem aktuellen primären Knoten neu zu starten.
Öffnen Sie den Failovercluster-Manager.
Erweitern Sie Ihren Cluster, und wählen Sie Rollen aus.
Klicken Sie mit der rechten Maustaste auf die Verfügbarkeitsgruppenrolle, und wählen Sie Eigenschaftenrichtlinien> aus.
Legen Sie den Wert von Maximum restarts in the specified period (Maximaler Neustart im angegebenen Zeitraum ) auf 0 fest.
Aktivieren Sie das Kontrollkästchen Wenn alle Neustartversuche fehlschlagen, starten Sie den Neustart nach dem angegebenen Zeitraum (hh:mm) erneut , und wählen Sie OK aus.
Stellen Sie sicher, dass beide Knoten mögliche Besitzer und bevorzugte Besitzer sind.
Benutzerdefinierte Konfigurationsoption
Dieses Verfahren enthält ein Beispiel für die Verwendung des verfügbaren Warnungsmechanismus in SQL Server und SQL Server-Agent, um den Fehler zu erkennen und ein Failover auszuführen.
Erweitern Sie SQL Server Management Studio SQL Server-Agent, klicken Sie mit der rechten Maustaste auf Warnungen, und wählen Sie Neue Warnung... aus.
Geben Sie einen Wert für Name an, wählen Sie SQL Server Ereigniswarnung für Typ aus, geben Sie den Wert fehlernummer auf 823 oder einen anderen gewünschten Fehler gemäß der Liste an, und wählen Sie dann OK aus.
Wählen Sie Antwort aus, aktivieren Sie Auftrag ausführen, wählen Sie den gewünschten Auftrag aus, und wählen Sie dann OK aus.
Geben Sie im Dialogfeld Auftragsschritteigenschaften einen Wert für Schrittname an, wählen Sie unter Typdie Option Betriebssystem (CmdExec) und dann SQL Server-Agent Dienstkonto für Ausführen als aus.
Geben Sie den folgenden sqlcmd-Failoverbefehl ein:
sqlcmd -S <SecondaryReplicaName> -U SQLADMIN -P <YourPassword> -Q "ALTER Availability Group <AGName> Failover"
Hinweis
<SecondaryReplicaName>
,<YourPassword>
und<AGName>
sind Platzhalter. Sie müssen sie an Ihre Umgebungen anpassen. Dieses Skript ist ein Beispiel für die Referenz. Ein vollständiges Skript sollte weitere Überprüfungen durchführen, bevor ein Failover ausgeführt wird.