Baza danych SQL Server AlwaysOn utknęła w trybie braku synchronizacji / w trybie odzyskiwania po aktualizacji. Błąd: Nie można otworzyć bazy danych „…” w wersji 782

10

Podczas testowania aktualizacji z SQL Server 2014 SP1 (12.0.4422.0) do SQL Server 2016 CTP 3.2 (13.0.900.73) postępowałem zgodnie z zalecanym procesem aktualizacji i natknąłem się na problem polegający na tym, że baza danych nie uruchamiałaby się na starym serwerze podstawowym po awarii do zaktualizowanego wtórnego. Nasza konfiguracja jest repliką podstawową i pojedynczą repliką dodatkową, a kroki, które wykonałem, to:

  1. Usuń automatyczne przełączanie awaryjne w replice wtórnej zatwierdzania synchronicznego
  2. Zaktualizuj instancje serwera dodatkowego do nowej wersji
  3. Ręczne przełączanie awaryjne na replikę dodatkową
  4. Sprawdź, czy bazy danych są online w nowej replice podstawowej
  5. Uaktualnij poprzednią replikę podstawową do nowej wersji

Aktualizacja drugorzędnego i przełączania awaryjnego, aby stał się podstawowym działał dokładnie zgodnie z oczekiwaniami. Ale po uaktualnieniu poprzedniej podstawowej repliki zauważyłem, że bazy danych na niej były wymienione w SSMS jako Nie synchronizacja / Odzyskiwanie . Również próba dostępu do nich wygenerowałaby komunikat o błędzie:

Baza danych ... jest niedostępna. (ObjectExplorer)

Sprawdzanie przez dzienniki programu SQL Server, które widziałem

Nie można otworzyć bazy danych „...” w wersji 782. Zaktualizuj bazę danych do najnowszej wersji.

Zapytanie o tabelę master..sysdatabases wykazało, że była to rzeczywiście starsza wersja i nie została zaktualizowana podczas aktualizacji:

Wersja sysdatabases SSMS

Niestety dzienniki nie wskazywały, dlaczego nie zostały zaktualizowane, a pulpit nawigacyjny grup dostępności dał tylko ogólne ostrzeżenie wskazujące, że stan synchronizacji danych w niektórych bazach danych dostępności nie jest zdrowy bez powodu.

Próbowałem użyć TSQL do odłączenia baz danych lub przełączenia ich w tryb offline, aby „uruchomić” aktualizację, ale ponieważ są one częścią SQL AG, te polecenia nie działają.

Jak mogę zaktualizować bazę danych do najnowszej wersji, jeśli jest ona częścią SQL AG?

Greg Bray
źródło

Odpowiedzi:

10

Po krótkiej pogawędce w SSMS zauważyłem, że na replice wtórnej obok baz danych dostępności była ikona pauzy. Główny wykazał, że oba były „zielone”, ale w opcji Wznów przenoszenie danych była opcja dodatkowa . Wznówiłem pierwszą bazę danych i natychmiast komunikat o stanie W trakcie odzyskiwania został usunięty. Minutę później zmieniło się z Nie synchronizującego na Synchronizowane i wszystko działało zgodnie z oczekiwaniami.

Oto zrzut ekranu baz danych AG po tym, jak naprawiłem „Patch”, ale przed naprawą testowej bazy danych:

Wznów przenoszenie danych w SQL AG

Uwaga: można również użyć TSQL na serwerze pomocniczym, aby wznowić replikację w wielu bazach danych jednocześnie:

ALTER DATABASE [Patch] SET HADR RESUME;
ALTER DATABASE [test] SET HADR RESUME;
GO
Greg Bray
źródło
1
Czy wiesz, co spowodowało wstrzymanie replikacji? i czy mogę się dowiedzieć, kiedy replikacja została wstrzymana?
JohnG,