Applies ToSQL Server 2016 Developer - duplicate (do not use) SQL Server 2016 Enterprise - duplicate (do not use) SQL Server 2016 Enterprise Core - duplicate (do not use) SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Enterprise Core - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use) SQL Server 2012 Service Pack 3 SQL Server 2012 Developer SQL Server 2012 Enterprise SQL Server 2012 Enterprise Core

Symptomy

Rozpatrzmy następujący scenariusz:

  • Korzystasz z programu Microsoft SQL Server 2016, 2014 lub 2012.

  • Masz bazę danych, która jest częścią funkcji zawsze włączonych grup dostępności.

  • W przypadku repliki podstawowej pliki bazy danych zostaną zmniejszone w celu zmniejszenia ich rozmiaru.

  • Replika podstawowa wysyła wszystkie zmiany zarejestrowane w dzienniku transakcji do repliki pomocniczej.

  • W przypadku repliki pomocniczej wątki ponownie zastosują zmiany z dziennika transakcji do bazy danych, która jest częścią grupy dostępności.

W tym scenariuszu replika jest zawieszana. Ponadto może zostać wyświetlony komunikat o błędzie podobny do następującego:

<sygnatura czasowa> spid41s: 3456; ważność: 21; stan: 1. <sygnatura czasowa> spid41s nie można wykonać ponownie rekordu dziennika (#), dla identyfikatora transakcji (#), na stronie (#), bazy danych "<dbname>" (identyfikator bazy danych: #). Strona: LSN = (#), Unit alokacji = #, Type = #. Dziennik: OpCode = #, Context #, PrevPageLSN: (#). Przywróć dane z kopii zapasowej bazy danych lub napraw bazę danych. <sygnatura czasowa> spid41s zawsze włączone przesunięcie danych grup dostępności dla bazy danych "<dbname>" zostało zawieszone z następującego powodu: "system" (identyfikator źródła 2; Ciąg źródłowy: "SUSPEND_FROM_REDO"). Aby wznowić przenoszenie danych w bazie danych, konieczne będzie ręczne wznowienie bazy danych. Aby uzyskać informacje o tym, jak wznowić bazę danych dostępności, zobacz dokumentację SQL Server — książki internetowe. <sygnatura czasowa> spid41s: 3313, ważność: 21; stan: 2. <sygnatura czasowa> spid41s podczas ponownego wykonywania operacji rejestrowania w bazie danych "<dbname>", wystąpił błąd w IDENTYFIKATORze rejestrowania (#). Zazwyczaj konkretny błąd jest wcześniej rejestrowany jako błąd w usłudze dziennik zdarzeń systemu Windows. Przywróć bazę danych z pełnej kopii zapasowej lub napraw bazę danych.

Przyczyna

Ten problem występuje, gdy w trakcie procesu ponawiania są stosowane zmiany, jeśli aparat bazy danych napotyka LSNs na stronach systemowych (GAM, PFS).

Rozwiązanie

Problem został po raz pierwszy rozwiązany w następującej zbiorczej aktualizacji programu SQL Server:

Każda nowa Zbiorcza aktualizacja programu SQL Server zawiera wszystkie poprawki i wszystkie poprawki zabezpieczeń uwzględnione w poprzedniej aktualizacji zbiorczej. Zalecamy pobranie i zainstalowanie najnowszych aktualizacji zbiorczych programu SQL Server:

Ta aktualizacja zapobiega występowaniu tego problemu. Jeśli problem już wystąpił, wykonaj poniższe czynności, aby ponownie dołączyć do funkcji zawsze włączonych grup dostępności:

  1. Usuń istniejącą AlwaysOn replikę pomocniczą.

  2. Uruchom następujące polecenie w plikach danych, których dotyczy problem, aby usunąć nieprzydzielone miejsce z bazy danych:

    DBCC SHRINKFILE(<file_id>, TRUNCATEONLY)

  3. Wykonaj kopię zapasową plików dziennika i bazy danych.

  4. Przywracanie bazy danych i dziennika w niewłączonej replice pomocniczej.

  5. Dołącz do funkcji zawsze włączonych grup dostępności.

Stan

Firma Microsoft potwierdziła, że jest to problem występujący w produktach firmy Microsoft wymienionych w sekcji "dotyczy".

Informacje

Informacje o terminologii używanej przez firmę Microsoft do opisywania aktualizacji oprogramowania.

Potrzebujesz dalszej pomocy?

Chcesz uzyskać więcej opcji?

Poznaj korzyści z subskrypcji, przeglądaj kursy szkoleniowe, dowiedz się, jak zabezpieczyć urządzenie i nie tylko.

Społeczności pomagają zadawać i odpowiadać na pytania, przekazywać opinie i słuchać ekspertów z bogatą wiedzą.