Automatyczna naprawa strony podczas sesji dublowania bazy danych

Począwszy od SQL Server 2008, baza danych, dublowanie partner próbuje automatycznie odzyskać uszkodzone strona na duplikat bazy danych przez przetłumaczenie niektórych rodzajów błędów uniemożliwiających odczytywania strona danych.partner, który nie może odczytać strona żąda kopii świeże od partner.Jeśli to żądanie powiedzie się, strona można odczytać zastępuje kopii, którą zwykle usuwa błąd.

Ostrzeżenie

Strona automatyczna naprawa przez partnerzy dublowanie bazy danych różni się od DBCC naprawy.Wszystkie dane są zachowywane przez strona automatycznej naprawy.Natomiast poprawianie błędów przy użyciu opcji DBCC REPAIR_ALLOW_DATA_LOSS może wymagać niektórych stron i dlatego dane, można usunąć.

Typy błędów, które powodują automatyczne próba naprawy strony

Dublowanie strona automatyczna naprawa bazy danych próbuje naprawić tylko strony w pliku danych powiodła operacji dla jednego błędów wymienionych w poniższej tabela.

Numer błędu

Opis

Próba wystąpień, które powodują automatyczne naprawianie strona

823

Jest podjąć tylko wtedy, gdy system operacyjny wykonywane wyboru cyklicznej kontroli redundancji (CRC), który nie powiodło się na danych.

ERROR_CRC.Wartość systemu operacyjnego dla tego błędu jest 23.

824

Błędy logiczne.

Błędy logiczne dane, takie jak poszarpane zapisu lub suma kontrolna złą strona.

829

strona zostało oznaczone jako przywracanie oczekujące.

Wszystkie.

Aby wyświetlić ostatnie 823 błędów CRC i 824 błędów, zobacz suspect_pages tabela w msdb bazy danych.

Strona typów że nie można automatycznie naprawić

Następujące typy formantu strona nie można naprawić przez dublowanie bazy danych:

  • Strona nagłówka pliku (identyfikator strony 0).

  • Strona 9 (strona bazy danych rozruchu).

  • Podział strony: Globalne strony mapy alokacji (GAM), stron udostępniona mapa alokacji globalne (SGAM) i strony wolnego miejsca na stronie (PFS).

Obsługa błędów We/Wy na głównej bazy danych

Na dublowana baza danych, tylko wtedy, gdy węzeł jest w stanie SYNCHRONIZED i serwer dublowany nadal jest wysyłany do serwera dublowanie rekordów dziennika zostanie podjęta próba strona automatycznej naprawy.Podstawowe sekwencji akcji w próbę automatycznej naprawy strona są następujące:

  1. Gdy wystąpi błąd odczytu strona dublowana baza danych, serwer dublowany wstawia wiersz w suspect_pages tabela zawierającej odpowiedni stan błędu.serwer dublowany żąda następnie kopię strona z serwer duplikatu.Żądanie określa identyfikator strona i LSN, który jest aktualnie na końcu opróżniania buforów dziennika.Strona jest oznaczony jako przywracanie oczekujące.Dzięki temu niedostępny podczas próby automatycznej naprawy strona.Próby dostępu do tej strona podczas próby naprawy zakończy się niepowodzeniem z błędem 829 (przywracanie oczekujące).

  2. Po otrzymaniu żądania strona, serwer duplikatu czeka, aż go zostało ponowione dziennika do LSN określona w żądaniu.Następnie serwer duplikatu próbuje uzyskać dostęp strona duplikat bazy danych.Jeśli strona jest możliwy, serwer duplikatu wysyła kopię strony do serwer dublowany.W przeciwnym wypadku serwer duplikatu zwraca błąd, serwer dublowany i automatycznej naprawy strona próba nie powiedzie się.

  3. serwer dublowany przetwarza odpowiedź, która zawiera świeżą kopię strona.

  4. Po próba automatycznego naprawiania strony rozwiązuje podejrzanych strony, strona jest oznaczony w suspect_pages tabela, jak przywrócić (event_type = 4).

  5. Jeśli strona błędu We/Wy spowodowane dowolnego odroczonych transakcji, po naprawieniu strona, serwer dublowany próbuje rozpoznać tych transakcji.

Obsługa błędów We/Wy dublowania bazy danych

Błędy We/Wy na stronach dane występujące w duplikat bazy danych są obsługiwane w następujący sposób.

  1. Jeśli serwer duplikatu napotka błędy We/Wy strona podczas jej ponawia rekordu dziennika, dublowanie sesja wchodzi w stan zawieszone.W tym momencie serwer duplikatu wstawia wiersz w suspect_pages tabela zawierającej odpowiedni stan błędu.Następnie serwer duplikatu żąda kopię strona z serwer dublowany.

  2. serwer dublowany próbuje uzyskać dostęp do strona dublowana baza danych.Jeśli strona jest możliwy, serwer dublowany wysyła kopię strona serwer lustrzany.

  3. Jeśli serwer duplikatu otrzymuje kopie każdej strona, na wniosek, serwer duplikatu próbuje wznowić sesja dublowanie.Jeśli próba automatycznego naprawiania strony rozwiązuje podejrzanych strony, strona jest oznaczony w suspect_pages tabela, jak przywrócić (event_type = 4).

    Jeśli serwer duplikatu nie odbierze strona, która zwróciła się z serwer dublowany nie powiedzie się próba automatycznego naprawiania stron i dublowanie pozostaje sesja zawieszone.Jeśli ręcznie wznowienia sesja dublowanie uszkodzonych stron będzie trafień ponownie w fazie synchronizacji.

Najlepiej Developer

Strona automatyczna naprawa jest asynchroniczne proces, który działa w tle.Dlatego nawet dla dublowanego bazy danych, operacji bazy danych, która żąda strona nieczytelny nie powiedzie się i zwraca kod błędu dla dowolnego warunku spowodował błąd.Podczas tworzenia aplikacji dla dublowanego bazy danych, należy przechwycić wyjątki dla operacji nie powiodło się.Jeśli SQL Server Kod błędu jest 823, 824 lub 829, należy ponowić operację później.