ALTER DATABASE (Transact-SQL) SET HADR

Gäller för:SQL Server

Detta ämne innehåller syntaxen ALTER DATABASE för att ställa in Always On-tillgänglighetsgrupper-alternativ på en sekundär databas. Endast ett SET HADR alternativ är tillåtet per ALTER DATABASE kontoutdrag. Dessa alternativ stöds endast på sekundära repliker.

Transact-SQL syntaxkonventioner

Syntax

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

Arguments

database_name
Är namnet på den sekundära databasen som ska ändras.

SET HADR
Utför det specificerade Always On-tillgänglighetsgruppkommandot på den angivna databasen.

{ AVAILABILITY GROUP=group_name | FEL }
Ansluter till eller tar bort tillgänglighetsdatabasen från den angivna tillgänglighetsgruppen, enligt följande:

group_name
Ansluter till den specificerade databasen på den sekundära repliken som hostas av serverinstansen där du kör kommandot till tillgänglighetsgruppen som anges av group_name.

Förutsättningarna för denna operation är följande:

  • Databasen måste redan ha lagts till i tillgänglighetsgruppen på primärrepliken.

  • Den primära replikan måste vara aktiv. För information om hur man felsöker en inaktiv primär replik, se Felsökning av Always On Availability Groups Configuration (SQL Server).

  • Den primära replikan måste vara online, och den sekundära repliken måste vara ansluten till den primära.

  • Den sekundära databasen måste ha återställts med hjälp av WITH NORECOVERY från den senaste databasen och loggkopior av primärdatabasen, och avslutas med en loggbackup som är tillräckligt ny för att den sekundära databasen ska hinna ikapp primärdatabasen.

    Anmärkning

    För att lägga till en databas i tillgänglighetsgruppen, koppla upp dig mot serverinstansen som hostar primärrepliken och använd satsenALTER AVAILABILITY GROUP group_name ADD DATABASEdatabase_name.

Mer information finns i Ansluta en sekundär databas till en tillgänglighetsgrupp (SQL Server).

OFF
Tar bort den angivna sekundära databasen från tillgänglighetsgruppen.

Att ta bort en sekundär databas kan vara användbart om den har halkat långt efter primärdatabasen och du inte vill vänta på att den sekundära databasen ska komma ikapp. Efter att ha tagit bort den sekundära databasen kan du uppdatera den genom att återställa en sekvens av säkerhetskopior som avslutas med en nyligen loggbackup (med ... RESTORE UTAN ÅTERHÄMTNING).

Important

För att helt ta bort en tillgänglighetsdatabas från en tillgänglighetsgrupp, koppla upp dig till serverinstansen som är värd för primärrepliken och använd satsenALTER AVAILABILITY GROUP group_name REMOVE DATABASEavailability_database_name. För mer information, se Ta bort en primär databas från en tillgänglighetsgrupp (SQL Server).

SUSPEND
Pausar datarörelsen i en sekundär databas. Ett SUSPEND-kommando returneras så snart det har godkänts av repliken som är värd för måldatabasen, men att pausa databasen sker asynkront.

Omfattningen av påverkan beror på var du utför uttalandet ALTER DATABASE :

  • Om du pausar en sekundär databas på en sekundär replik är det bara den lokala sekundära databasen som stängs av. Befintliga anslutningar på den läsbara sekundära förblir användbara. Nya anslutningar till den inaktiverade databasen på den läsbara sekundära filen tillåts inte förrän dataflytten återupptas.

  • Om du pausar en databas på den primära repliken, avbryts datarörelsen till motsvarande sekundära databaser på varje sekundär replik. Befintliga anslutningar på en läsbar sekundär förblir användbara, och nya läsavsiktsanslutningar kommer inte att ansluta till läsbara sekundära repliker.

  • När datarörelsen avbryts på grund av en tvingad manuell failover tillåts inga anslutningar till den nya sekundära repliken medan datarörelsen är pausad.

När en databas på en sekundär replik pausas blir både databasen och repliken osynkroniserade och markeras som EJ SYNKRONISERADE.

Important

När en sekundär databas är pausad kommer sändningskön i motsvarande primärdatabas att samla på sig oskickade transaktionsloggposter. Anslutningar till den sekundära repliken returnerar data som var tillgängliga när dataflytten avbröts.

Anmärkning

Att pausa och återuppta en Always On-sekundär databas påverkar inte direkt tillgängligheten för primärdatabasen, även om paus av en sekundär databas kan påverka redundans och failover-möjligheter för primärdatabasen, tills den pausade sekundärdatabasen återupptas. Detta står i kontrast till databasspegling, där speglingstillståndet pausas på både speglingsdatabasen och huvuddatabasen tills speglingen återupptas. Om du pausar en Always On-primär databas pausas dataöverföringen på alla motsvarande sekundära databaser, och redundans- och failoverfunktioner upphör för den databasen tills den primära databasen återupptas.

För mer information, se Suspend an Availability Database (SQL Server).

RESUME
Återupptar avstängd datarörelse på den angivna sekundära databasen. Ett RESUME-kommando returneras så snart det har godkänts av repliken som är värd för måldatabasen, men att återuppta databasen sker asynkront.

Omfattningen av påverkan beror på var du utför uttalandet ALTER DATABASE :

  • Om du återupptar en sekundär databas på en sekundär replik, återupptas endast den lokala sekundära databasen. Datarörelsen återupptas om inte databasen också har pausats på primärkopian.

  • Om du återupptar en databas på primärkopian återupptas datarörelsen till varje sekundär replik där motsvarande sekundära databas inte också har pausats lokalt. För att återuppta en sekundär databas som var individuellt pausad på en sekundär replik, koppla upp dig mot serverinstansen som hostar den sekundära repliken och återuppta databasen där.

    Under synkront-commit-läge ändras databasens tillstånd till SYNKRONISERING. Om ingen annan databas för närvarande är avstängd ändras replikans tillstånd också till SYNCHRONIZING.

    Mer information finns i Återuppta en tillgänglighetsdatabas (SQL Server).

Databastillstånd

När en sekundär databas kopplas till en tillgänglighetsgrupp ändrar den lokala sekundära repliken tillståndet för den sekundära databasen från RESTORING till ONLINE. Om en sekundär databas tas bort från tillgänglighetsgruppen återställs den till RESTAURING-tillståndet av den lokala sekundära repliken. Detta gör att du kan göra efterföljande loggkopior från den primära databasen till den sekundära databasen.

Restrictions

Utför ALTER DATABASE satser utanför både transaktioner och batcher.

Security

Permissions

Kräver ALTER-behörighet för databasen. Att ansluta en databas till en tillgänglighetsgrupp kräver medlemskap i rollen db_owner fast databas.

Examples

I följande exempel kopplas den sekundära databasen, , AccountsDb1till den lokala sekundära repliken för AccountsAG tillgänglighetsgruppen.

ALTER DATABASE AccountsDb1 SET HADR AVAILABILITY GROUP = AccountsAG;  

Anmärkning

Information om hur du ser den här Transact-SQL-instruktionen som används i kontexten finns i Skapa en tillgänglighetsgrupp (Transact-SQL).

Se även

ALTER DATABASE (Transact-SQL)
ALTER AVAILABILITY GROUP (Transact-SQL)
CREATE AVAILABILITY GROUP (Transact-SQL)
Översikt över Always On tillgänglighetsgrupper (SQL Server)Felsökning av konfiguration av Always On-tillgänglighetsgrupper (SQL Server)