Przejdź do głównej zawartości
Pomoc techniczna
Zaloguj się przy użyciu konta Microsoft
Zaloguj się lub utwórz konto.
Witaj,
Wybierz inne konto.
Masz wiele kont
Wybierz konto, za pomocą którego chcesz się zalogować.

Symptomy

Rozpatrzmy następujący scenariusz:

  • Korzystasz z programu Microsoft SQL Server 2014 lub Microsoft SQL Server 2012 z dodatkiem Service Pack 2 (SP2) na serwerze obsługującym replikę pomocniczą grupy dostępności w ramach uaktualnienia stopniowego.

  • Do instalacji programu SQL Server została zastosowana jedna z następujących aktualizacji:

    • SQL Server 2014 — Zbiorcza aktualizacja 5

    • SQL Server 2012 z dodatkiem Service Pack 2 aktualizacja zbiorcza 4

    • SQL Server 2012 z dodatkiem Service Pack 2 aktualizacja zbiorcza 3

    Ważne Poprawka opisana w tym artykule zastępuje te zbiorcze aktualizacje. Nie instaluj tych aktualizacji, jeśli jeszcze tego nie zrobiono.

  • Aby zakończyć instalowanie aktualizacji zbiorczej, ponownie uruchom tę replikę pomocniczą.

  • Nastąpi przejęcie awaryjne grupy dostępności, która przeniesie zaktualizowaną replikę pomocniczą do roli głównej.

W tym scenariuszu na serwerze, na którym jest uruchomiony program SQL Server i jest obecnie obsługiwana podstawowa replika grupy dostępności, może wystąpić jeden lub więcej z następujących objawów:

  • Repliki pomocnicze są zgłaszane jako "nie Synchronizuj".

  • Podczas wykonywania kwerend sys.dm_exec_requests można zauważyć sporadyczne blokowanie między sesjami użytkowników i sesją, której polecenie jest zgłaszane jako "DB_STARTUP". Możesz też zauważyć blokowanie między punktami kontrolnymi a poleceniami DB_STARTUP .

  • W dzienniku błędów programu SQL Server są zgłaszane zakleszczenia obejmujące sesję odzyskaną w jednej z baz danych dostępności. Te dzienniki są podobne do następujących: <date/time> spid<xx> Recovery is writing a checkpoint in database <dbname/dbid>. This isan informational message only. No user action is required.<date/time> spid<xx> Recovery completed for database <dbname/dbid> in <x> second(s) (analysis<x> ms, redo <x> ms, undo <x> ms.) This is an informational message only. No user action is required.…<date/time> spid<xx> Error: 1205, Severity: 13, State: 28.<date/time> spid<xx> Transaction (Process ID <xx>) was deadlocked on lock resources with anotherprocess and has been chosen as the deadlock victim. Rerun the transaction.

  • Jeśli baza danych dostępności jest włączona dla brokera usług programu Microsoft SQL Server, wiadomości w bazie danych dostępności mogą nie być przetwarzane pomyślnie. Po uruchomieniu narzędzia Śledzenie profilera, a następnie przechwyceniu zdarzenia "Broker: Message sklasyfikować" jest przechwytywane następujące zdarzenie:

    9791, Broker jest wyłączony w bazie danych nadawcy

Uwaga Nie jest to problem systematyczny. Możesz zastosować te aktualizacje skumulowane w konfiguracji funkcji AlwaysOn bez występowania tego problemu. Jeśli te zbiorcze aktualizacje zostały już zastosowane, a nie zauważysz tego problemu, system nie jest narażony i te informacje nie mają zastosowania do Ciebie.

Przyczyna

Ten problem występuje, ponieważ sytuacja wyścigu zdarza się czasami między wątkami systemowymi a połączeniami użytkowników. Uniemożliwia to logikę poprawek aktualizacji zbiorczej przed uzyskaniem blokad, które są wymagane do ukończenia procesu aktualizacji.

Rozwiązanie

Aby rozwiązać ten problem, zastosuj następującą krytyczną poprawkę na żądanie (COD) :

3034679 Poprawka: zawsze włączone można zgłosić niesynchronizowane grupy dostępnościWażne Musisz zastosować tę poprawkę w wersji ChZT zamiast następujących aktualizacji zbiorczych:

  • SQL Server 2014 — Zbiorcza aktualizacja 5

  • SQL Server 2012 z dodatkiem Service Pack 2 aktualizacja zbiorcza 4

  • SQL Server 2012 z dodatkiem Service Pack 2 aktualizacja zbiorcza 3

Uwaga Jeśli te aktualizacje zbiorcze zostały już zastosowane, w celu rozwiązania tego problemu należy wykonać następujące czynności.

Obejście

Ponieważ ten problem jest spowodowany przez rywalizację między sesją użytkownika a sesją uaktualnienia do bazy danych dostępności, gdy bazy danych są przenoszone do roli podstawowej, należy wyeliminować tę rywalizację, aby umożliwić odzyskiwanie baz danych z tego stanu. Aby obejść ten problem, wykonaj następujące czynności:

  1. Wypróbuj następujące metody w podanej kolejności.

    Metoda 1: eliminowanie dostępu do bazy danychJeśli w bazach danych występują objawy wymienione w sekcji "Symptomy", należy użyć jednej lub obu poniższych czynności, aby wyeliminować warunek blokowania blokowania:

    • Sys.dm_exec_requests zapytań, aby zlokalizować sesje, w których występuje blokada blokowania w bazach danych dostępności. Zakończ te sesje za pomocą instrukcji Kill .

    • Wyłączanie lub zatrzymywanie aplikacji, która uzyskuje dostęp do baz danych dostępności.

    Jeśli metoda 1 nie rozwiązała problemu, przejdź do metody 2.

    Metoda 2: ponowne uruchamianie serwera hosta programu SQL ServerGdy dostęp do aplikacji i dostęp użytkownika są nadal wyłączone, uruchom ponownie wystąpienie programu SQL Server, w którym znajdują się bazy danych dostępności, których dotyczy problem. W tym celu wykonaj następujące czynności:

    1. Wyłącz automatyczną pracę awaryjną grupy dostępności.

    2. Uruchom ponownie wystąpienie, którego dotyczy problem programu SQL Server, w którym jest obsługiwana replika podstawowa.

    3. Włączanie automatycznej pracy awaryjnej grupy dostępności.

  2. Gdy odzyskane bazy danych odzyskają całkowicie, ponownie Ustanów połączenie z aplikacją i użytkownikami.

Stan

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

Informacje

Aby uzyskać więcej informacji na temat aktualizacji skumulowanych, których dotyczy ten problem, zobacz następujące artykuły z bazy wiedzy Microsoft Knowledge Base:

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ą.

Czy te informacje były pomocne?

Jaka jest jakość języka?
Co wpłynęło na Twoje wrażenia?
Jeśli naciśniesz pozycję „Wyślij”, Twoja opinia zostanie użyta do ulepszania produktów i usług firmy Microsoft. Twój administrator IT będzie mógł gromadzić te dane. Oświadczenie o ochronie prywatności.

Dziękujemy za opinię!

×