Symptomy
Załóżmy, że korzystasz z funkcji zawsze włączonych grup dostępności w programie Microsoft SQL Server 2012. W przypadku zmiany dostępu do połączenia repliki pomocniczej z "czytelną" na "nieczytelny" na stronach, w których jest używana kompresja strony w danej replice, występuje uszkodzenie.Bazy danych dostępności, które występują w tym problemie w replice pomocniczej, nie mogą odzyskać z powodu błędu podczas fazy ponawiania synchronizacji. Replika pomocnicza nie zostanie zsynchronizowana z repliką podstawową i zgłasza stan synchronizacji "SUSPEND_FROM_REDO". Ponadto w dzienniku błędów programu SQL Server obsługującym replikę pomocniczą są wyświetlane następujące komunikaty o błędach:
Data <> <godzina> identyfikatorze spid<ID> błędu: 17066; ważność: 16; stan: 1. Data <> <godzina> numeru spid> <0 Identyfikator> SQL Server Assertion: plik: <Page. cpp>, line = 3898 nie powiodła się = '! pageFull '. Ten błąd może być związany z chronometrażem. Jeśli błąd będzie nadal występował po ponownym uruchomieniu instrukcji, użyj polecenia DBCC CHECKDB w celu sprawdzenia integralności bazy danych w strukturze strukturalnej lub ponownego uruchomienia serwera, aby upewnić się, że struktury danych w pamięci Time nie są uszkodzone. Data <> <godzina> identyfikator spid<Identyfikator> błąd : 3624; ważność: 20; stan: 1 ID Zobacz dziennik błędów programu SQL Server, aby uzyskać szczegółowe informacje. Zazwyczaj błąd potwierdzenia jest spowodowany błędem oprogramowania lub uszkodzeniem danych. Aby sprawdzić, czy baza danych jest uszkodzona, warto skorzystać z polecenia DBCC CHECKDB. Jeśli użytkownik wyraził zgodę na wysłanie zrzutów do firmy Microsoft podczas konfiguracji, do firmy Microsoft zostanie wysłany mini zrzut. Aktualizacja może być dostępna w firmie Microsoft w najnowszym dodatku Service Pack lub w aktualizacji QFE z pomocy technicznej. Data <> <godzina> identyfikatorze SPID<ID> zawsze włączone funkcje przepływu danych dla bazy danych "<Nazwa bazy danych>" zostały 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. <data> <godzina> identyfikator SPID<ID> błąd: 3313, ważność: 21, stan: 2. Data <> <godzina> numeru SPID> <0> w trakcie wykonywania zarejestrowanej operacji w bazie danych "<Nazwa bazy danych>" Wystąpił błąd w dzienniku rejestrowania (1786:4978584:74). 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. <data> <godzina> identyfikatorze SPID<ID> ALTER DB param: Data wznowienia<> <godziny> identyfikatorze SPID > <0> Jest to tylko komunikat informacyjny. Nie jest wymagane wykonanie jakiejkolwiek czynności przez użytkownika. <data> <godzina> identyfikator SPID<ID> niekwalifikowane transakcje są przywracane w bazie danych <Nazwa bazy danych> dla zmiany stanu zawsze włączonych grup dostępności. Szacowane ukończenie wycofywania: 100%. Jest to tylko komunikat informacyjny. Nie jest wymagane wykonanie jakiejkolwiek czynności przez użytkownika. <data> <godzina> identyfikator SPID<ID> zawsze włączone AlwaysOn grupy dostępności z zainstalowaną podstawową bazą danych dla pomocniczej bazy danych "<Nazwa bazy danych>" w replice dostępności z identyfikatorem repliki: {bbdedecb-f26b-47e9-9e7d-7c22f99edb23}. Jest to tylko komunikat informacyjny. Nie jest wymagane wykonanie jakiejkolwiek czynności przez użytkownika. <data> <godzina> identyfikator SPID<ID> uruchamiania bazy danych "<Nazwa bazy danych>" . <Date> <> (781 1)> <2 Identyfikator SPID> Faza 1 z 3. Jest to tylko komunikat informacyjny. Nie jest wymagane wykonanie jakiejkolwiek czynności przez użytkownika.......
Rozwiązanie
Ten problem został po raz pierwszy rozwiązany w poniższej zbiorczej aktualizacji programu SQL Server.
Zbiorcza aktualizacja 6 dla programu SQL server 2012 z dodatkiem SP2 Zbiorcza aktualizacja 16 dla programu SQL Server 2012 z dodatkiem SP1
Każda nowa Zbiorcza aktualizacja programu SQL Server zawiera wszystkie poprawki i wszystkie poprawki zabezpieczeń uwzględnione w poprzedniej aktualizacji zbiorczej. Zapoznaj się z najnowszymi aktualizacjami zbiorczymi dla programu SQL Server:
Więcej informacji
Poprzedni problem może wystąpić w przypadku zmiany uprawnienia do odczytu repliki pomocniczej. Dostęp do odczytu baz danych dostępności w replice pomocniczej można ustawić przy użyciu dwóch następujących metod:
-
Ustaw dostęp do odczytu przy użyciu polecenia ALTER AVAILABILITY GROUP:
ALTER AVAILABILITY GROUP [AGName]MODIFY REPLICA ON N'<SRV>' WITH (SECONDARY_ROLE(ALLOW_CONNECTIONS = NO))
-
Ustaw dostęp do odczytu, zmieniając ustawienia w Eksploratorze obiektów programu SQL Server Management Studio (SSMS):
-
Nawiąż połączenie z serwerem, a następnie otwórz folder dostępność zawsze.
-
Otwórz folder grupy dostępności.
-
Kliknij prawym przyciskiem myszy grupę dostępności, a następnie wybierz pozycję Właściwości.
-
Zmień czytelną Właściwość pomocniczą repliki pomocniczej na nie, a następnie kliknij przycisk OK.
-
Stan
Firma Microsoft potwierdziła, że jest to problem występujący w produktach firmy Microsoft wymienionych w sekcji "dotyczy".