ALTER DATABASE (Transact-SQL) SET HADR

Dotyczy:SQL Server

Ten temat zawiera składnię ALTER DATABASE ustawiania opcji grup dostępności Always On w drugorzędnej bazie danych. Dozwolona jest tylko jedna SET HADR opcja na każde ALTER DATABASE oświadczenie. Opcje te są obsługiwane tylko w replikach wtórnych.

Transact-SQL konwencje składni

Składnia

ALTER DATABASE database_name  
   SET HADR   
   {  
        { AVAILABILITY GROUP = group_name | OFF }  
   | { SUSPEND | RESUME }  
   }  
[;]  

Arguments

database_name
To nazwa drugiej bazy danych, która ma zostać zmodyfikowana.

SET HADR
Wykonuje określone polecenie Always On availability groups na określonej bazie danych.

{ AVAILABILITY GROUP=group_name | WYŁĄCZ }
Dołącza lub usuwa bazę danych dostępności z określonej grupy dostępności, w następujący sposób:

group_name
Dołącza do określonej bazy danych na wtórnej replice, hostowanej przez instancję serwera, na której wykonujesz polecenie, do grupy dostępności określonej przez group_name.

Warunki wstępne do tej operacji są następujące:

  • Baza danych musi już zostać dodana do grupy dostępności na podstawowej repliki.

  • Podstawowa replika musi być aktywna. Aby uzyskać informacje o tym, jak rozwiązywać problemy z nieaktywną repliką podstawową, zobacz Troubleshooting Always On Availability Groups Configuration (SQL Server).

  • Replika główna musi być online, a replika wtórna musi być połączona z repliką pierwotną.

  • Baza bazowa wtórna musi zostać przywrócona za pomocą WITH NORECOVERY z ostatnich kopii baz danych i logów bazy głównej, kończąc się na kopii zapasowej logów wystarczająco aktualnej, by umożliwić wtórnej bazie danych dogonić bazę pierwotną.

    Uwaga / Notatka

    Aby dodać bazę danych do grupy dostępności, połącz się z instancją serwera, która hostuje główną replikę, i użyj ALTER AVAILABILITY GROUPgroup_name ADD DATABASEdatabase_name .

Aby uzyskać więcej informacji, zobacz Dołączanie pomocniczej bazy danych do grupy dostępności (SQL Server).

OFF
Usuwa określoną bazę danych wtórną z grupy dostępności.

Usunięcie bazy danych drugorzędnej może być przydatne, jeśli znacznie odstaje od bazy głównej i nie chcesz czekać, aż baza dodatkowa nadrobi zaległości. Po usunięciu bazy wtórnej możesz ją zaktualizować, przywracając sekwencję kopii zapasowych kończącą się ostatnią kopią zapasową logów (używając RESTORE ... Z NORECOVERY).

Important

Aby całkowicie usunąć bazę danych dostępności z grupy dostępności, połącz się z instancją serwera, która hostuje główną replikę, i użyj ALTER AVAILABILITY GROUP polecenia group_name REMOVE DATABASEavailability_database_name. Więcej informacji można znaleźć w artykule Usuń podstawową bazę danych z grupy dostępności (SQL Server).

SUSPEND
Zawiesza ruch danych w bazie wtórnej. Polecenie SUSPEND jest zwracane natychmiast po zaakceptowaniu przez replikę hostujących docelową bazę danych, ale faktycznie zawieszanie bazy danych odbywa się asynchronicznie.

Zakres wpływu zależy od miejsca, w którym wykonasz ALTER DATABASE oświadczenie:

  • Jeśli zawiesz bazę danych wtórną na repliki wtórnej, zawieszona jest tylko lokalna baza bazy wtórna. 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.

  • Jeśli zawiesz bazę danych na repliki pierwotnej, ruch danych jest zawieszony do odpowiadających baz danych na każdej repliki wtórnej. Istniejące połączenia na czytelnym wtórnym pozostają użyteczne, a nowe połączenia z intencją odczytu nie będą łączone z odczytywalnymi replikami wtórnymi.

  • Gdy ruch danych zostaje zawieszony z powodu wymuszonego ręcznego przełączania awaryjnego, połączenia z nową repliką wtórną nie są dozwolone, a ruch danych jest zawieszony.

Gdy baza danych na repliki wtórnej zostaje zawieszona, zarówno baza, jak i replika stają się niezsynchronizowane i są oznaczone jako NIEZSYNCHRONIZOWANE.

Important

Podczas gdy baza danych drugorzędna jest zawieszona, kolejka wysyłania odpowiadającej głównej bazy danych gromadzi niewysłane rejestry transakcyjne. Połączenia z repliką wtórną zwracają dane, które były dostępne w momencie wstrzymania ruchu danych.

Uwaga / Notatka

Zawieszenie i wznowienie stale włączonej bazy wtórnej nie wpływa bezpośrednio na dostępność bazy głównej, choć zawieszenie bazy wtórnej może wpłynąć na redundancję i możliwości awaryjnego bazy głównej, dopóki zawieszona baza wtórna nie zostanie wznowiona. Jest to w przeciwieństwie do dublowania bazy danych, gdzie stan dublowania jest zawieszony zarówno na dublowanej bazie danych, jak i głównej bazie danych do momentu wznowienia dublowania. Wstrzymanie głównej bazy danych Always On zawiesza przenoszenie danych na wszystkich odpowiednich pomocniczych bazach danych, a nadmiarowość i funkcje przełączania awaryjnego przestaną działać dla tej głównej bazy danych do momentu wznowienia jej działania.

Więcej informacji można znaleźć w artykule Suspend an Availability Database (SQL Server).

RESUME
Wznawia wstrzymany ruch danych na określonej bazie danych wtórnej. Polecenie RESUME jest zwracane natychmiast po zaakceptowaniu przez replikę, która hostuje docelową bazę danych, ale faktycznie wznawianie bazy danych odbywa się asynchronicznie.

Zakres wpływu zależy od miejsca, w którym wykonasz ALTER DATABASE oświadczenie:

  • Jeśli wznowisz bazę wtórną na wtórnej replice, wznawiasz tylko lokalną bazę wtórną. Ruch danych jest wznawiany, chyba że baza danych została również zawieszona na podstawowej replice.

  • Jeśli wznowisz bazę danych na repliki pierwotnej, przesyłanie danych jest wznawiane do każdej wtórnej repliki, na której odpowiadająca baza bazy nie została również lokalnie zawieszona. Aby wznowić bazę danych wtórnych, która była indywidualnie zawieszona na repliki wtórnej, połącz się z instancją serwera, która hostuje replikę wtórną i wznow tam bazę danych.

    W trybie synchronous-commit stan bazy danych zmienia się na SYNCHRONIZING. Jeśli żadna inna baza danych nie jest obecnie zawieszona, stan repliki również zmienia się na SYNCHRONIZACJĘ.

    Aby uzyskać więcej informacji, zobacz Wznowienie bazy danych dostępności (SQL Server).

Stany bazy danych

Gdy baza wtórna jest dołączana do grupy dostępności, lokalna replika wtórna zmienia stan tej wtórnej bazy z RESTORING na ONLINE. Jeśli wtórna baza danych zostanie usunięta z grupy dostępności, lokalna replika wtórna przywraca ją do stanu PRZYWRACANIA. Pozwala to na wykonywanie kolejnych kopii zapasowych logów z bazy głównej do tej drugiej bazy.

Restrictions

Wykonuj ALTER DATABASE wyciągi poza transakcjami i partiami.

Zabezpieczenia

Permissions

Wymaga uprawnienia ALTER w bazie danych. Dołączenie bazy danych do grupy dostępności wymaga członkostwa w roli db_owner stałej bazy danych.

Examples

Poniższy przykład łączy pomocniczą bazę danych , AccountsDb1z lokalną repliką pomocniczą AccountsAG grupy dostępności.

ALTER DATABASE AccountsDb1 SET HADR AVAILABILITY GROUP = AccountsAG;  

Uwaga / Notatka

Aby wyświetlić tę instrukcję Transact-SQL używaną w kontekście, zobacz Tworzenie grupy dostępności (Transact-SQL).

Zobacz też

ALTER DATABASE (Transact-SQL)
ALTER AVAILABILITY GROUP (Transact-SQL)
CREATE AVAILABILITY GROUP (Transact-SQL)
Przegląd grup Always On Availability (SQL Server)Rozwiązywanie problemów Konfiguracja grup Always On Availability (SQL Server)