Udostępnij za pośrednictwem


Wstrzymywanie bazy danych dostępności (SQL Server)

Dotyczy:programu SQL Server

Bazę danych dostępności w grupach dostępności Always On można zawiesić za pomocą programu SQL Server Management Studio, języka Transact-SQL lub PowerShell w SQL Server. Należy pamiętać, że polecenie wstrzymania musi zostać wydane na instancji serwera, która hostuje bazę danych, aby zostało zawieszone lub wznowione.

Efekt wstrzymania polecenia zależy od tego, czy zawieszasz pomocniczą bazę danych, czy podstawową bazę danych w następujący sposób:

Zawieszona baza danych Efekt wstrzymania polecenia
Pomocnicza baza danych Tylko lokalna pomocnicza baza danych jest zawieszona, a jej stan synchronizacji nie jest synchronizowany. Nie ma to wpływu na inne pomocnicze bazy danych. Zawieszona baza danych przestaje odbierać i stosować dane (rekordy dziennika) i zaczyna pozostawać w tyle za główną bazą danych. Istniejące połączenia w możliwym do odczytu pomocniczym pozostają użyteczne. Nowe połączenia z zawieszoną bazą danych w pomocniczej wersji z możliwością odczytu są niedozwolone do czasu wznowienia przenoszenia danych. To zachowanie ma zastosowanie tylko wtedy, gdy połączenia są otwierane przy użyciu nasłuchiwacza i trasowania tylko do odczytu.

Podstawowa baza danych pozostaje dostępna. Jeśli zawiesisz każdą z odpowiednich pomocniczych baz danych, podstawowa baza danych zostanie udostępniona.

** Ważne ** Podczas gdy pomocnicza baza danych jest zawieszona, kolejka wysyłkowa odpowiadającej bazy danych głównej będzie gromadzić nie wysłane rekordy dziennika transakcji. Połączenia z repliką wtórną zwracają dane, które były dostępne w momencie wstrzymania ruchu danych.
Podstawowa baza danych Podstawowa baza danych zatrzymuje przenoszenie danych do każdej połączonej pomocniczej bazy danych. Podstawowa baza danych nadal działa w trybie dostępnym. Podstawowa baza danych pozostaje dostępna dla klientów, a istniejące połączenia w wersji pomocniczej z możliwością odczytu pozostają użyteczne, i można nawiązywać nowe połączenia.

Notatka

Wstrzymanie pomocniczej bazy danych Zawsze włączone nie ma bezpośredniego wpływu na dostępność podstawowej bazy danych. Jednak zawieszenie pomocniczej bazy danych może mieć wpływ na nadmiarowość i możliwości trybu failover dla podstawowej bazy danych. Jest to w przeciwieństwie do dublowania bazy danych, gdzie stan dublowania jest zawieszony zarówno w dublowanej bazie danych, jak i głównej bazie danych. Wstrzymanie podstawowej bazy danych Always On zawiesza przenoszenie danych na wszystkich odpowiednich pomocniczych bazach danych, a nadmiarowość i możliwości trybu failover przestaną działać dla tej bazy danych do momentu wznowienia podstawowej bazy danych.

Przed rozpoczęciem

Ograniczenia i ograniczenia

Polecenie SUSPEND jest zwracane natychmiast po zaakceptowaniu przez replikę hostujących docelową bazę danych, ale faktycznie zawieszanie bazy danych odbywa się asynchronicznie.

Warunki wstępne

Musisz mieć połączenie z wystąpieniem serwera hostujące bazę danych, którą chcesz zawiesić. Aby zawiesić podstawową bazę danych i odpowiednie pomocnicze bazy danych, połącz się z wystąpieniem serwera hostujące replikę podstawową. Aby zawiesić pomocniczą bazę danych, pozostawiając podstawową bazę danych dostępną, połącz się z repliką pomocniczą.

Zalecenia

Podczas występowania wąskich gardeł zawieszenie jednej lub więcej wtórnych baz danych na krótko może być przydatne, aby tymczasowo zwiększyć wydajność repliki głównej. Dopóki pomocnicza baza danych pozostanie zawieszona, nie można obcinać dziennika transakcji odpowiadającej podstawowej bazy danych. Powoduje to gromadzenie rekordów dziennika w podstawowej bazie danych. Dlatego zalecamy szybkie wznowienie lub usunięcie wstrzymanej pomocniczej bazy danych. Aby uzyskać więcej informacji, zobacz Kontynuacja: Unikanie pełnego dziennika transakcji, w dalszej części tego tematu.

Bezpieczeństwo

Uprawnienia

Wymaga uprawnienia ALTER w bazie danych.

Wymaga uprawnienia ALTER AVAILABILITY GROUP w grupie dostępności, uprawnienia CONTROL AVAILABILITY GROUP, uprawnienia ALTER ANY AVAILABILITY GROUP lub uprawnienia CONTROL SERVER.

Korzystanie z programu SQL Server Management Studio

Aby zawiesić bazę danych

  1. W Eksploratorze obiektów połącz się z wystąpieniem serwera hostujące replikę dostępności, na której chcesz zawiesić bazę danych, i rozwiń drzewo serwerów. Aby uzyskać więcej informacji, zobacz Prerequisites, we wcześniejszej części tego tematu.

  2. Rozwiń węzeł Zawsze Włączona Wysoka Dostępność i węzeł Grupy Dostępności.

  3. Rozwiń grupę dostępności.

  4. Rozwiń węzeł Bazy Danych Dostępności, kliknij prawym przyciskiem myszy bazę danych, a następnie kliknij Wstrzymaj Przenoszenie Danych.

  5. W oknie dialogowym Wstrzymaj przenoszenie danych kliknij przycisk OK.

    Eksplorator obiektów wskazuje, że baza danych jest zawieszona przez zmianę ikony bazy danych w celu wyświetlenia wskaźnika wstrzymania.

Nota

Aby zawiesić dodatkowe bazy danych w tej lokalizacji repliki, powtórz kroki 4 i 5 dla każdej bazy danych.

Korzystanie z Transact-SQL

Aby zawiesić bazę danych

  1. Nawiąż połączenie z instancją serwera hostującego replikę, której baza danych ma zostać zawieszona. Aby uzyskać więcej informacji, zobacz Prerequisites, we wcześniejszej części tego tematu.

  2. Wstrzymaj bazę danych, używając następującej instrukcji ALTER DATABASE:

    ALTER DATABASE database_name SET HADR SUSPEND;

Korzystanie z programu PowerShell

Aby zawiesić bazę danych

  1. Zmień katalog (cd) na instancję serwera, która hostuje replikę bazy danych, którą chcesz zawiesić. Aby uzyskać więcej informacji, zobacz Prerequisites, we wcześniejszej części tego tematu.

  2. Użyj polecenia cmdlet Suspend-SqlAvailabilityDatabase, aby zawiesić grupę dostępności.

    Na przykład następujące polecenie zawiesza synchronizację dla bazy danych dostępności MyDb3 w grupie dostępności MyAg na wystąpieniu serwera o nazwie Computer\Instance.

    Suspend-SqlAvailabilityDatabase `   
    -Path SQLSERVER:\Sql\Computer\Instance\AvailabilityGroups\MyAg\AvailabilityDatabases\MyDb3  
    

    Nota

    Aby wyświetlić składnię polecenia cmdlet, użyj polecenia cmdlet Get-Help w środowisku PowerShell programu SQL Server. Aby uzyskać więcej informacji, zobacz Get Help SQL Server PowerShell.

Aby skonfigurować i użyć dostawcy PowerShell SQL Server

Śledzenie: unikanie zapełnienia dziennika transakcji

Zwykle, gdy automatyczny punkt kontrolny jest wykonywany w bazie danych, jego dziennik transakcji jest obcięty do tego punktu kontrolnego po następnej kopii zapasowej dziennika. Jednak gdy pomocnicza baza danych jest zawieszona, wszystkie bieżące rekordy dziennika pozostają aktywne w podstawowej bazie danych. Jeśli dziennik transakcji się zapełni (przypadku, gdy osiągnie maksymalny rozmiar lub zabraknie miejsca na wystąpieniu serwera), baza danych nie może wykonać żadnych kolejnych aktualizacji.

Aby uniknąć tego problemu, należy wykonać jedną z następujących czynności:

Aby rozwiązać problemy z pełnym dziennikiem transakcji

Powiązane zadania

  • wznawianie bazy danych dostępności (SQL Server)

Zobacz też

omówienie zawsze włączonych grup dostępności (SQL Server)
Wznawianie bazy danych dostępności (SQL Server)