Dotyczy
SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Enterprise Core - duplicate (do not use) SQL Server 2014 Enterprise Core - duplicate (do not use) SQL Server 2012 Enterprise SQL Server 2012 Developer SQL Server 2012 Enterprise Core

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.