Beim Testen eines Upgrades von SQL Server 2014 SP1 (12.0.4422.0) auf SQL Server 2016 CTP 3.2 (13.0.900.73) habe ich den empfohlenen Aktualisierungsprozess befolgt und bin auf ein Problem gestoßen, bei dem die Datenbank nach einem Failover nicht auf der alten Primärdatenbank gestartet werden konnte zum aktualisierten sekundären. Unser Setup ist ein primäres Replikat und ein einzelnes sekundäres Replikat. Die Schritte, die ich ausgeführt habe, waren:
- Entfernen Sie das automatische Failover auf dem sekundären Replikat mit synchronem Commit
- Aktualisieren Sie sekundäre Serverinstanzen auf eine neue Version
- Manuelles Failover auf das sekundäre Replikat
- Überprüfen Sie, ob die Datenbanken auf dem neuen primären Replikat online sind
- Aktualisieren Sie das vorherige primäre Replikat auf eine neue Version
Das Upgrade des sekundären und des Failovers zum primären System funktionierte genau wie erwartet. Nach dem Upgrade des zuvor primären Replikats stellte ich jedoch fest, dass die darauf enthaltenen Datenbanken in SSMS als Nicht synchronisierend / In Wiederherstellung aufgeführt waren . Auch der Versuch, auf sie zuzugreifen, würde eine Fehlermeldung erzeugen:
Die Datenbank ... ist nicht zugänglich. (ObjectExplorer)
Überprüfen Sie die SQL Server-Protokolle, die ich gesehen habe
Datenbank '...' Version 782 kann nicht geöffnet werden. Aktualisieren Sie die Datenbank auf die neueste Version.
Das Abfragen der Tabelle master..sysdatabases ergab, dass es sich tatsächlich um eine ältere Version handelt, die während des Upgrades nicht aktualisiert wurde:
Leider wurde in den Protokollen nicht angegeben, warum es nicht aktualisiert wurde, und das Dashboard für Verfügbarkeitsgruppen gab nur eine allgemeine Warnung aus, die darauf hinweist, dass der Datensynchronisationsstatus einiger Verfügbarkeitsdatenbanken ohne Grund nicht fehlerfrei ist.
Ich habe versucht, die Datenbanken mit TSQL zu trennen oder offline zu setzen, um sie in die Aktualisierung zu "kicken", aber da sie Teil der SQL AG sind, funktionieren diese Befehle nicht.
Wie kann ich die Datenbank auf die neueste Version aktualisieren, wenn sie Teil einer SQL AG ist?