Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy:programu SQL Server
W tym temacie opisano sposób ręcznego przełączenia awaryjnego bez utraty danych (zaplanowanego ręcznego przełączenia awaryjnego) w grupie dostępności *Always On* przy użyciu programu SQL Server Management Studio, Transact-SQL lub narzędzia PowerShell w SQL Server. Grupa dostępności przełączy się w tryb failover na poziomie repliki dostępności. Planowane ręczne przełączenie awaryjne, tak jak w przypadku każdej grupy dostępności Always On, przenosi replikę zapasową do roli podstawowej. Jednocześnie tryb failover przenosi poprzednią replikę podstawową do roli pomocniczej.
Planowane ręczne przełączenie awaryjne jest wspierane tylko wówczas, gdy replika podstawowa i replika zapasowa docelowa działają w trybie zatwierdzania synchronicznego i są obecnie zsynchronizowane. Planowe ręczne przełączenie awaryjne zachowuje wszystkie dane w pomocniczych bazach danych przyłączonych do grupy dostępności na docelowej replice pomocniczej. Po przejściu poprzedniej repliki podstawowej do roli pomocniczej jej bazy danych stają się pomocniczymi bazami danych. Następnie zaczynają synchronizować się z nowymi podstawowymi bazami danych. Po przejściu do stanu SYNCD nowa replika pomocnicza będzie mogła służyć jako cel przyszłego planowanego ręcznego przejścia w tryb failover.
Notatka
Jeśli zarówno replika podstawowa, jak i pomocnicza są skonfigurowane do automatycznego trybu przełączenia awaryjnego, po zsynchronizowaniu repliki pomocniczej może ona również pełnić rolę celu dla automatycznego przełączenia awaryjnego. Aby uzyskać więcej informacji, zobacz Tryby dostępności (grupy dostępności Always On).
Przed rozpoczęciem
Ważny
Istnieją konkretne procedury przełączania grupy dostępności skoncentrowanej na odczycie do trybu failover bez obecności menedżera klastra. Jeśli grupa dostępności ma CLUSTER_TYPE = NONE, wykonaj procedury opisane w przełączania repliki podstawowej w grupie dostępności skalowania odczytu.
Ograniczenia i ograniczenia
Polecenie trybu failover jest zwracane natychmiast po zaakceptowaniu polecenia przez docelową replikę pomocniczą. Jednak odzyskiwanie bazy danych odbywa się asynchronicznie po zakończeniu przełączania grupy dostępności w tryb failover.
Spójność międzybazowa w bazach danych w grupie dostępności może nie być zachowana podczas przełączenia awaryjnego.
Uwaga
Obsługa transakcji między bazami danych i rozproszonych różni się w zależności od wersji programu SQL Server i systemu operacyjnego. Aby uzyskać więcej informacji, zobacz transakcji między bazami danych i transakcji rozproszonych dla zawsze włączonych grup dostępności i dublowania bazy danych (SQL Server).
Wymagania wstępne i ograniczenia
Zarówno docelowa replika pomocnicza, jak i replika podstawowa muszą być uruchomione w trybie dostępności zatwierdzania synchronicznego.
Obecnie docelowa replika pomocnicza musi być zsynchronizowana z repliką podstawową. Wszystkie pomocnicze bazy danych w tej repliki pomocniczej muszą być przyłączone do grupy dostępności. Muszą również być synchronizowane z odpowiednimi podstawowymi bazami danych (to znaczy, lokalne podrzędne bazy danych muszą być ZSYNCHRONIZOWANE).
Napiwek
Aby określić gotowość trybu failover repliki pomocniczej, wykonaj zapytanie w kolumnie is_failover_ready w widoku dynamicznego zarządzania sys.dm_hadr_database_replica_cluster_states. Możesz też zapoznać się z kolumną gotowości trybu failover na pulpicie nawigacyjnym zawsze włączonej grupy .
To zadanie jest obsługiwane tylko na docelowej replice pomocniczej. Musisz mieć połączenie z wystąpieniem serwera hostujące docelową replikę pomocniczą.
Bezpieczeństwo
Uprawnienia
Uprawnienie ALTER AVAILABILITY GROUP jest wymagane dla grupy dostępności. Wymagane jest również uprawnienie KONTROLA GRUPY DOSTĘPNOŚCI, UPRAWNIENIE ALTER ANY AVAILABILITY GROUP lub UPRAWNIENIE CONTROL SERVER.
Korzystanie z programu SQL Server Management Studio
Aby ręcznie przełączyć grupę dostępności na tryb awaryjny:
W Eksploratorze obiektów połącz się z wystąpieniem serwera hostującym replikę pomocniczą grupy dostępności, która musi podlegać przełączeniu. Rozwiń drzewo serwerów.
Rozwiń węzeł Zawsze Włączona Wysoka Dostępność oraz węzeł Grupy Dostępności.
Kliknij prawym przyciskiem myszy grupę dostępności, której przełączanie planujesz, a następnie wybierz Failover.
Zostanie uruchomiony kreator grupy dostępności trybu failover. Aby uzyskać więcej informacji, zobacz Używanie kreatora grupy dostępności trybu failover (SQL Server Management Studio).
Użyj Transact-SQL
Aby ręcznie przełączyć grupę dostępności w tryb awaryjny:
Połącz się z wystąpieniem serwera hostujące docelową replikę pomocniczą.
Użyj instrukcji ALTER AVAILABILITY GROUP w następujący sposób:
Zmień grupę dostępności group_name na przełączenie awaryjne
W oświadczeniu group_name jest nazwą grupy dostępności.
Na poniższym przykładzie grupa dostępności MyAg zostaje ręcznie przełączona na połączoną replikę wtórną.
ALTER AVAILABILITY GROUP MyAg FAILOVER;
Korzystanie z programu PowerShell
Aby ręcznie przełączyć grupę dostępności na tryb awaryjny:
Zmień katalog (cd) na wystąpienie serwera hostujące docelową replikę pomocniczą.
Użyj cmdletu Switch-SqlAvailabilityGroup.
Notatka
Aby wyświetlić składnię polecenia cmdlet, użyj polecenia cmdlet Get-Help w środowisku PowerShell serwera SQL Server. Aby uzyskać więcej informacji, zobacz Uzyskiwanie pomocy dotyczącej programu SQL Server PowerShell.
Poniższy przykład ręcznie przełącza awaryjnie grupę dostępności MyAg do repliki pomocniczej z określoną ścieżką:
Switch-SqlAvailabilityGroup -Path SQLSERVER:\Sql\SecondaryServer\InstanceName\AvailabilityGroups\MyAg
Aby skonfigurować i użyć dostawcy PowerShell dla SQL Server:
Kontynuuj działania: Po ręcznym przełączeniu grupy dostępności
Jeśli przełączyłeś się awaryjnie poza automatyczny zestaw przełączania awaryjnego grupy dostępności, dostosuj głosy kworum węzłów klastra przełączania awaryjnego systemu Windows Server, aby odzwierciedlić nową konfigurację grupy dostępności. Aby uzyskać więcej informacji, zobacz klastry przełączania awaryjnego systemu Windows Server (WSFC) z programem SQL Server.
Przełącz replikę podstawową w tryb failover w grupie dostępności w skali odczytu
Każda grupa dostępności ma tylko jedną replikę podstawową. Replika podstawowa umożliwia odczyty i zapisy. Aby zmienić replikę podstawową, możesz przejść w tryb failover. W typowej grupie dostępności zarządca klastra automatyzuje proces przełączania awaryjnego. W grupie dostępności z typem klastra NONE proces failover jest wykonywany ręcznie.
Istnieją dwa sposoby przełączania repliki podstawowej w tryb failover w grupie dostępności z typem klastra NONE:
- Ręczne przełączanie na tryb failover bez utraty danych
- Wymuszone ręczne przejście w tryb failover z utratą danych
Ręczne przełączenie awaryjne bez utraty danych
Użyj tej metody, gdy jest dostępna replika podstawowa, ale musisz tymczasowo lub trwale zmienić wystąpienie, które hostuje replikę podstawową. Aby uniknąć potencjalnej utraty danych, przed wydaniem ręcznego przełączenia awaryjnego upewnij się, że docelowa replika podrzędna jest zaktualizowana.
Aby ręcznie przejść w tryb failover bez utraty danych:
Zmień bieżącą replikę podstawową na pomocniczą, a docelową na podstawową
SYNCHRONOUS_COMMIT
.ALTER AVAILABILITY GROUP [AGRScale] MODIFY REPLICA ON N'<node2>' WITH (AVAILABILITY_MODE = SYNCHRONOUS_COMMIT);
Aby stwierdzić, że aktywne transakcje są zatwierdzane w replice podstawowej i co najmniej jednej synchronicznej replice wtórnej, uruchom następujące zapytanie:
SELECT ag.name, drs.database_id, drs.group_id, drs.replica_id, drs.synchronization_state_desc, ag.sequence_number FROM sys.dm_hadr_database_replica_states drs, sys.availability_groups ag WHERE drs.group_id = ag.group_id;
Replika pomocnicza jest synchronizowana, gdy
synchronization_state_desc
jestSYNCHRONIZED
.Zaktualizuj
REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT
na 1.Poniższy skrypt ustawia
REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT
na 1 w grupie dostępności o nazwieag1
. Przed uruchomieniem następującego skryptu zastąpag1
nazwą grupy dostępności:ALTER AVAILABILITY GROUP [AGRScale] SET (REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT = 1);
To ustawienie zapewnia, że każda aktywna transakcja jest zatwierdzana w repliki podstawowej i co najmniej jednej synchronicznej repliki pomocniczej.
Notatka
To ustawienie nie jest specyficzne dla trybu failover i powinno być ustawione na podstawie wymagań środowiska.
Ustaw replikę podstawową i repliki pomocnicze, nie biorące udziału w przełączeniu awaryjnym, offline, aby przygotować się do zmiany roli.
ALTER AVAILABILITY GROUP [AGRScale] OFFLINE
Awansuj docelową replikę zapasową do podstawowej.
ALTER AVAILABILITY GROUP AGRScale FORCE_FAILOVER_ALLOW_DATA_LOSS;
Zaktualizuj rolę starej repliki podstawowej i innych kopii pomocniczych do
SECONDARY
, uruchom następujące polecenie na wystąpieniu programu SQL Server, które hostuje starą replikę podstawową:ALTER AVAILABILITY GROUP [AGRScale] SET (ROLE = SECONDARY);
Notatka
Aby usunąć grupę dostępności, użyj DROP AVAILABILITY GROUP. W przypadku grupy dostępności o typie klastra NONE lub EXTERNAL wykonaj polecenie na wszystkich replikach należących do tej grupy dostępności.
Aby wznowić przenoszenie danych, uruchom następujące polecenie dla każdej bazy danych w grupie dostępności na wystąpieniu programu SQL Server, które hostuje replikę podstawową.
ALTER DATABASE [db1] SET HADR RESUME
Ponownie utwórz każdego odbiornika, którego utworzyłeś na potrzeby skalowania odczytu, a który nie jest zarządzany przez menedżera klastra. Jeśli oryginalny odbiornik wskazuje stary element podstawowy, usuń go i utwórz go ponownie, aby wskazać nowy element podstawowy.
Wymuszone ręczne przejście w tryb failover z utratą danych
Jeśli replika podstawowa jest niedostępna i nie można jej od razu odzyskać, musisz wymusić przejście w tryb failover do repliki pomocniczej z utratą danych. Jeśli jednak oryginalna replika główna odzyska sprawność po awarii i przejściu na tryb zapasowy, przyjmie rolę podstawową. Aby uniknąć posiadania każdej repliki w innym stanie, usuń oryginalną replikę pierwotną z grupy dostępności po wymuszonym przejściu awaryjnym z utratą danych. Gdy oryginalny serwer główny ponownie stanie się aktywny, usuń z niego całkowicie grupę dostępności.
Aby wymusić ręczne przejście w tryb failover z powodu utraty danych z repliki podstawowej N1 do repliki pomocniczej N2, wykonaj następujące kroki:
W repliki pomocniczej (N2) zainicjuj wymuszony tryb failover:
ALTER AVAILABILITY GROUP [AGRScale] FORCE_FAILOVER_ALLOW_DATA_LOSS;
W nowej repliki podstawowej (N2) usuń oryginalną replikę podstawową (N1):
ALTER AVAILABILITY GROUP [AGRScale] REMOVE REPLICA ON N'N1';
Sprawdź, czy cały ruch aplikacji jest kierowany do słuchacza i/lub nowej repliki podstawowej.
Jeśli oryginalny węzeł podstawowy (N1) ponownie stanie się dostępny, natychmiast wyłącz grupę dostępności AGRScale na oryginalnym węźle podstawowym (N1).
ALTER AVAILABILITY GROUP [AGRScale] OFFLINE
Jeśli istnieją dane lub zmiany niezsynchronizowane, zachowaj te dane za pomocą kopii zapasowych lub innych opcji replikowania danych odpowiadających potrzebom biznesowym.
Następnie usuń grupę dostępności z oryginalnego serwera podstawowego (N1):
DROP AVAILABILITY GROUP [AGRScale];
Usuń bazę danych z grupy dostępności z oryginalnej podstawowej repliki (N1):
USE [master] GO DROP DATABASE [AGDBRScale] GO
(Opcjonalnie) W razie potrzeby można teraz dodać N1 z powrotem jako nową replikę pomocniczą do grupy dostępności AGRScale.