Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
gäller för:SQL Server
Om du vill skapa en distribuerad tillgänglighetsgrupp måste du skapa två tillgänglighetsgrupper var och en med en egen lyssnare. Sedan kombinerar du dessa tillgänglighetsgrupper till en distribuerad tillgänglighetsgrupp. Följande steg innehåller ett grundläggande exempel i Transact-SQL. Det här exemplet omfattar inte all information om hur du skapar tillgänglighetsgrupper och lyssnare. I stället fokuserar den på att markera de viktigaste kraven.
En teknisk översikt över distribuerade tillgänglighetsgrupper finns i Distribuerade tillgänglighetsgrupper.
Förutsättningar
Om du vill konfigurera en distribuerad tillgänglighetsgrupp måste du ha följande:
- En version av SQL Server som stöds.
Anmärkning
Om du har konfigurerat lyssnaren för din tillgänglighetsgrupp på din virtuella SQL Server på en virtuell Azure-dator med hjälp av ett distribuerat nätverksnamn (DNN) stöds inte konfigurationen av en distribuerad tillgänglighetsgrupp ovanpå tillgänglighetsgruppen. Mer information finns i SQL Server på Azure VM-funktionens interoperabilitet med AG och DNN-listener.
Behörigheter
Kräver behörigheten SKAPA TILLGÄNGLIGHETSGRUPP på servern för att skapa en tillgänglighetsgrupp och sysadmin redundansväxla en distribuerad tillgänglighetsgrupp.
Ange att databasspeglingsslutpunkterna ska lyssna på alla IP-adresser
Kontrollera att databasspeglingsslutpunkterna kan kommunicera mellan de olika tillgänglighetsgrupperna i den distribuerade tillgänglighetsgruppen. Om en tillgänglighetsgrupp är inställd på ett specifikt nätverk på databasens speglingsslutpunkt fungerar inte den distribuerade tillgänglighetsgruppen korrekt. På varje server som är värd för en replik i den distribuerade tillgänglighetsgruppen ställer du in databasens speglingsslutpunkt så att den lyssnar på alla IP-adresser (LISTENER_IP = ALL).
Skapa en databasspeglingsslutpunkt för att lyssna på alla IP-adresser
Följande skript skapar till exempel en ny databasspeglingsslutpunkt på TCP-port 5022 som lyssnar på alla IP-adresser.
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
Ändra en befintlig databasspeglingsslutpunkt för att lyssna på alla IP-adresser
Följande skript ändrar till exempel en befintlig databasspeglingsslutpunkt för att lyssna på alla IP-adresser.
ALTER ENDPOINT [aodns-hadr]
AS TCP
(
LISTENER_IP = ALL
);
GO
Skapa den första tillgänglighetsgruppen
Skapa den primära tillgänglighetsgruppen i det första klustret
Skapa en tillgänglighetsgrupp på det första Windows Server-redundansklustret (WSFC). I det här exemplet namnges ag1 tillgänglighetsgruppen för databasen db1. Den primära repliken av den primära tillgänglighetsgruppen kallas global primär i en distribuerad tillgänglighetsgrupp. Server1 är den globala primära i det här exemplet.
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
Anmärkning
I föregående exempel används automatisk seeding, där SEEDING_MODE anges till AUTOMATISK för både replikerna och den distribuerade tillgänglighetsgruppen. Den här konfigurationen anger att de sekundära replikerna och den sekundära tillgänglighetsgruppen ska fyllas i automatiskt utan att en manuell säkerhetskopiering och återställning av den primära databasen krävs.
Koppla de sekundära replikerna till den primära tillgänglighetsgruppen
Alla sekundära repliker måste vara anslutna till tillgänglighetsgruppen med ALTER AVAILABILITY GROUP med JOIN alternativet. Eftersom automatisk seeding används i det här exemplet måste du även anropa ALTER AVAILABILITY GROUP med GRANT CREATE ANY DATABASE-alternativet. Med den här inställningen kan tillgänglighetsgruppen skapa databasen och börja seeda den automatiskt från den primära repliken.
I det här exemplet körs följande kommandon på den sekundära repliken, server2, för att ansluta ag1 till tillgänglighetsgruppen. Tillgänglighetsgruppen tillåts sedan att skapa databaser på den sekundära servern.
ALTER AVAILABILITY GROUP [ag1] JOIN
ALTER AVAILABILITY GROUP [ag1] GRANT CREATE ANY DATABASE
GO
Anmärkning
När tillgänglighetsgruppen skapar en databas på en sekundär replik anger den databasägaren som det konto som körde -instruktionen ALTER AVAILABILITY GROUP för att ge behörighet att skapa en databas. Fullständig information finns i Bevilja behörighet att skapa databas på sekundär replik till tillgänglighetsgrupp.
Skapa en lyssnare för den primära tillgänglighetsgruppen
Lägg sedan till en lyssnare för den primära tillgänglighetsgruppen på den första WSFC. I det här exemplet heter lyssnaren ag1-listener. Detaljerade anvisningar om hur du skapar en lyssnare finns i Skapa eller konfigurera en tillgänglighetsgrupplyssnare (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
Skapa en andra tillgänglighetsgrupp
På den andra WSFC skapar du sedan en andra tillgänglighetsgrupp, ag2. I det här fallet anges inte databasen eftersom den automatiskt kommer från den primära tillgänglighetsgruppen. Den primära repliken av den sekundära tillgänglighetsgruppen kallas vidarebefordraren i en distribuerad tillgänglighetsgrupp. I det här exemplet är server3 vidarebefordraren.
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
Anmärkning
- Den sekundära tillgänglighetsgruppen måste använda samma databasspeglingsslutpunkt (i det här exemplet port 5022). Annars stoppas replikeringen efter en lokal redundansväxling.
- De underliggande tillgänglighetsgrupperna bör vara i samma tillgänglighetsläge – antingen ska båda tillgänglighetsgrupperna vara i synkront incheckningsläge eller båda ska vara i asynkront incheckningsläge. Om du inte är säker på vilken du ska använda, ställ in båda på asynkront commit-läge tills du är redo att överflytta.
Anslut de sekundära replikerna till den sekundära tillgänglighetsgruppen
I det här exemplet körs följande kommandon på den sekundära repliken, server4, för att ansluta ag2 till tillgänglighetsgruppen. Tillgänglighetsgruppen tillåts sedan att skapa databaser på den sekundära för att stödja automatisk seeding.
ALTER AVAILABILITY GROUP [ag2] JOIN
ALTER AVAILABILITY GROUP [ag2] GRANT CREATE ANY DATABASE
GO
Skapa en lyssnare för den sekundära tillgänglighetsgruppen
Lägg sedan till en lyssnare för den sekundära tillgänglighetsgruppen på den andra WSFC. I det här exemplet heter lyssnaren ag2-listener. Detaljerade anvisningar om hur du skapar en lyssnare finns i Skapa eller konfigurera en tillgänglighetsgrupplyssnare (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
Skapa distribuerad tillgänglighetsgrupp i det första klustret
På den första WSFC skapar du en distribuerad tillgänglighetsgrupp (med namnet distributedAG i det här exemplet). Använd kommandot CREATE AVAILABILITY GROUP (SKAPA TILLGÄNGLIGHETSGRUPP ) med alternativet DISTRIBUERAD . Parametern AVAILABILITY GROUP ON anger medlemstillgänglighetsgrupperna ag1 och ag2.
Om du vill skapa din distribuerade tillgänglighetsgrupp med automatisk seeding använder du följande Transact-SQL kod:
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
Anmärkning
LISTENER_URL anger lyssnaren för varje tillgänglighetsgrupp tillsammans med databasens speglingsslutpunkt för tillgänglighetsgruppen. I det här exemplet är det port 5022 (inte port 60173 som används för att skapa lyssnaren). Om du använder en lastbalanserare, till exempel i Azure, lägger du till en belastningsutjämningsregel för den distribuerade tillgänglighetsgruppens port. Lägg till regeln för lyssnarporten, utöver SQL Server-instansporten.
Avbryt automatisk seeding till vidarebefordrare
Om det av någon anledning blir nödvändigt att avbryta initieringen av vidarebefordraren innan de två tillgänglighetsgrupperna synkroniseras ändrar du den distribuerade tillgänglighetsgruppen genom att ställa in vidarebefordrarens SEEDING_MODE parameter till MANUELL och omedelbart avbryta seedingen. Kör kommandot på den globala primära:
-- Cancel automatic seeding. Connect to global primary but specify DAG AG2
ALTER AVAILABILITY GROUP [distributedAG]
MODIFY
AVAILABILITY GROUP ON
'ag2' WITH
( SEEDING_MODE = MANUAL );
Ansluta till distribuerad tillgänglighetsgrupp i det andra klustret
Anslut sedan den distribuerade tillgänglighetsgruppen på den andra WSFC:n.
Om du vill ansluta till din distribuerade tillgänglighetsgrupp med automatisk seeding använder du följande Transact-SQL kod:
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
Anslut databasen till sekundären i den andra tillgänglighetsgruppen
Om den andra tillgänglighetsgruppen har konfigurerats för att använda automatisk seeding, så går du vidare till steg 2.
Om den andra tillgänglighetsgruppen använder manuell seeding, återställ säkerhetskopian som du tog från det globala primära till det sekundära i den andra tillgänglighetsgruppen.
RESTORE DATABASE [db1] FROM DISK = '<full backup location>' WITH NORECOVERY; RESTORE LOG [db1] FROM DISK = '<log backup location>' WITH NORECOVERY;När databasen på den sekundära repliken av den andra tillgänglighetsgruppen är i ett återställningstillstånd måste du manuellt ansluta den till tillgänglighetsgruppen.
ALTER DATABASE [db1] SET HADR AVAILABILITY GROUP = [ag2];
Övergång i en distribuerad tillgänglighetsgrupp
Eftersom SQL Server 2022 (16.x) introducerade stöd för distribuerade tillgänglighetsgrupper för REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT-inställningen är instruktionerna för att redundansväxla en distribuerad tillgänglighetsgrupp olika för SQL Server 2022 och senare versioner jämfört med SQL Server 2019 och tidigare versioner.
För en distribuerad tillgänglighetsgrupp är den enda redundanstypen som stöds en manuell användarinitierad FORCE_FAILOVER_ALLOW_DATA_LOSS. För att förhindra dataförlust måste du därför vidta extra åtgärder (beskrivs i detalj i det här avsnittet) för att säkerställa att data synkroniseras mellan de två replikerna innan du påbörjar redundansväxlingen.
I händelse av en nödsituation där dataförlust är acceptabel kan du initiera en redundansväxling utan att säkerställa datasynkronisering genom att köra:
ALTER AVAILABILITY GROUP distributedAG FORCE_FAILOVER_ALLOW_DATA_LOSS;
Du kan använda samma kommando för att växla till forwarder, och växla tillbaka till den globala primärservern.
På SQL Server 2022 (16.x) och senare kan du konfigurera REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT inställningen för en distribuerad tillgänglighetsgrupp, som är utformad för att garantera ingen dataförlust när en distribuerad tillgänglighetsgrupp redundansväxlar. Om den här inställningen har konfigurerats, följ stegen i det här avsnittet för att växla över din distribuerade tillgänglighetsgrupp. Om du inte vill använda REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT-inställningen, följer du anvisningarna för att växla över en distribuerad tillgänglighetsgrupp i SQL Server 2019 och tidigare.
Anmärkning
Inställningen REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT till 1 innebär att den primära repliken väntar på att transaktioner ska checkas in på den sekundära repliken innan de checkas in på den primära repliken, vilket kan försämra prestandan. Det krävs inte att du begränsar eller stoppar transaktioner på den globala primära resursen för att den distribuerade tillgänglighetsgruppen ska synkroniseras i SQL Server 2022 (16.x), men det kan förbättra prestandan för både användartransaktioner och synkronisering av distribuerade tillgänglighetsgrupper med REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT värdet 1.
Steg för att säkerställa att inga data går förlorade
För att säkerställa att inga data går förlorade måste du först konfigurera den distribuerade tillgänglighetsgruppen så att den inte stöder dataförlust genom att följa dessa steg:
- För att förbereda för redundans kontrollerar du att den globala primära och vidarebefordraren är i
SYNCHRONOUS_COMMITläge. Annars ställer du in dem påSYNCHRONOUS_COMMITvia ÄNDRA TILLGÄNGLIGHETSGRUPP. - Ange den distribuerade tillgänglighetsgruppen till synkron överföring både för den globala primärservern och vidarebefordraren.
- Vänta tills den distribuerade tillgänglighetsgruppen har synkroniserats.
- I den globala primära inställningen anger du inställningen för distribuerad tillgänglighetsgrupp
REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMITtill 1 med hjälp av ÄNDRA TILLGÄNGLIGHETSGRUPP. - Kontrollera att alla repliker i de lokala AG:erna och den distribuerade tillgänglighetsgruppen är felfria och att den distribuerade tillgänglighetsgruppen är SYNKRONISERAd.
- På den globala primära repliken anger du rollen distribuerad tillgänglighetsgrupp till
SECONDARY, vilket gör den distribuerade tillgänglighetsgruppen otillgänglig. - På vidarebefordraren (den avsedda nya primära) redundansväxlar du den distribuerade tillgänglighetsgruppen med hjälp av ALTER AVAILABILITY GROUP med
FORCE_FAILOVER_ALLOW_DATA_LOSS. - På den nya sekundära (den tidigare globala primära repliken) anger du den distribuerade tillgänglighetsgruppen
REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMITtill 0. - Valfritt: Om tillgänglighetsgrupperna är över ett geografiskt avstånd som orsakar svarstid ändrar du tillgänglighetsläget till
ASYNCHRONOUS_COMMIT. Detta återställer ändringen från det första steget om det behövs.
T-SQL-exempel
Det här avsnittet innehåller stegen i en detaljerad instruktion för att växla över den distribuerade tillgänglighetsgruppen med namnet distributedAG med hjälp av Transact-SQL. Exempelmiljön har totalt 4 noder för den distribuerade tillgänglighetsgruppen. Den globala primära N1- och N2-värdtillgänglighetsgruppen ag1 medan vidarebefordraren N3 och N4-värdtillgänglighetsgruppen ag2. Den distribuerade tillgänglighetsgruppen distributedAG skickar ändringar från ag1 till ag2.
Fråga för att verifiera
SYNCHRONOUS_COMMITom primärenheterna för de lokala tillgänglighetsgrupper som utgör den distribuerade tillgänglighetsgruppen. Kör följande T-SQL direkt på vidarebefordraren och den globala primärservern: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);Ställ in den distribuerade tillgänglighetsgruppen på synkron commit genom att köra följande kod på både den globala primärnoden och vidarebefordraren.
-- 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);Anmärkning
I en distribuerad tillgänglighetsgrupp beror synkroniseringsstatusen mellan de två tillgänglighetsgrupperna på tillgänglighetsläget för båda replikerna. För synkront förbindelseläge måste både den aktuella primära tillgänglighetsgruppen och den aktuella sekundära tillgänglighetsgruppen ha
SYNCHRONOUS_COMMITtillgänglighetsläge. Därför måste du köra det här skriptet på både den globala primära repliken och vidarebefordraren.Vänta tills statusen för den distribuerade tillgänglighetsgruppen ändras till
SYNCHRONIZED. Kör följande fråga på den globala primären:-- Run this query on the Global Primary -- 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];Fortsätt när tillgänglighetsgruppen synchronization_state_desc är
SYNCHRONIZED.För SQL Server 2022 (16.x) och senare, ställ
REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMITtill 1 på den globala primärservern med hjälp av följande T-SQL-kommando:ALTER AVAILABILITY GROUP distributedAG SET (REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT = 1);Kontrollera att dina tillgänglighetsgrupper är felfria på alla repliker genom att fråga den globala primära och vidarebefordraren:
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');På den globala primära, ange rollen för den distribuerade tillgänglighetsgruppen till
SECONDARY. Nu är den distribuerade tillgänglighetsgruppen inte tillgänglig. När det här steget är klart kan du inte gå tillbaka förrän resten av stegen har utförts.ALTER AVAILABILITY GROUP distributedAG SET (ROLE = SECONDARY);Växla över från den globala primära servern genom att köra följande kommando på den vidarebefordrande servern för att överföra tillgänglighetsgrupperna och återaktivera den distribuerade tillgänglighetsgruppen 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;Efter det här steget:
- De globala primära övergångarna från
N1tillN3. - Vidarebefordraren övergår från
N3tillN1. - Den distribuerade tillgänglighetsgruppen är tillgänglig.
- De globala primära övergångarna från
På den nya vidarebefordraren (tidigare global primär,
N1) avmarkerar du egenskapenREQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMITdistribuerad tillgänglighetsgrupp genom att ange den till 0:ALTER AVAILABILITY GROUP distributedAG SET (REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT = 0);VALFRITT: Om tillgänglighetsgrupperna befinner sig över ett geografiskt avstånd som orsakar svarstid bör du överväga att ändra tillgänglighetsläget tillbaka till
ASYNCHRONOUS_COMMITpå både den globala primära och vidarebefordraren. Detta återställer ändringen som gjordes i det första steget, om det behövs.-- 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);
Ta bort en distribuerad tillgänglighetsgrupp
Följande Transact-SQL-instruktion tar bort en distribuerad tillgänglighetsgrupp med namnet distributedAG:
DROP AVAILABILITY GROUP distributedAG;
Skapa distribuerad tillgänglighetsgrupp för redundansklusterinstanser
Du kan skapa en distribuerad tillgänglighetsgrupp med hjälp av en tillgänglighetsgrupp på en redundansklusterinstans (FCI). I det här fallet behöver du ingen lyssnare för tillgänglighetsgrupper. Använd det virtuella nätverksnamnet (VNN) för den primära repliken av FCI-instansen. I följande exempel visas en distribuerad tillgänglighetsgrupp med namnet SQLFCIDAG. En tillgänglighetsgrupp är SQLFCIAG. SQLFCIAG har två FCI-repliker. VNN för den primära FCI-repliken är SQLFCIAG-1 och VNN för den sekundära FCI-repliken är SQLFCIAG-2. Den distribuerade tillgänglighetsgruppen inkluderar även SQLAG-DR för katastrofåterställning.
Följande DDL skapar den här distribuerade tillgänglighetsgruppen:
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
);
Lyssnare-URL:en är VNN för den primära FCI-instansen.
Manuellt överföra felläge FCI i distribuerad tillgänglighetsgrupp
För att manuellt växla över FCI-tillgänglighetsgruppen uppdaterar du den distribuerade tillgänglighetsgruppen för att återspegla ändringen i URL för lyssnare. Kör till exempel följande DDL på både den globala primärservern för den distribuerade tillgänglighetsgruppen och förmedlaren i den distribuerade tillgänglighetsgruppen i SQLFCIDAG.
ALTER AVAILABILITY GROUP [SQLFCIDAG]
MODIFY AVAILABILITY GROUP ON
'SQLFCIAG' WITH
(
LISTENER_URL = 'tcp://SQLFCIAG-2.contoso.com:5022'
)