Dela via


Konfigurera en distribuerad AlwaysOn-tillgänglighetsgrupp

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:

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.

  1. 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;
    
  2. 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:

  1. För att förbereda för redundans kontrollerar du att den globala primära och vidarebefordraren är i SYNCHRONOUS_COMMIT läge. Annars ställer du in dem på SYNCHRONOUS_COMMIT via ÄNDRA TILLGÄNGLIGHETSGRUPP.
  2. Ange den distribuerade tillgänglighetsgruppen till synkron överföring både för den globala primärservern och vidarebefordraren.
  3. Vänta tills den distribuerade tillgänglighetsgruppen har synkroniserats.
  4. I den globala primära inställningen anger du inställningen för distribuerad tillgänglighetsgrupp REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT till 1 med hjälp av ÄNDRA TILLGÄNGLIGHETSGRUPP.
  5. Kontrollera att alla repliker i de lokala AG:erna och den distribuerade tillgänglighetsgruppen är felfria och att den distribuerade tillgänglighetsgruppen är SYNKRONISERAd.
  6. På den globala primära repliken anger du rollen distribuerad tillgänglighetsgrupp till SECONDARY, vilket gör den distribuerade tillgänglighetsgruppen otillgänglig.
  7. 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.
  8. På den nya sekundära (den tidigare globala primära repliken) anger du den distribuerade tillgänglighetsgruppen REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT till 0.
  9. 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.

  1. Fråga för att verifiera SYNCHRONOUS_COMMIT om 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);
    
  2. 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_COMMIT tillgänglighetsläge. Därför måste du köra det här skriptet på både den globala primära repliken och vidarebefordraren.

  3. 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.

  4. För SQL Server 2022 (16.x) och senare, ställ REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT till 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);
    
  5. 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');
    
  6. 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);
    
  7. 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 N1 till N3.
    • Vidarebefordraren övergår från N3 till N1.
    • Den distribuerade tillgänglighetsgruppen är tillgänglig.
  8. På den nya vidarebefordraren (tidigare global primär, N1) avmarkerar du egenskapen REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT distribuerad tillgänglighetsgrupp genom att ange den till 0:

    ALTER AVAILABILITY GROUP distributedAG SET (REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT = 0);
    
  9. 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.

Diagram över en AlwaysOn-distribuerad tillgänglighetsgrupp.

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'
    )