Verfügbarkeitsgruppendatenbank steckt im Modus Nicht synchronisieren / Wiederherstellung ausstehend fest

12

Beim Aktualisieren des Speichers in einer SQL Server 2014 SP1 (12.0.4422.0) -Instanz ist ein Problem aufgetreten, bei dem zwei der Datenbanken nach dem Neustart von SQL Server nicht auf der sekundären Datenbank gestartet wurden. Der Server war einige Stunden offline, während wir neue (größere) SSDs installierten und die Datendateien auf das neue Volume kopierten. Beim Neustart von SQL Server wurden alle Datenbanken bis auf zwei erneut synchronisiert. Die anderen beiden wurden in SSMS als Nicht synchronisierend / Wiederherstellung ausstehend angezeigt .

SSMS nicht synchronisiert / Wiederherstellung ausstehend

Nachdem ich zuvor ein ähnliches Problem mit " Nicht synchronisieren / wiederherstellen " hatte, überprüfte ich den Status im Abschnitt "Verfügbarkeitsgruppen -> Verfügbarkeitsdatenbanken", aber es wurde ein rotes X angezeigt:

Verfügbarkeitsgruppen, Verfügbarkeitsdatenbanken

und sogar der Versuch, die Datenbewegung anzuhalten, erzeugte eine Fehlermeldung:

Fehler beim Anhalten der Datenverschiebung in der Datenbank 'StackExchange.Bycycles.Meta', die sich auf dem Verfügbarkeitsreplikat 'ny-sql03' in der Verfügbarkeitsgruppe 'SENetwork_AG' befindet. (Microsoft.SqlServer.Smo)

Zusätzliche Informationen: Beim Ausführen einer Transact-SQL-Anweisung oder eines Batch-Stapels ist eine Ausnahme aufgetreten. (Microsoft.SqlServer.ConnectionInfo)

Die Datenbank 'StackExchange.Bycycles.Meta' kann aufgrund unzugänglicher Dateien oder unzureichendem Speicher oder Speicherplatz nicht geöffnet werden. Weitere Informationen finden Sie im SQL Server-Fehlerprotokoll. (Microsoft SQL Server, Fehler: 945)

Ich habe nachgesehen und die Dateien waren vorhanden und hatten keine Berechtigungsprobleme. Ich habe auch die SQL Server-Protokolle in SSMS unter Verwaltung überprüft, aber nichts über ausstehende Wiederherstellung oder Probleme mit den beiden Datenbanken festgestellt.

Auf der Suche nach Hilfe fand ich zwei verschiedene Artikel , die besagten, dass die Datenbanken wiederhergestellt werden müssten.

Gibt es eine Möglichkeit, die Datenreplikation auf einer sekundären Datenbank fortzusetzen, wenn eine Datenbank in Recovery Pending steckt?

Greg Bray
quelle

Antworten:

15

Da der Server eine Weile offline war, dachten wir, dass er möglicherweise außerhalb des Wiederherstellungsfensters des primären Servers liegt. Wir haben uns entschlossen, die neuesten Transaktionsprotokolle in der Datenbank anzuwenden , um festzustellen , ob dies den Wiederherstellungsprozess ankurbeln würde:

-- Remove database from Availability Group:    
Alter Database [StackExchange.Bicycles.Meta] SET HADR OFF;

-- Apply t-logs to catch up. This can be done manually in SSMS or via:
RESTORE LOG [StackExchange.Bicycles.Meta] FROM DISK = '\\ny-back01\backups\SQL\_Trans\SENetwork_AG\StackExchange.Bicycles.Meta\StackExchange.Bicycles.Meta_LOG_20160217_033201.trn' WITH NORECOVERY;

-- Re-join database to availability group
ALTER DATABASE [StackExchange.Bicycles.Meta] SET HADR AVAILABILITY GROUP = [SENetwork_AG];
ALTER DATABASE [StackExchange.Bicycles.Meta] SET HADR RESUME;

Nachdem sie die oben genannten Schritte auf dem sekundären Server für beide Datenbanken ausgeführt hatten, konnten sie erneut mit der Synchronisierung beginnen.

UPDATE: Wir hatten ein ähnliches Problem, bei dem nach einem Manual AG-Failover eine der Datenbanken auf dem neuen primären Replikat feststeckte Nicht-Synchronisierungsmodus ( nach dem Neustart von SQL Server auf Nicht synchronisieren / Wiederherstellung ausstehend ), und die oben genannten Schritte haben dieses Problem behoben Problem auch.

Greg Bray
quelle
-2

Versuchen Sie beim nächsten Mal, ein Failover zwischen dem primären und dem nicht synchronisierenden sekundären und erneutem Failover durchzuführen. Die sekundäre sollte jetzt synchronisiert werden.

user189125
quelle
2
Dies ist ein schrecklicher Vorschlag.
Arcain