Symptomy
Rozpatrzmy następujący scenariusz:
-
Używasz programu Microsoft SQL Server 2012 lub SQL Server 2014.
-
W replice podstawowej jest włączona baza danych z obsługą brokera usług.
-
Wykonywanie kopii zapasowej bazy danych na serwerze podstawowym z włączonym brokerem usług i przywracanie go na serwerze pomocniczym.
-
W ramach definiowania grupy dostępności na serwerach podstawowych i pomocniczych użytkownik usiłuje dołączyć bazę danych do grupy dostępności przy użyciu Kreatora nowej grupy dostępności lub polecenia: ALTER DATABASE <dbname> SET HADR Availability group = <agname>
W tym scenariuszu w dzienniku błędów programu SQL Server jest rejestrowany następujący błąd:
{Błąd: 3449; ważność: 21; stan: 1. program SQL Server musi zostać zamknięty w celu odzyskania bazy danych (identyfikator bazy danych 1). Baza danych jest albo bazą danych użytkownika, której nie można zamknąć, ani systemowej bazy danych. Uruchom ponownie program SQL Server. Jeśli nie uda się odzyskać bazy danych po przeprowadzeniu innej funkcji uruchamiania, naprawianie lub restoreSQL śledzenia z powodu wyłączenia serwera. Identyfikator śledzenia = ' 1 '. Jest to tylko wiadomość informacyjna; nie jest wymagane wykonanie jakiejkolwiek czynności przez użytkownika.}
Przyczyna
Ten problem występuje, ponieważ w przypadku wykonywania kopii zapasowej bazy danych z obsługą brokera usług i przywracania jej na serwerze pomocniczym nie włączono programu Service Broker w przywróconej bazie danych. Baza danych nadal zachowuje identyfikator brokera usług wewnętrznie. Po dodaniu przywróconej bazy danych na serwerze pomocniczym do grupy dostępności jest włączony Broker usług. Wykryto ten sam identyfikator GUID bazy danych dostępności, a wystąpił następujący błąd (cichy): 9772 "Broker usług w bazie danych"<dbname>"nie można włączyć, ponieważ istnieje już włączony Broker usług o tym samym identyfikatorze". Spowoduje to błąd 3449, ponieważ baza danych jest dołączana do grupy dostępności i powoduje nieoczekiwane zamknięcie programu SQL Server.
Rozwiązanie
Ten problem został po raz pierwszy rozwiązany w poniższej zbiorczej aktualizacji programu SQL Server.
Zbiorcza aktualizacja 1 dla programu SQL Server 2014 /en-us/help/2931693
Zbiorcza aktualizacja 9 dla programu SQL Server 2012 z dodatkiem SP1 /en-us/help/2931078
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:
Stan
Firma Microsoft potwierdziła, że jest to problem występujący w produktach firmy Microsoft wymienionych w sekcji "dotyczy".