Udostępnij za pośrednictwem


Possible Failures During Database Mirroring

Fizyczne, systemu operacyjnego lub SQL Server problemy mogą powodować uszkodzenia dublowanie bazy danych sesja. Dublowanie bazy danych nie regularnie sprawdza składniki, na którym opiera się Sqlservr.exe aby sprawdzić, czy działają poprawnie lub nie powiodło się.Jednak w przypadku niektórych typów błędów do składnika podlegającego usterce zgłasza błąd Sqlservr.exe.Nazywa się błędu zgłoszonego przez inny składnik poważny błąd.Aby wykryć inne błędów, które w przeciwnym razie może przejść niezauważona, dublowanie bazy danych implementuje własny mechanizm limitu czas.Podczas dublowania, limit czas wystąpienia dublowanie bazy danych zakłada się, że błąd wystąpił i deklaruje Błąd podczas miękkiego.

Important noteImportant Note:

Błędy w bazach danych innych niż dublowane bazy danych nie są wykrywalne dublowanie sesja bazy danych.Ponadto danych awarii dysku jest mało prawdopodobne, aby wykryte, chyba że baza danych zostanie ponownie uruchomiony z powodu awarii dysku danych.

Szybkość wykrywanie błędów i, w związku z tym czas reakcji na uszkodzenia, dublowanie sesja zależy od tego, czy błąd jest twarde lub miękkie.Twardy błędy, takie jak błędy sieciowe są raportowane natychmiast.Jednak w niektórych przypadkach okresy limitu czasu specyficznych dla składnika czas można zgłoszenie twardego błędy.Błędy programowe długość okresu limitu czas dublowanie określa szybkość wykrywania błędów.Domyślnie okres ten wynosi 10 sekund.Jest to zalecane wartości minimalnej.

Awarie ze względu na twardy błędy

Możliwe przyczyny błędów twardym obejmuje (ale nie są ograniczone) następujące warunki:

  • Połączenie przerwane lub przewodowy

  • Karta sieciowa zły

  • Zmiana routera

  • Zmiany w zaporze

  • Zmiana konfiguracji punktu końcowego

  • Utrata dysku, na którym znajduje się dziennik transakcji

  • System operacyjny lub awarii procesu

Na przykład gdy dysk dziennika główna baza danych przestaje odpowiadać i nie powiedzie się, system operacyjny informuje Sqlservr.exe wystąpił poważny błąd.

Niektóre składniki, takie jak składniki sieci i niektóre podsystemy We/Wy, mają swoje własne limity czas do określenia błędów.Te limity czas są niezależne od dublowanie bazy danych, które zna nie z nich i nie rozpoznaje całkowicie ich zachowanie.W takich przypadkach limitu czasu zwłoki wydłuża czas pomiędzy awarią i dublowanie bazy danych wyświetlany wynikowy poważny błąd.

Uwaga

Sprawdzanie tylko aktywnych błędów wykonanych w celu dublowanie bazy danych występuje w przypadku błędu słabe.Aby uzyskać więcej informacji zobacz "" błędy spowodowane soft błędy"w dalszej części tego tematu.

Aby pomóc w interpretacji warunki wystąpienia błędu, pojawiających się w sieci, należy zadać inżynier sieci, jakie komunikaty o błędach są wysyłane do portu, gdy wystąpią następujące zdarzenia dla połączenia protokołu TCP:

  • Serwer DNS nie działa.

  • Kable są odłączone.

  • Microsoft System Windows ma zaporę blokującą określonego portu.

  • Aplikacja, która monitoruje port kończy się niepowodzeniem.

  • Nazwa jest zmieniana na serwerze z systemem Windows.

  • Nastąpi ponowny rozruch serwera z systemem Windows.

Uwaga

Dublowanie nie chroni przed problemami specyficzne dla klient, dostęp do serwerów.Na przykład należy wziąć pod uwagę przypadek, w którym karty sieci publicznej obsługuje połączenia klient w wystąpieniu serwer główny, podczas gdy karty interfejs sieci prywatnej obsługuje wszystkie dublowanie ruch między wystąpień serwera.W takim przypadek awaria karty sieci publicznej może uniemożliwić klientom dostęp do bazy danych, chociaż bazy danych będzie nadal być dublowane.

Awarie ze względu na błędy programowe

Warunki, które mogą spowodować dublowanie limity czas obejmują (ale nie są ograniczone) następujących czynności:

  • Sieci błędy, takie jak protokół TCP łączy limity czas, pakietów porzuconych lub uszkodzony lub pakietów, które są w nieprawidłowej kolejności.

  • System operacyjny wiszące, serwer lub stanu bazy danych.

  • Czas serwera Windows limit.

  • Za mało zasobów komputerowych, takich jak PROCESOR lub dysk na przeciążenie, dziennik transakcji wypełniania, lub system działa pamięć lub wątków.W takim przypadku należy zwiększyć limit czas, zmniejszenia obciążenia lub zmienić sprzętu do obsługi obciążenia.

Mechanizm czas-Out mechanizmu

Ponieważ błędy programowe nie są wykrywalne bezpośrednio przez wystąpienie serwera, błąd miękkie potencjalnie może spowodować wystąpienie serwera czekać w nieskończoność.Aby temu zapobiec, dublowanie bazy danych implementuje własny mechanizm limitu czas, oparte na każde wystąpienie serwera w sesja dublowania wysyła się ping dla każdego otwartego połączenia w stałych odstępach czas.

Aby połączenie było otwarte, wystąpienie serwera musi otrzymać ping w związku z tym w okresie limitu czasu zdefiniowanym plus czas wymagany do wysyłania jeden ping więcej.Odbieranie ping w okresie limitu czas wskazuje, czy połączenie jest wciąż otwarty i że wystąpienia serwera komunikują się nad nim.Po otrzymaniu pingowanie, wystąpienie serwera powoduje zresetowanie licznika jego limit czas dla tego połączenia.

Jeśli ping nie zostanie odebrany w danym połączeniu w okresie limitu czas, wystąpienie serwera uważa połączenie upłynął limit czas.Wystąpienie serwera powoduje zamknięcie połączenia o przekroczonym limicie czas i obsługuje zdarzenie przekroczenia limitu czas, stanu i tryb działania w sesja.

Nawet wtedy, gdy inny serwer rzeczywiście jest poprawnie postępowania, limit czas jest uważana za błąd.Jeśli wartość limitu czas dla sesja jest zbyt krótki na regularne elastyczność albo partner, fałszywe awarie mogą wystąpić.Fałszywe błąd występuje wówczas, gdy jedno wystąpienie serwera pomyślnie kontaktuje się inny, którego czas odpowiedzi jest tak powolne, że jego polecenia ping nie są odbierane wygaśnięcia limit czasu dla okresu.

W trybie wysokiej wydajności sesjach limit czas jest zawsze 10 sekund.Na ogół jest za mało w celu uniknięcia fałszywe awarie.W trybie wysokiego bezpieczeństwa sesji domyślny limit czasu wynosi 10 sekund, ale można zmienić czas trwania.Aby uniknąć fałszywe awarie, zaleca się, że dublowanie limit czas zawsze być 10 sekund lub więcej.

Aby zmienić wartość limitu czas (tylko w trybie wysokiego bezpieczeństwa).

Aby wyświetlić bieżącą wartość limitu czas

Odpowiadanie na błąd

Niezależnie od typu błędu wystąpienie serwera, które wykryje błąd reaguje na, odpowiednio na podstawie roli wystąpienia, tryb działania w sesja i stan inne połączenia w sesja.Aby uzyskać informacje na temat występujące na utratę partner zobacz Synchronous Database Mirroring (High-Safety Mode) lub Asynchronous Database Mirroring (High-Performance Mode).