Konfigurowanie rozproszonej grupy dostępności Always On
Dotyczy:programu SQL Server
Aby utworzyć rozproszoną grupę dostępności, należy utworzyć dwie grupy dostępności z własnym odbiornikiem. Następnie połączysz te grupy dostępności w rozproszoną grupę dostępności. Poniższe kroki zawierają podstawowy przykład w języku Transact-SQL. W tym przykładzie nie opisano wszystkich szczegółów dotyczących tworzenia grup dostępności i odbiorników; zamiast tego koncentruje się na wyróżnianiu kluczowych wymagań.
Aby zapoznać się z technicznym omówieniem rozproszonych grup dostępności, zobacz Rozproszone grupy dostępności.
Warunki wstępne
Aby skonfigurować rozproszoną grupę dostępności, musisz mieć następujące elementy:
- Obsługiwana wersja programu SQL Server.
Uwaga
Jeśli skonfigurowano odbiornik dla grupy dostępności w programie SQL Server na maszynie wirtualnej platformy Azure przy użyciu nazwy sieci rozproszonej (DNN), konfigurowanie rozproszonej grupy dostępności na podstawie grupy dostępności nie jest obsługiwane. Aby dowiedzieć się więcej, zobacz współdziałanie funkcji programu SQL Server na maszynie wirtualnej Azure z odbiornikiem grup dostępności oraz słuchaczem nazwy sieci rozproszonej.
Ustawianie odbiorników punktów końcowych do nasłuchiwania wszystkich adresów IP
Upewnij się, że punkty końcowe mogą komunikować się między różnymi grupami dostępności w rozproszonej grupie dostępności. Jeśli jedna grupa dostępności jest ustawiona na określoną sieć w punkcie końcowym, rozproszona grupa dostępności nie działa prawidłowo. Na każdym serwerze, który hostuje replikę w rozproszonej grupie dostępności, ustaw odbiornik do nasłuchiwania na wszystkich adresach IP (LISTENER_IP = ALL
).
Tworzenie punktu końcowego do nasłuchiwania wszystkich adresów IP
Na przykład poniższy skrypt tworzy punkt końcowy odbiornika na porcie TCP 5022, który nasłuchuje na wszystkich adresach IP.
CREATE ENDPOINT [aodns-hadr]
STATE = STARTED
AS TCP
(
LISTENER_PORT = 5022,
LISTENER_IP = ALL
)
FOR DATABASE_MIRRORING
(
ROLE = ALL,
AUTHENTICATION = WINDOWS NEGOTIATE,
ENCRYPTION = REQUIRED ALGORITHM AES
);
GO
Zmienianie punktu końcowego w celu nasłuchiwania wszystkich adresów IP
Na przykład poniższy skrypt zmienia punkt końcowy odbiornika, aby nasłuchiwać wszystkich adresów IP.
ALTER ENDPOINT [aodns-hadr]
AS TCP
(
LISTENER_IP = ALL
);
GO
Tworzenie pierwszej grupy dostępności
Utwórz główną grupę dostępności w pierwszym klastrze
Utwórz grupę dostępności w pierwszym klastrze Windows Server Failover Cluster (WSFC). W tym przykładzie grupa dostępności nosi nazwę ag1
dla bazy danych db1
. Główna replika podstawowej grupy dostępności jest określana jako globalna w rozproszonej grupie dostępności. Serwer1 jest globalnym podstawowym elementem w tym przykładzie.
CREATE AVAILABILITY GROUP [ag1]
FOR DATABASE db1
REPLICA ON N'server1' WITH (ENDPOINT_URL = N'TCP://server1.contoso.com:5022',
FAILOVER_MODE = AUTOMATIC,
AVAILABILITY_MODE = SYNCHRONOUS_COMMIT,
BACKUP_PRIORITY = 50,
SECONDARY_ROLE(ALLOW_CONNECTIONS = NO),
SEEDING_MODE = AUTOMATIC),
N'server2' WITH (ENDPOINT_URL = N'TCP://server2.contoso.com:5022',
FAILOVER_MODE = AUTOMATIC,
AVAILABILITY_MODE = SYNCHRONOUS_COMMIT,
BACKUP_PRIORITY = 50,
SECONDARY_ROLE(ALLOW_CONNECTIONS = NO),
SEEDING_MODE = AUTOMATIC);
GO
Notatka
W poprzednim przykładzie użyto automatycznego inicjowania, gdzie SEEDING_MODE jest ustawione na AUTOMATIC dla replik i rozproszonej grupy dostępności. Ta konfiguracja umożliwia automatyczne wypełnianie replik pomocniczych i pomocniczej grupy dostępności bez konieczności ręcznego tworzenia kopii zapasowej i przywracania podstawowej bazy danych.
Dołączanie replik wtórnych do podstawowej grupy dostępności
Wszystkie repliki pomocnicze muszą być przyłączone do grupy dostępności poleceniem ALTER AVAILABILITY GROUP przy użyciu opcji JOIN. Ponieważ automatyczne zasiewanie jest używane w tym przykładzie, należy również wywołać ALTER AVAILABILITY GROUP z opcją GRANT CREATE ANY DATABASE. To ustawienie umożliwia grupie dostępności utworzenie bazy danych i automatyczne rozmieszczanie jej z repliki podstawowej.
W tym przykładzie następujące polecenia są uruchamiane na replice pomocniczej, server2
, aby przystąpić do grupy dostępności ag1
. Następnie grupa wysokiej dostępności może tworzyć bazy danych na serwerze wtórnym.
ALTER AVAILABILITY GROUP [ag1] JOIN
ALTER AVAILABILITY GROUP [ag1] GRANT CREATE ANY DATABASE
GO
Notatka
Gdy grupa dostępności tworzy bazę danych na replice pomocniczej, ustawia konto, które uruchomiło instrukcję ALTER AVAILABILITY GROUP
, jako właściciela bazy danych, aby udzielić uprawnień do tworzenia dowolnej bazy danych. Aby uzyskać pełne informacje, zobacz Przyznaj uprawnienia do tworzenia baz danych na drugiej replice do grupy dostępności.
Tworzenie odbiornika dla podstawowej grupy dostępności
Następnie dodaj odbiornik podstawowej grupy dostępności w pierwszym programie WSFC. W tym przykładzie słuchacz nazywa się ag1-listener
. Aby uzyskać szczegółowe instrukcje dotyczące tworzenia odbiornika, zobacz Tworzenie lub konfigurowanie odbiornika grupy dostępności (SQL Server).
ALTER AVAILABILITY GROUP [ag1]
ADD LISTENER 'ag1-listener' (
WITH IP ( ('2001:db88:f0:f00f::cf3c'),('2001:4898:e0:f213::4ce2') ) ,
PORT = 60173);
GO
Tworzenie drugiej grupy dostępności
Następnie na drugim WSFC stwórz drugą grupę dostępności ag2
. W tym przypadku baza danych nie jest określona, ponieważ jest automatycznie zapełniana z podstawowej grupy dostępności. Podstawowa replika pomocniczej grupy dostępności jest znana jako forwarder w rozproszonej grupie dostępności. W tym przykładzie serwer3 jest przekaźnikiem.
CREATE AVAILABILITY GROUP [ag2]
FOR
REPLICA ON N'server3' WITH (ENDPOINT_URL = N'TCP://server3.contoso.com:5022',
FAILOVER_MODE = MANUAL,
AVAILABILITY_MODE = SYNCHRONOUS_COMMIT,
BACKUP_PRIORITY = 50,
SECONDARY_ROLE(ALLOW_CONNECTIONS = NO),
SEEDING_MODE = AUTOMATIC),
N'server4' WITH (ENDPOINT_URL = N'TCP://server4.contoso.com:5022',
FAILOVER_MODE = MANUAL,
AVAILABILITY_MODE = SYNCHRONOUS_COMMIT,
BACKUP_PRIORITY = 50,
SECONDARY_ROLE(ALLOW_CONNECTIONS = NO),
SEEDING_MODE = AUTOMATIC);
GO
Notatka
Wtórna grupa dostępności musi używać tego samego punktu końcowego dublowania baz danych (w tym przykładzie port 5022). W przeciwnym razie replikacja zostanie wstrzymana po lokalnym przełączeniu awaryjnym.
Dołączanie replik drugorzędnych do drugorzędnej grupy dostępności
W tym przykładzie następujące polecenia są wykonywane na replice pomocniczej server4
, aby dołączyć do grupy dostępności ag2
. Następnie grupie dostępności zezwala się na tworzenie baz danych na serwerze pomocniczym w celu obsługi automatycznego inicjowania.
ALTER AVAILABILITY GROUP [ag2] JOIN
ALTER AVAILABILITY GROUP [ag2] GRANT CREATE ANY DATABASE
GO
Utwórz odbiornik dla grupy dostępności pomocniczej
Następnie dodaj nasłuchiwacz dla drugorzędnej grupy dostępności w drugiej usłudze WSFC. W tym przykładzie słuchacz ma nazwę ag2-listener
. Aby uzyskać szczegółowe instrukcje dotyczące tworzenia odbiornika, zobacz Tworzenie lub konfigurowanie odbiornika grupy dostępności (SQL Server).
ALTER AVAILABILITY GROUP [ag2]
ADD LISTENER 'ag2-listener' ( WITH IP ( ('2001:db88:f0:f00f::cf3c'),('2001:4898:e0:f213::4ce2') ) , PORT = 60173);
GO
Tworzenie rozproszonej grupy dostępności w pierwszym klastrze
W pierwszym programie WSFC utwórz rozproszoną grupę dostępności (o nazwie distributedAG
w tym przykładzie). Użyj polecenia CREATE AVAILABILITY GROUP z opcją ROZPROSZONA. Parametr GRUPA DOSTĘPNOŚCI NA określa grupy dostępności członków ag1
i ag2
.
Aby utworzyć rozproszoną grupę dostępności przy użyciu automatycznego rozmieszczania, użyj następującego kodu Transact-SQL:
CREATE AVAILABILITY GROUP [distributedAG]
WITH (DISTRIBUTED)
AVAILABILITY GROUP ON
'ag1' WITH
(
LISTENER_URL = 'tcp://ag1-listener.contoso.com:5022',
AVAILABILITY_MODE = ASYNCHRONOUS_COMMIT,
FAILOVER_MODE = MANUAL,
SEEDING_MODE = AUTOMATIC
),
'ag2' WITH
(
LISTENER_URL = 'tcp://ag2-listener.contoso.com:5022',
AVAILABILITY_MODE = ASYNCHRONOUS_COMMIT,
FAILOVER_MODE = MANUAL,
SEEDING_MODE = AUTOMATIC
);
GO
Notatka
LISTENER_URL określa odbiornik dla każdej grupy dostępności wraz z punktem końcowym dublowania bazy danych grupy dostępności. W tym przykładzie jest to port 5022
(a nie port 60173
używany do tworzenia odbiornika). Jeśli używasz równoważnika obciążenia, na przykład na platformie Azure, dodaj regułę równoważenia obciążenia dla portu rozproszonej grupy dostępności. Dodaj regułę dla portu odbiornika oprócz portu wystąpienia programu SQL Server.
Anuluj automatyczne przekazywanie do przekaźnika
Jeśli z jakiegokolwiek powodu konieczne jest anulowanie inicjalizacji przekaznika przed zsynchronizowaniem obu grup dostępności, zmodyfikuj rozproszoną grupę dostępności, ustawiając parametr SEEDING_MODE przekaznika na MANUAL i natychmiast anuluj rozmieszczanie. Uruchom polecenie na globalnym serwerze podstawowym.
-- Cancel automatic seeding. Connect to global primary but specify DAG AG2
ALTER AVAILABILITY GROUP [distributedAG]
MODIFY
AVAILABILITY GROUP ON
'ag2' WITH
( SEEDING_MODE = MANUAL );
Dołącz do rozproszonej grupy dostępności w drugim klastrze
Następnie dołącz do rozproszonej grupy dostępności w drugim klastrze WSFC.
Aby dołączyć do grupy dostępności rozproszonej przy użyciu automatycznego wprowadzania, użyj następującego kodu Transact-SQL:
ALTER AVAILABILITY GROUP [distributedAG]
JOIN
AVAILABILITY GROUP ON
'ag1' WITH
(
LISTENER_URL = 'tcp://ag1-listener.contoso.com:5022',
AVAILABILITY_MODE = ASYNCHRONOUS_COMMIT,
FAILOVER_MODE = MANUAL,
SEEDING_MODE = AUTOMATIC
),
'ag2' WITH
(
LISTENER_URL = 'tcp://ag2-listener.contoso.com:5022',
AVAILABILITY_MODE = ASYNCHRONOUS_COMMIT,
FAILOVER_MODE = MANUAL,
SEEDING_MODE = AUTOMATIC
);
GO
Dołączanie bazy danych do pomocniczej drugiej grupy dostępności
Jeśli druga grupa dostępności została skonfigurowana do automatycznego siewu, przejdź do kroku drugiego.
Jeśli druga grupa dostępności używa ręcznego inicjowania, przywróć kopię zapasową wykonaną na głównym serwerze globalnym do pomocniczej drugiej grupy dostępności.
RESTORE DATABASE [db1] FROM DISK = '<full backup location>' WITH NORECOVERY; RESTORE LOG [db1] FROM DISK = '<log backup location>' WITH NORECOVERY;
Gdy baza danych w replice pomocniczej drugiej grupy dostępności znajduje się w stanie przywracania, musisz ręcznie dołączyć ją do grupy dostępności.
ALTER DATABASE [db1] SET HADR AVAILABILITY GROUP = [ag2];
Przełączanie w tryb awaryjny rozproszonej grupy dostępności
Ponieważ program SQL Server 2022 (16.x) wprowadził obsługę rozproszonej grupy dostępności dla ustawienia REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT
, instrukcje dotyczące przełączania w tryb failover rozproszonej dostępności różnią się w przypadku programu SQL Server 2022 i nowszych wersji niż w przypadku programu SQL Server 2019 i starszych wersji.
W przypadku rozproszonej grupy dostępności jedynym obsługiwanym typem przełączenia awaryjnego jest ręczne, inicjowane przez użytkownika FORCE_FAILOVER_ALLOW_DATA_LOSS
. W związku z tym, aby zapobiec utracie danych, należy wykonać dodatkowe kroki (opisane szczegółowo w tej sekcji), aby upewnić się, że dane są synchronizowane między dwiema replikami przed zainicjowaniem trybu failover.
W przypadku awarii, w której utrata danych jest akceptowalna, można zainicjować tryb failover bez zapewnienia synchronizacji danych, uruchamiając polecenie:
ALTER AVAILABILITY GROUP distributedAG FORCE_FAILOVER_ALLOW_DATA_LOSS;
Możesz użyć tego samego polecenia, aby przełączyć w tryb awaryjny do transmitera, a także wrócić po awarii do globalnego serwera podstawowego.
W programie SQL Server 2022 (16.x) i nowszych można skonfigurować ustawienie REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT
dla rozproszonej grupy dostępności, która ma zagwarantować brak utraty danych w przypadku awarii rozproszonej grupy dostępności. Jeśli to ustawienie jest skonfigurowane, wykonaj kroki opisane w tej sekcji, aby przejąć rozproszoną grupę dostępności w tryb failover. Jeśli nie chcesz używać ustawienia REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT
, postępuj zgodnie z instrukcjami, aby przeprowadzić przełączenie w tryb failover w grupie dostępności rozproszonej w programie SQL Server 2019 i we wcześniejszych wersjach.
Notatka
Ustawienie REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT
na 1 oznacza, że replika podstawowa czeka na zatwierdzenie transakcji w replice pomocniczej przed ich zatwierdzeniem w replice podstawowej, co może obniżyć wydajność. Chociaż ograniczanie lub zatrzymywanie transakcji na globalnej podstawowej grupie dostępności nie jest wymagane do synchronizacji rozproszonej grupy dostępności w programie SQL Server 2022 (16.x), może to poprawić wydajność zarówno dla transakcji użytkowników, jak i rozproszonej synchronizacji grup dostępności z REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT
ustawioną na 1.
Kroki w celu zapewnienia braku utraty danych
Aby upewnić się, że nie ma utraty danych, należy najpierw skonfigurować rozproszoną grupę dostępności, aby nie obsługiwała utraty danych, wykonując następujące kroki:
- Aby przygotować się na awarię, sprawdź, czy globalne podstawowe i globalne usługi przesyłania dalej są w trybie
SYNCHRONOUS_COMMIT
. Jeśli nie, ustaw je naSYNCHRONOUS_COMMIT
za pomocą ALTER AVAILABILITY GROUP. - Ustaw rozproszoną grupę dostępności na zatwierdzanie synchroniczne zarówno dla globalnej podstawowej bazy danych , jak i dla modułu przekazującego.
- Poczekaj na zsynchronizowanie rozproszonej grupy dostępności.
- Na podstawowym serwerze globalnym ustaw rozproszoną grupę dostępności
REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT
na 1, przy użyciu ALTER AVAILABILITY GROUP. - Sprawdź, czy wszystkie repliki w lokalnych grupach dostępności i rozproszonej grupie dostępności są w dobrej kondycji, a rozproszona grupa dostępności jest zsynchronizowana.
- W globalnej repliki podstawowej ustaw rolę rozproszonej grupy dostępności na
SECONDARY
, co sprawia, że rozproszona grupa dostępności jest niedostępna. - Na serwerze przekazywania dalej (przewidziany nowy serwer podstawowy), przełącz rozproszoną grupę dostępności na awaryjne przy użyciu ALTER AVAILABILITY GROUP z
FORCE_FAILOVER_ALLOW_DATA_LOSS
. - W nowej replice pomocniczej (poprzedniej globalnej replice podstawowej) ustaw rozproszoną grupę dostępności
REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT
na 0. - Opcjonalnie: jeśli grupy dostępności znajdują się w odległości geograficznej, która powoduje opóźnienie, zmień tryb dostępności na
ASYNCHRONOUS_COMMIT
. Spowoduje to przywrócenie zmiany z pierwszego kroku, jeśli jest to konieczne.
Przykład języka T-SQL
Ta sekcja zawiera kroki opisane w szczegółowym przykładzie umożliwiającym przełączenie rozproszonej grupy dostępności w tryb failover o nazwie distributedAG
przy użyciu języka Transact-SQL. Przykładowe środowisko ma łącznie 4 węzły dla rozproszonej grupy dostępności. Globalna podstawowa grupa dostępności hostów N1 i N2ag1
oraz globalna grupa dostępności hostów przesyłania dalej N3 i N4ag2
. Rozproszona grupa dostępności distributedAG
przesyła zmiany z ag1
do ag2
.
Wykonaj zapytanie, aby sprawdzić
SYNCHRONOUS_COMMIT
na prawyborach lokalnych grup dostępności, które tworzą rozproszoną grupę dostępności. Uruchom następujący kod T-SQL bezpośrednio na globalnym przesyłniku oraz globalnym podstawowym.SELECT DISTINCT ag.name AS [Availability Group], ar.replica_server_name AS [Replica], ar.availability_mode_desc AS [Availability Mode] FROM sys.availability_replicas AS ar INNER JOIN sys.availability_groups AS ag ON ar.group_id = ag.group_id INNER JOIN sys.dm_hadr_database_replica_states AS rs ON ar.group_id = rs.group_id AND ar.replica_id = rs.replica_id WHERE ag.name IN ('ag1', 'ag2') AND rs.is_primary_replica = 1 ORDER BY [Availability Group]; --if needed, to set a given replica to SYNCHRONOUS for node N1, default instance. If named, change from N1 to something like N1\SQL22 ALTER AVAILABILITY GROUP [testag] MODIFY REPLICA ON N'N1\SQL22' WITH (AVAILABILITY_MODE = SYNCHRONOUS_COMMIT);
Ustaw rozproszoną grupę dostępności na zatwierdzenie synchroniczne, uruchamiając następujący kod w zarówno globalnej podstawowej, jak i usługi przesyłania dalej:
-- sets the distributed availability group to synchronous commit ALTER AVAILABILITY GROUP [distributedAG] MODIFY AVAILABILITY GROUP ON 'ag1' WITH (AVAILABILITY_MODE = SYNCHRONOUS_COMMIT), 'ag2' WITH (AVAILABILITY_MODE = SYNCHRONOUS_COMMIT);
Notatka
W rozproszonej grupie dostępności stan synchronizacji między dwiema grupami dostępności zależy od trybu dostępności obu replik. W przypadku trybu zatwierdzania synchronicznego zarówno bieżąca podstawowa grupa dostępności, jak i bieżąca pomocnicza grupa dostępności muszą mieć tryb dostępności
SYNCHRONOUS_COMMIT
. Z tego powodu należy uruchomić ten skrypt zarówno w globalnej replice podstawowej, jak i w przekazniku.Poczekaj, aż stan rozproszonej grupy dostępności zmieni się na
SYNCHRONIZED
. Uruchom następujące zapytanie na globalnym serwerze głównym.-- Run this query on the Global Primary and the forwarder -- Check the results to see if synchronization_state_desc is SYNCHRONIZED SELECT ag.name, drs.database_id AS [Availability Group], db_name(drs.database_id) AS database_name, drs.synchronization_state_desc, drs.last_hardened_lsn FROM sys.dm_hadr_database_replica_states AS drs INNER JOIN sys.availability_groups AS ag ON drs.group_id = ag.group_id WHERE ag.name = 'distributedAG' ORDER BY [Availability Group];
Rozpocznij po tym, jak stan synchronizacji grupy dostępności zmieni się na
SYNCHRONIZED
.W przypadku programu SQL Server 2022 (16.x) i nowszych w globalnej wersji podstawowej ustaw wartość
REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT
na 1 przy użyciu następującego języka T-SQL:ALTER AVAILABILITY GROUP distributedAG SET (REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT = 1);
Sprawdź, czy grupy dostępności są w dobrej kondycji we wszystkich replikach, wysyłając zapytanie do globalnego głównego oraz elementu przesyłającego:
SELECT ag.name AS [AG Name], db_name(drs.database_id) AS database_name, ar.replica_server_name AS [replica], drs.synchronization_state_desc, drs.last_hardened_lsn FROM sys.dm_hadr_database_replica_states AS drs INNER JOIN sys.availability_groups AS ag ON drs.group_id = ag.group_id INNER JOIN sys.availability_replicas AS ar ON drs.replica_id = ar.replica_id AND drs.replica_id = ar.replica_id WHERE ag.name IN ('ag1', 'ag2', 'distributedAG');
Ustaw na globalnym serwerze podstawowym rolę rozproszonej grupy dostępności na
SECONDARY
. W tym momencie rozproszona grupa dostępności nie jest osiągalna. Po zakończeniu tego kroku, nie będzie można przywrócić do poprzedniego stanu, dopóki nie zostaną wykonane pozostałe kroki.ALTER AVAILABILITY GROUP distributedAG SET (ROLE = SECONDARY);
Wykonanie przełączenia awaryjnego z globalnego serwera podstawowego poprzez uruchomienie następującego zapytania na serwerze pośredniczącym w celu przełączenia grup dostępności i przywrócenia rozproszonej grupy dostępności do trybu online.
-- Run the following command on the forwarder, the SQL Server instance that hosts the primary replica of the secondary availability group. ALTER AVAILABILITY GROUP distributedAG FORCE_FAILOVER_ALLOW_DATA_LOSS;
Po wykonaniu tego kroku:
- Globalne podstawowe przejścia z
N1
doN3
. - Globalny spedytor przechodzi z
N3
naN1
. - Dostępna jest rozproszona grupa dostępności.
- Globalne podstawowe przejścia z
Na nowym przekaźniku (poprzedni globalny serwer główny,
N1
), wyczyść właściwość rozproszonej grupy dostępnościREQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT
, ustawiając ją na 0.ALTER AVAILABILITY GROUP distributedAG SET (REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT = 0);
OPCJONALNE: jeśli grupy dostępności znajdują się w odległości geograficznej, która powoduje opóźnienie, rozważ zmianę trybu dostępności z powrotem na
ASYNCHRONOUS_COMMIT
na zarówno globalnego podstawowego, jak i usługi przesyłania dalej. Spowoduje to przywrócenie zmiany wprowadzonej w pierwszym kroku, jeśli jest to konieczne.-- If applicable: sets the distributed availability group to asynchronous commit: ALTER AVAILABILITY GROUP distributedAG MODIFY AVAILABILITY GROUP ON 'ag1' WITH (AVAILABILITY_MODE = ASYNCHRONOUS_COMMIT), 'ag2' WITH (AVAILABILITY_MODE = ASYNCHRONOUS_COMMIT);
Usuwanie rozproszonej grupy dostępności
Następująca instrukcja Transact-SQL usuwa rozproszoną grupę dostępności o nazwie distributedAG
:
DROP AVAILABILITY GROUP distributedAG;
Tworzenie rozproszonej grupy dostępności na wystąpieniach klastra z trybem failover
Rozproszoną grupę dostępności można utworzyć przy użyciu grupy dostępności na instancji klastra w trybie przełączania awaryjnego (FCI). W takim przypadku nie potrzebujesz nasłuchiwacza grupy dostępności. Użyj nazwy sieci wirtualnej (VNN) dla repliki podstawowej instancji klastra trybu failover. W poniższym przykładzie przedstawiono rozproszoną grupę dostępności o nazwie SQLFCIDAG. Jedną z grup dostępności jest SQLFCIAG. SQLFCIAG ma dwie repliki FCI. Nazwa sieci VNN dla podstawowej repliki FCI to SQLFCIAG-1, a nazwa sieci VNN dla pomocniczej repliki FCI to SQLFCIAG-2. Rozproszona grupa dostępności obejmuje również program SQLAG-DR na potrzeby odzyskiwania po awarii.
Poniższy kod DDL tworzy tę rozproszoną grupę dostępności:
CREATE AVAILABILITY GROUP [SQLFCIDAG]
WITH (DISTRIBUTED)
AVAILABILITY GROUP ON
'SQLFCIAG' WITH
(
LISTENER_URL = 'tcp://SQLFCIAG-1.contoso.com:5022',
AVAILABILITY_MODE = ASYNCHRONOUS_COMMIT,
FAILOVER_MODE = MANUAL,
SEEDING_MODE = AUTOMATIC
),
'SQLAG-DR' WITH
(
LISTENER_URL = 'tcp://SQLAG-DR.contoso.com:5022',
AVAILABILITY_MODE = ASYNCHRONOUS_COMMIT,
FAILOVER_MODE = MANUAL,
SEEDING_MODE = AUTOMATIC
);
Adres URL odbiornika jest wirtualną nazwą sieciową (VNN) podstawowej instancji FCI.
Ręczne przełączanie instancji klastra przełączania awaryjnego w rozproszonej grupie dostępności
Aby ręcznie przełączyć grupę dostępności FCI, zaktualizuj rozproszoną grupę dostępności, aby odzwierciedlić zmianę adresu URL listenera. Na przykład, uruchom następujący kod DDL na globalnym głównym węźle rozproszonej grupy dostępności oraz na węźle przesyłania rozproszonej grupy dostępności SQLFCIDAG.
ALTER AVAILABILITY GROUP [SQLFCIDAG]
MODIFY AVAILABILITY GROUP ON
'SQLFCIAG' WITH
(
LISTENER_URL = 'tcp://SQLFCIAG-2.contoso.com:5022'
)