ÄNDRA TILLGÄNGLIGHETSGRUPP (Transact-SQL)
gäller för:SQL Server
Ändrar en befintlig AlwaysOn-tillgänglighetsgrupp i SQL Server. De flesta ALTER AVAILABILITY GROUP-argument stöds endast för den aktuella primära repliken. Argumenten JOIN, FAILOVER och FORCE_FAILOVER_ALLOW_DATA_LOSS stöds dock endast på sekundära repliker.
Transact-SQL syntaxkonventioner
Syntax
ALTER AVAILABILITY GROUP group_name
{
SET ( <set_option_spec> )
| ADD DATABASE database_name
| REMOVE DATABASE database_name
| ADD REPLICA ON <add_replica_spec>
| MODIFY REPLICA ON <modify_replica_spec>
| REMOVE REPLICA ON <server_instance>
| JOIN
| JOIN AVAILABILITY GROUP ON <add_availability_group_spec> [ ,...2 ]
| MODIFY AVAILABILITY GROUP ON <modify_availability_group_spec> [ ,...2 ]
| GRANT CREATE ANY DATABASE
| DENY CREATE ANY DATABASE
| FAILOVER
| FORCE_FAILOVER_ALLOW_DATA_LOSS
| ADD LISTENER 'dns_name' ( <add_listener_option> )
| MODIFY LISTENER 'dns_name' ( <modify_listener_option> )
| RESTART LISTENER 'dns_name'
| REMOVE LISTENER 'dns_name'
| OFFLINE
}
[ ; ]
<set_option_spec> ::=
AUTOMATED_BACKUP_PREFERENCE = { PRIMARY | SECONDARY_ONLY| SECONDARY | NONE }
| FAILURE_CONDITION_LEVEL = { 1 | 2 | 3 | 4 | 5 }
| HEALTH_CHECK_TIMEOUT = milliseconds
| DB_FAILOVER = { ON | OFF }
| DTC_SUPPORT = { PER_DB | NONE }
| REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT = { integer }
| ROLE = SECONDARY
<server_instance> ::=
{ 'system_name[\instance_name]' | 'FCI_network_name[\instance_name]' }
<add_replica_spec>::=
<server_instance> WITH
(
ENDPOINT_URL = 'TCP://system-address:port',
AVAILABILITY_MODE = { SYNCHRONOUS_COMMIT | ASYNCHRONOUS_COMMIT | CONFIGURATION_ONLY },
FAILOVER_MODE = { AUTOMATIC | MANUAL }
[ , <add_replica_option> [ ,...n ] ]
)
<add_replica_option>::=
SEEDING_MODE = { AUTOMATIC | MANUAL }
| BACKUP_PRIORITY = n
| SECONDARY_ROLE ( {
[ ALLOW_CONNECTIONS = { NO | READ_ONLY | ALL } ]
[,] [ READ_ONLY_ROUTING_URL = 'TCP://system-address:port' ]
} )
| PRIMARY_ROLE ( {
[ ALLOW_CONNECTIONS = { READ_WRITE | ALL } ]
[,] [ READ_ONLY_ROUTING_LIST = { ( '<server_instance>' [ ,...n ] ) | NONE } ]
[,] [ READ_WRITE_ROUTING_URL = 'TCP://system-address:port' ]
} )
| SESSION_TIMEOUT = integer
<modify_replica_spec>::=
<server_instance> WITH
(
ENDPOINT_URL = 'TCP://system-address:port'
| AVAILABILITY_MODE = { SYNCHRONOUS_COMMIT | ASYNCHRONOUS_COMMIT }
| FAILOVER_MODE = { AUTOMATIC | MANUAL }
| SEEDING_MODE = { AUTOMATIC | MANUAL }
| BACKUP_PRIORITY = n
| SECONDARY_ROLE ( {
ALLOW_CONNECTIONS = { NO | READ_ONLY | ALL }
| READ_ONLY_ROUTING_URL = 'TCP://system-address:port'
} )
| PRIMARY_ROLE ( {
ALLOW_CONNECTIONS = { READ_WRITE | ALL }
| READ_ONLY_ROUTING_LIST = { ( '<server_instance>' [ ,...n ] ) | NONE }
| READ_WRITE_ROUTING_URL = 'TCP://system-address:port'
} )
| SESSION_TIMEOUT = seconds
)
<add_availability_group_spec>::=
<ag_name> WITH
(
LISTENER_URL = 'TCP://system-address:port',
AVAILABILITY_MODE = { SYNCHRONOUS_COMMIT | ASYNCHRONOUS_COMMIT },
FAILOVER_MODE = MANUAL,
SEEDING_MODE = { AUTOMATIC | MANUAL }
)
<modify_availability_group_spec>::=
<ag_name> WITH
(
LISTENER = 'TCP://system-address:port'
| AVAILABILITY_MODE = { SYNCHRONOUS_COMMIT | ASYNCHRONOUS_COMMIT }
| SEEDING_MODE = { AUTOMATIC | MANUAL }
)
<add_listener_option> ::=
{
WITH DHCP [ ON ( <network_subnet_option> ) ]
| WITH IP ( { ( <ip_address_option> ) } [ , ...n ] ) [ , PORT = listener_port ]
}
<network_subnet_option> ::=
'ipv4_address', 'ipv4_mask'
<ip_address_option> ::=
{
'four_part_ipv4_address', 'four_part_ipv4_mask'
| 'ipv6_address'
}
<modify_listener_option>::=
{
ADD IP ( <ip_address_option> )
| PORT = listener_port
}
Argument
group_name
Anger namnet på den nya tillgänglighetsgruppen. group_name måste vara en giltig SQL Server-identifierare och måste vara unik för alla tillgänglighetsgrupper i WSFC-klustret.
AUTOMATED_BACKUP_PREFERENCE = { PRIMARY | SECONDARY_ONLY| SEKUNDÄR | NONE }
Anger en inställning för hur ett säkerhetskopieringsjobb ska utvärdera den primära repliken när du väljer var säkerhetskopiering ska utföras. Du kan skripta ett visst säkerhetskopieringsjobb för att ta hänsyn till inställningen för automatisk säkerhetskopiering. Det är viktigt att förstå att inställningen inte tillämpas av SQL Server, så det påverkar inte ad hoc-säkerhetskopior.
Stöds endast på den primära repliken.
Värdena är följande:
PRIMÄR
Anger att säkerhetskopiorna alltid ska ske på den primära repliken. Det här alternativet är användbart om du behöver säkerhetskopieringsfunktioner, till exempel att skapa differentiella säkerhetskopior, som inte stöds när säkerhetskopiering körs på en sekundär replik.
Viktig
Om du planerar att använda loggöverföring för att förbereda sekundära databaser för en tillgänglighetsgrupp anger du inställningen för automatisk säkerhetskopiering till Primär tills alla sekundära databaser har förberetts och anslutits till tillgänglighetsgruppen.
SECONDARY_ONLY
Anger att säkerhetskopieringar aldrig ska utföras på den primära repliken. Om den primära repliken är den enda repliken online bör säkerhetskopieringen inte ske.
SEKUNDÄR
Anger att säkerhetskopieringar ska ske på en sekundär replik, förutom när den primära repliken är den enda repliken online. I så fall bör säkerhetskopieringen ske på den primära repliken. Det här är standardbeteendet.
INGEN
Anger att du föredrar att säkerhetskopieringsjobb ignorerar rollen för tillgänglighetsreplikerna när du väljer repliken för att utföra säkerhetskopior. Observera att säkerhetskopieringsjobb kan utvärdera andra faktorer, till exempel säkerhetskopieringsprioritet för varje tillgänglighetsreplik i kombination med dess drifttillstånd och anslutna tillstånd.
Viktig
Det finns ingen tillämpning av inställningen AUTOMATED_BACKUP_PREFERENCE. Tolkningen av den här inställningen beror på logiken, om någon, som du skriptar till serverjobb för databaserna i en viss tillgänglighetsgrupp. Inställningen för automatisk säkerhetskopiering har ingen inverkan på ad hoc-säkerhetskopior. Mer information finns i Konfigurera säkerhetskopiering av tillgänglighetsrepliker (SQL Server).
Not
Om du vill visa inställningen för automatisk säkerhetskopiering för en befintlig tillgänglighetsgrupp väljer du kolumnen automated_backup_preference eller automated_backup_preference_desc i sys.availability_groups katalogvyn. Dessutom kan sys.fn_hadr_backup_is_preferred_replica (Transact-SQL) användas för att fastställa önskad säkerhetskopieringsreplik. Den här funktionen returnerar alltid 1 för minst en av replikerna, även när AUTOMATED_BACKUP_PREFERENCE = NONE
.
FAILURE_CONDITION_LEVEL = { 1 | 2 | 3 | 4 | 5 }
Anger vilka felvillkor som utlöser en automatisk redundans för den här tillgänglighetsgruppen. FAILURE_CONDITION_LEVEL anges på gruppnivå men är endast relevant för tillgänglighetsrepliker som har konfigurerats för synkront tillgänglighetsläge (AVAILABILITY_MODE = SYNCHRONOUS_COMMIT). Dessutom kan feltillstånd endast utlösa automatisk redundans om både de primära och sekundära replikerna har konfigurerats för automatiskt redundansläge (FAILOVER_MODE = AUTOMATISK) och den sekundära repliken för närvarande synkroniseras med den primära repliken.
Stöds endast på den primära repliken.
Felvillkorsnivåerna (1–5) sträcker sig från den minst restriktiva nivån 1 till den mest restriktiva nivån 5. En viss villkorsnivå omfattar alla mindre restriktiva nivåer. Den strängaste villkorsnivån, 5, innehåller därför de fyra mindre restriktiva villkorsnivåerna (1–4), nivå 4 innehåller nivåerna 1–3 och så vidare. I följande tabell beskrivs det felvillkor som motsvarar varje nivå.
Nivå | Feltillstånd |
---|---|
1 | Anger att en automatisk redundansväxling ska initieras när något av följande inträffar: SQL Server-tjänsten är nere. Lånet av tillgänglighetsgruppen för anslutning till WSFC-klustret upphör att gälla eftersom ingen ACK tas emot från serverinstansen. Mer information finns i How It Works: SQL Server Always On Lease Timeout. |
2 | Anger att en automatisk redundansväxling ska initieras när något av följande inträffar: Instansen av SQL Server ansluter inte till klustret och det användardefinierade HEALTH_CHECK_TIMEOUT tröskelvärdet för tillgänglighetsgruppen överskrids. Tillgänglighetsrepliken är i fel tillstånd. |
3 | Anger att en automatisk redundansväxling ska initieras på kritiska interna SQL Server-fel, till exempel överblivna spinlocks, allvarliga överträdelser av skrivåtkomst eller för mycket dumpning. Det här är standardbeteendet. |
4 | Anger att en automatisk redundansväxling ska initieras på måttliga interna SQL Server-fel, till exempel ett beständigt out-of-memory-villkor i den interna SQL Server-resurspoolen. |
5 | Anger att en automatisk redundansväxling ska initieras på alla kvalificerade feltillstånd, inklusive: Överbelastning av SQL Engine-arbetstrådar. Identifiering av ett olösbart dödläge. |
Not
Brist på svar från en instans av SQL Server på klientbegäranden är inte relevant för tillgänglighetsgrupper.
Värdena FAILURE_CONDITION_LEVEL och HEALTH_CHECK_TIMEOUT definierar en flexibel redundansprincip för en viss grupp. Den här flexibla redundanspolicyn ger dig detaljerad kontroll över vilka villkor som måste orsaka en automatisk redundansväxling. Mer information finns i flexibel redundansprincip för automatisk redundans för en tillgänglighetsgrupp (SQL Server).
HEALTH_CHECK_TIMEOUT = millisekunder
Anger väntetiden (i millisekunder) för den sp_server_diagnostics system lagrade proceduren för att returnera information om serverhälsa innan WSFC-klustret förutsätter att serverinstansen är långsam eller inte svarar. HEALTH_CHECK_TIMEOUT anges på gruppnivå men är endast relevant för tillgänglighetsrepliker som är konfigurerade för synkront incheckningstillgänglighetsläge med automatisk redundans (AVAILABILITY_MODE = SYNCHRONOUS_COMMIT). Dessutom kan en timeout för hälsokontroll utlösa en automatisk redundansväxling endast om både de primära och sekundära replikerna har konfigurerats för automatiskt redundansläge (FAILOVER_MODE = AUTOMATISK) och den sekundära repliken för närvarande synkroniseras med den primära repliken.
Standardvärdet HEALTH_CHECK_TIMEOUT är 3 0000 millisekunder (30 sekunder). Minimivärdet är 15 000 millisekunder (15 sekunder) och det maximala värdet är 4 294 967 295 millisekunder.
Stöds endast på den primära repliken.
Viktig
sp_server_diagnostics utför inte hälsokontroller på databasnivå.
DB_FAILOVER = { ON | AV }
Anger svaret som ska tas när en databas på den primära repliken är offline. När värdet är PÅ utlöser alla andra statusar än ONLINE för en databas i tillgänglighetsgruppen en automatisk redundansväxling. När det här alternativet är inställt på AV används endast instansens hälsotillstånd för att utlösa automatisk redundans.
Mer information om den här inställningen finns i alternativ för hälsoidentifiering på databasnivå
DTC_SUPPORT = { PER_DB | NONE }
Anger om distribuerade transaktioner är aktiverade för den här tillgänglighetsgruppen. Distribuerade transaktioner stöds endast för tillgänglighetsgruppdatabaser från och med SQL Server 2016 (13.x) och transaktioner mellan databaser stöds endast från och med SQL Server 2016 (13.x) SP2.
PER_DB
skapar tillgänglighetsgruppen med stöd för dessa transaktioner och befordrar automatiskt transaktioner mellan databaser som involverar databaser i tillgänglighetsgruppen till distribuerade transaktioner.
NONE
förhindrar automatisk befordran av transaktioner mellan databaser till distribuerade transaktioner och registrerar inte databasen med ett stabilt RMID i DTC. Distribuerade transaktioner förhindras inte när inställningen NONE
används, men databasredundans och automatisk återställning kanske inte lyckas under vissa omständigheter. Mer information finns i transaktioner mellan databaser och distribuerade transaktioner för AlwaysOn-tillgänglighetsgrupper och databasspegling (SQL Server).
Not
Stöd för att ändra inställningen DTC_SUPPORT för en tillgänglighetsgrupp introducerades i SQL Server 2016 (13.x) Service Pack 2. Det här alternativet kan inte användas med tidigare versioner. Om du vill ändra den här inställningen i tidigare versioner av SQL Server måste du släppa och skapa tillgänglighetsgruppen igen.
Viktig
DTC har en gräns på 32 registreringar per distribuerad transaktion. Eftersom varje databas i en tillgänglighetsgrupp registrerar sig separat med DTC kan du få följande fel när SQL Server försöker registrera den 33:e databasen om transaktionen omfattar fler än 32 databaser:
Enlist operation failed: 0x8004d101(XACT_E_TOOMANY_ENLISTMENTS). SQL Server could not register with Microsoft Distributed Transaction Coordinator (MS DTC) as a resource manager for this transaction. The transaction may have been stopped by the client or the resource manager.
Mer information om distribuerade transaktioner i SQL Server finns i distribuerade transaktioner
REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT
Introducerades i SQL Server 2017 (14.x). Anger ett minsta antal synkrona sekundära repliker som krävs för att checka in innan den primära repliken genomför en transaktion. Garanterar att SQL Server-transaktioner väntar tills transaktionsloggarna uppdateras på det minsta antalet sekundära repliker.
- Standard: 0. Ger samma beteende som SQL Server 2016 (13.x).
- Minimum: 0.
- Max: Antal repliker minus 1.
REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT relaterar till repliker i synkront incheckningsläge. När replikerna är i synkront incheckningsläge väntar skrivningar på den primära repliken tills skrivningar på synkrona repliker checkar in i transaktionsloggen för replikdatabasen. Om en SQL Server som är värd för en sekundär synkron replik slutar svara markerar DEN SQL Server som är värd för den primära repliken den sekundära repliken som INTE SYNKRONISERAd och fortsätter. När databasen som inte svarar är online igen är den i tillståndet "inte synkroniserad" och repliken markeras som inte felfri tills den primära kan synkronisera den igen. Den här inställningen garanterar att den primära repliken inte fortsätter förrän det minsta antalet repliker har checkat in varje transaktion. Om det minsta antalet repliker inte är tillgängligt checkar du in på det primära felet. För klustertyp EXTERNAL
ändras inställningen när tillgänglighetsgruppen läggs till i en klusterresurs. Se Hög tillgänglighet och dataskydd för konfigurationer av tillgänglighetsgrupper.
Från och med SQL Server 2022 (16.x) kan du ange REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT i en distribuerad tillgänglighetsgrupp. Den här inställningen stöds inte för SKAPA TILLGÄNGLIGHETSGRUPP. Du kan använda ÄNDRA TILLGÄNGLIGHETSGRUPP för att ange REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT. Till exempel:
ALTER AVAILABILITY GROUP [<name>]
SET (REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT = <integer>);
ROLL
Den enda giltiga parametern är "SECONDARY", och det här SET-alternativet är endast giltigt i distribuerade tillgänglighetsgrupper. Den används för att växla över en distribuerad tillgänglighetsgrupp enligt beskrivningen här: ÄNDRA TILLGÄNGLIGHETSGRUPP
LÄGG TILL DATABAS database_name
Anger en lista över en eller flera användardatabaser som du vill lägga till i tillgänglighetsgruppen. Dessa databaser måste finnas på instansen av SQL Server som är värd för den aktuella primära repliken. Du kan ange flera databaser för en tillgänglighetsgrupp, men varje databas kan bara tillhöra en tillgänglighetsgrupp. Information om vilken typ av databaser som en tillgänglighetsgrupp kan stödja finns i Krav, Begränsningar och rekommendationer för AlwaysOn-tillgänglighetsgrupper (SQL Server). Information om vilka lokala databaser som redan tillhör en tillgänglighetsgrupp finns i kolumnen replica_id i sys.databases katalogvy.
Stöds endast på den primära repliken.
Not
När du har skapat tillgänglighetsgruppen måste du ansluta till varje serverinstans som är värd för en sekundär replik och sedan förbereda varje sekundär databas och ansluta den till tillgänglighetsgruppen. Mer information finns i Starta dataflytt på en alwayson-sekundär databas (SQL Server).
TA BORT DATABAS database_name
Tar bort den angivna primära databasen och motsvarande sekundära databaser från tillgänglighetsgruppen. Stöds endast på den primära repliken.
Information om rekommenderade steg när du har tagit bort en tillgänglighetsdatabas från en tillgänglighetsgrupp finns i Ta bort en primär databas från en tillgänglighetsgrupp (SQL Server).
LÄGG TILL REPLIK PÅ
Anger från en till åtta SQL Server-instanser som värd för sekundära repliker i en tillgänglighetsgrupp. Varje replik anges av dess serverinstansadress följt av en WITH-sats (...).
Stöds endast på den primära repliken.
Du måste ansluta varje ny sekundär replik till tillgänglighetsgruppen. Mer information finns i beskrivningen av alternativet JOIN senare i det här avsnittet.
<server_instance>
Anger adressen till den instans av SQL Server som är värd för en replik. Adressformatet beror på om instansen är standardinstansen eller en namngiven instans och om det är en fristående instans eller en redundansklusterinstans (FCI). Syntaxen är följande:
{ 'system_name[\instance_name]' | 'FCI_network_name[\instance_name]' }
Komponenterna i den här adressen är följande:
system_name
NetBIOS-namnet på det datorsystem där målinstansen av SQL Server finns. Den här datorn måste vara en WSFC-nod.
FCI_network_name
Nätverksnamnet som används för att komma åt ett SQL Server-redundanskluster. Använd detta om serverinstansen deltar som en SQL Server-redundanspartner. Om du kör SELECT @@SERVERNAME på en FCI-serverinstans returneras hela strängen "FCI_network_name[\instance_name]" (som är det fullständiga repliknamnet).
instance_name
Namnet på en instans av en SQL Server som hanteras av system_name eller FCI_network_name och som har AlwaysOn aktiverat. För en standardserverinstans är instance_name valfritt. Instansnamnet är skiftlägesokänsligt. På en fristående serverinstans är det här värdenamnet samma som värdet som returneras genom att köra SELECT @@SERVERNAME.
\
En avgränsare som endast används när du anger instance_name, för att skilja den från system_name eller FCI_network_name.
Information om förutsättningarna för WSFC-noder och serverinstanser finns i Krav, begränsningar och rekommendationer för AlwaysOn-tillgänglighetsgrupper (SQL Server).
ENDPOINT_URL = "TCP://systemadress:port"
Anger URL-sökvägen för databasspeglingsslutpunkten på sql Server-instansen som ska vara värd för den tillgänglighetsreplik som du lägger till eller ändrar.
ENDPOINT_URL krävs i ADD REPLICA ON-satsen och valfritt i satsen MODIFY REPLICA ON. Mer information finns i Ange slutpunkts-URL när du lägger till eller ändrar en tillgänglighetsreplik (SQL Server).
"TCP://systemadress:port"
Anger en URL för att ange en slutpunkts-URL eller skrivskyddad routnings-URL. URL-parametrarna är följande:
systemadress
En sträng, till exempel ett systemnamn, ett fullständigt domännamn eller en IP-adress, som entydigt identifierar måldatorsystemet.
port
Ett portnummer som är associerat med speglingsslutpunkten för serverinstansen (för alternativet ENDPOINT_URL) eller portnumret som används av databasmotorn för serverinstansen (för alternativet READ_ONLY_ROUTING_URL).
AVAILABILITY_MODE = { SYNCHRONOUS_COMMIT | ASYNCHRONOUS_COMMIT | CONFIGURATION_ONLY }
Anger om den primära repliken måste vänta tills den sekundära repliken bekräftar härdningen (skrivning) av loggposterna till disken innan den primära repliken kan genomföra transaktionen på en viss primär databas. Transaktionerna i olika databaser på samma primära replik kan checkas in oberoende av varandra.
SYNCHRONOUS_COMMIT
Anger att den primära repliken väntar med att checka in transaktioner tills de har hårdnat på den här sekundära repliken (synkront incheckningsläge). Du kan ange SYNCHRONOUS_COMMIT för upp till tre repliker, inklusive den primära repliken.
ASYNCHRONOUS_COMMIT
Anger att den primära repliken checkar in transaktioner utan att vänta på att den här sekundära repliken ska härda loggen (synkront tillgänglighetsläge). Du kan ange ASYNCHRONOUS_COMMIT för upp till fem tillgänglighetsrepliker, inklusive den primära repliken.
CONFIGURATION_ONLY
Anger att konfigurationsmetadata för den primära repliken synkront checkar in konfigurationsmetadata för tillgänglighetsgruppen till huvuddatabasen på den här repliken. Repliken innehåller inte användardata. Det här alternativet:
Kan finnas på valfri utgåva av SQL Server, inklusive Express Edition.
Kräver att dataspeglingsslutpunkten för den CONFIGURATION_ONLY repliken ska vara typ
WITNESS
.Det går inte att ändra.
Är inte giltigt när
CLUSTER_TYPE = WSFC
.Mer information finns i Konfiguration endast replik.
AVAILABILITY_MODE krävs i ADD REPLICA ON-satsen och är valfritt i satsen MODIFY REPLICA ON. Mer information finns i tillgänglighetslägen (AlwaysOn-tillgänglighetsgrupper).
FAILOVER_MODE = { AUTOMATIC | MANUELL }
Anger redundansläget för tillgänglighetsrepliken som du definierar.
AUTOMATISK
Aktiverar automatisk redundans. AUTOMATISK stöds endast om du även anger AVAILABILITY_MODE = SYNCHRONOUS_COMMIT. Du kan ange AUTOMATIC för tre tillgänglighetsrepliker, inklusive den primära repliken.
Not
- Före SQL Server 2016 var du begränsad till två automatiska redundansrepliker, inklusive den primära repliken.
- SQL Server-redundansklusterinstanser (FCIs) stöder inte automatisk redundans av tillgänglighetsgrupper, så alla tillgänglighetsrepliker som hanteras av en FCI kan bara konfigureras för manuell redundans.
HANDBOK
Aktiverar manuell redundans eller tvingad manuell redundans (tvingad redundansväxling) av databasadministratören.
FAILOVER_MODE krävs i ADD REPLICA ON-satsen och valfritt i satsen MODIFY REPLICA ON. Det finns två typer av manuell redundans, manuell redundans utan dataförlust och tvingad redundans (med möjlig dataförlust), som stöds under olika förhållanden. Mer information finns i redundans- och redundanslägen (AlwaysOn-tillgänglighetsgrupper).
SEEDING_MODE = { AUTOMATIC | MANUELL }
Anger hur den sekundära repliken kommer att seedas från början.
AUTOMATISK
Möjliggör direkt seeding. Den här metoden kommer att dirigera den sekundära repliken över nätverket. Den här metoden kräver inte att du säkerhetskopierar och återställer en kopia av den primära databasen på repliken.
Not
För direkt seeding måste du tillåta att databasen skapas på varje sekundär replik genom att anropa ALTER AVAILABILITY GROUP med alternativet GRANT CREATE ANY DATABASE.
HANDBOK
Anger manuell seeding (standard). Den här metoden kräver att du skapar en säkerhetskopia av databasen på den primära repliken och manuellt återställer säkerhetskopian på den sekundära repliken.
BACKUP_PRIORITY = n
Anger din prioritet för att utföra säkerhetskopior på den här repliken i förhållande till de andra replikerna i samma tillgänglighetsgrupp. Värdet är ett heltal i intervallet 0..100. Dessa värden har följande betydelser:
1..100 anger att tillgänglighetsrepliken kan väljas för säkerhetskopiering. 1 anger den lägsta prioriteten och 100 anger högsta prioritet. Om BACKUP_PRIORITY = 1 väljs tillgänglighetsrepliken endast för säkerhetskopiering om inga tillgänglighetsrepliker med högre prioritet är tillgängliga för närvarande.
0 anger att den här tillgänglighetsrepliken aldrig kommer att väljas för att utföra säkerhetskopior. Detta är användbart, till exempel för en fjärrtillgänglighetsreplik som du aldrig vill att säkerhetskopior ska redundansväxla till.
Mer information finns i Aktiva sekundärfiler: Säkerhetskopiering på sekundära repliker (AlwaysOn-tillgänglighetsgrupper).
SECONDARY_ROLE ( ... )
Anger rollspecifika inställningar som börjar gälla om den här tillgänglighetsrepliken för närvarande äger den sekundära rollen (det vill: när det är en sekundär replik). Inom parenteserna anger du något av alternativen eller båda alternativen för sekundär roll. Om du anger båda använder du en kommaavgränsad lista.
Alternativen för sekundär roll är följande:
ALLOW_CONNECTIONS = { NO | READ_ONLY | ALLA }
Anger om databaserna för en viss tillgänglighetsreplik som utför den sekundära rollen (det vill: fungerar som en sekundär replik) kan acceptera anslutningar från klienter, en av:
NEJ
Inga användaranslutningar tillåts till sekundära databaser för den här repliken. De är inte tillgängliga för läsåtkomst. Det här är standardbeteendet.
READ_ONLY
Endast anslutningar tillåts till databaserna i den sekundära repliken där egenskapen Application Intent är inställd på ReadOnly. Mer information om den här egenskapen finns i Using Connection String Keywords with SQL Server Native Client.
ALLA
Alla anslutningar tillåts till databaserna i den sekundära repliken för skrivskyddad åtkomst.
Mer information finns i aktiva sekundärfiler: Läsbara sekundära repliker (AlwaysOn-tillgänglighetsgrupper).
READ_ONLY_ROUTING_URL = "TCP://systemadress:port"
Anger den URL som ska användas för att dirigera anslutningsbegäranden med läs avsikt till den här tillgänglighetsrepliken. Det här är den URL som SQL Server Database Engine lyssnar på. Vanligtvis lyssnar standardinstansen av SQL Server Database Engine på TCP-port 1433.
För en namngiven instans kan du hämta portnumret genom att fråga port och type_desc kolumner i sys.dm_tcp_listener_states dynamisk hanteringsvy. Serverinstansen använder Transact-SQL lyssnaren (type_desc='TSQL').
Mer information om hur du beräknar den skrivskyddade routnings-URL:en för en tillgänglighetsreplik finns i Calculate read_only_routing_url for Always On.
Not
För en namngiven instans av SQL Server ska Transact-SQL lyssnare konfigureras för att använda en specifik port. Mer information finns i Konfigurera en server för att lyssna på en specifik TCP-port (SQL Server Configuration Manager).
PRIMARY_ROLE ( ... )
Anger rollspecifika inställningar som börjar gälla om den här tillgänglighetsrepliken för närvarande äger den primära rollen (det vill: när det är den primära repliken). Inom parenteserna anger du antingen eller båda alternativen för primär roll. Om du anger båda använder du en kommaavgränsad lista.
Alternativen för den primära rollen är följande:
ALLOW_CONNECTIONS = { READ_WRITE | ALLA }
Anger vilken typ av anslutning som databaserna för en viss tillgänglighetsreplik som utför den primära rollen (det vill: fungerar som en primär replik) kan acceptera från klienter, en av:
READ_WRITE
Anslutningar där anslutningsegenskapen för programavsikt är inställd på ReadOnly- tillåts inte. När egenskapen Application Intent är inställd på ReadWrite- eller om anslutningsegenskapen För program avsikt inte har angetts tillåts anslutningen. Mer information om anslutningsegenskapen application intent finns i Using Connection String Keywords with SQL Server Native Client.
ALLA
Alla anslutningar tillåts till databaserna i den primära repliken. Det här är standardbeteendet.
READ_ONLY_ROUTING_LIST = { ('<server_instance>' [ ,...n ] ) | NONE }
Anger en kommaavgränsad lista över serverinstanser som är värdar för tillgänglighetsrepliker för den här tillgänglighetsgruppen som uppfyller följande krav när de körs under den sekundära rollen:
Konfigureras för att tillåta alla anslutningar eller skrivskyddade anslutningar (se argumentet ALLOW_CONNECTIONS för alternativet SECONDARY_ROLE ovan).
Få sin skrivskyddade routnings-URL definierad (se argumentet READ_ONLY_ROUTING_URL för alternativet SECONDARY_ROLE ovan).
De READ_ONLY_ROUTING_LIST värdena är följande:
<server_instance>
Anger adressen för den instans av SQL Server som är värd för en tillgänglighetsreplik som är en läsbar sekundär replik när den körs under den sekundära rollen.
Använd en kommaavgränsad lista för att ange alla serverinstanser som kan vara värdar för en läsbar sekundär replik. Skrivskyddad routning följer den ordning i vilken serverinstanser anges i listan. Om du inkluderar en repliks värdserverinstans i replikens skrivskyddade routningslista är det vanligtvis bra att placera den här serverinstansen i slutet av listan, så att skrivskyddade anslutningar går till en sekundär replik, om en är tillgänglig.
Från och med SQL Server 2016 (13.x) kan du belastningsbalansera skrivskyddade begäranden mellan läsbara sekundära repliker. Du anger detta genom att placera replikerna i en kapslad uppsättning parenteser i den skrivskyddade routningslistan. Mer information och exempel finns i Konfigurera belastningsutjämning för skrivskyddade repliker.
INGEN
Anger att när den här tillgänglighetsrepliken är den primära repliken stöds inte skrivskyddad routning. Det här är standardbeteendet. När det används med MODIFY REPLICA ON inaktiverar det här värdet en befintlig lista, om någon.
READ_WRITE_ROUTING_URL = "TCP://systemadress:port"
Gäller för: SQL Server (börjar med SQL Server 2019 (15.x))
Anger serverinstanser som är värdar för tillgänglighetsrepliker för den här tillgänglighetsgruppen som uppfyller följande krav när de körs under den primära rollen:
- Replikspecifikationen PRIMARY_ROLE innehåller READ_WRITE_ROUTING_URL.
- Anslutningssträngen är ReadWrite antingen genom att definiera ApplicationIntent som ReadWrite eller genom att inte ange ApplicationIntent och låta standardvärdet (ReadWrite) träda i kraft.
Mer information finns i omdirigering av läs-/skrivanslutningar för sekundär till primär replik (AlwaysOn-tillgänglighetsgrupper).
SESSION_TIMEOUT = sekunder
Anger tidsgränsen för sessionen i sekunder. Om du inte anger det här alternativet är tidsperioden som standard 10 sekunder. Det minsta värdet är 5 sekunder.
Viktig
Vi rekommenderar att du behåller tidsgränsen på 10 sekunder eller högre.
Mer information om tidsgränsen för sessioner finns i Översikt över AlwaysOn-tillgänglighetsgrupper (SQL Server).
ÄNDRA REPLIK PÅ
Ändrar någon av replikerna i tillgänglighetsgruppen. Listan över repliker som ska ändras innehåller serverinstansadressen och en WITH-sats (...) för varje replik.
Stöds endast på den primära repliken.
TA BORT REPLIK PÅ
Tar bort den angivna sekundära repliken från tillgänglighetsgruppen. Det går inte att ta bort den aktuella primära repliken från en tillgänglighetsgrupp. När repliken tas bort slutar den att ta emot data. Dess sekundära databaser tas bort från tillgänglighetsgruppen och anger återställningstillståndet.
Stöds endast på den primära repliken.
Not
Om du tar bort en replik när den inte är tillgänglig eller misslyckades upptäcker den att den inte längre tillhör tillgänglighetsgruppen när den är online igen.
ANSLUTA
Gör att den lokala serverinstansen är värd för en sekundär replik i den angivna tillgänglighetsgruppen.
Stöds endast på en sekundär replik som ännu inte har anslutits till tillgänglighetsgruppen.
Mer information finns i Ansluta en sekundär replik till en tillgänglighetsgrupp (SQL Server).
REDUNDANS
Initierar en manuell redundansväxling av tillgänglighetsgruppen utan dataförlust till den sekundära replik som du är ansluten till. Repliken som ska vara värd för den primära repliken är det redundansmålet. Redundansmålet tar över den primära rollen och återställer dess kopia av varje databas och gör dem online som de nya primära databaserna. Den tidigare primära repliken övergår samtidigt till den sekundära rollen och dess databaser blir sekundära databaser och pausas omedelbart. Dessa roller kan eventuellt växlas fram och tillbaka på ett antal fel.
Stöds endast på en synkron-incheckning sekundär replik som för närvarande synkroniseras med den primära repliken. Observera att för att en sekundär replik ska synkroniseras måste den primära repliken också köras i synkront incheckningsläge.
Not
Ett redundanskommando returneras så snart redundansmålet har godkänt kommandot. Databasåterställning sker dock asynkront när tillgänglighetsgruppen är klar med redundansväxlingen.
Information om begränsningar, krav och rekommendationer för att utföra en planerad manuell redundansväxling finns i Utföra en planerad manuell redundansväxling av en tillgänglighetsgrupp (SQL Server).
FORCE_FAILOVER_ALLOW_DATA_LOSS
Försiktighet
Att tvinga fram redundans, vilket kan innebära viss dataförlust, är strikt en haveriberedskapsmetod. Därför rekommenderar vi starkt att du endast framtvingar redundansväxling om den primära repliken inte längre körs, du är villig att riskera att förlora data och du måste återställa tjänsten till tillgänglighetsgruppen omedelbart.
Stöds endast på en replik vars roll är i sekundärt eller MATCHANDE tillstånd. --Repliken där du anger ett redundanskommando kallas redundansmål.
Tvingar redundans för tillgänglighetsgruppen, med möjlig dataförlust, till redundansmålet. Redundansmålet tar över den primära rollen och återställer dess kopia av varje databas och gör dem online som de nya primära databaserna. På eventuella återstående sekundära repliker pausas varje sekundär databas tills den återupptas manuellt. När den tidigare primära repliken blir tillgänglig växlar den till den sekundära rollen och dess databaser pausas sekundära databaser.
Not
Ett redundanskommando returneras så snart redundansmålet har godkänt kommandot. Databasåterställning sker dock asynkront när tillgänglighetsgruppen är klar med redundansväxlingen.
Information om begränsningar, krav och rekommendationer för att tvinga redundansväxling och effekten av en tvingad redundansväxling på de tidigare primära databaserna i tillgänglighetsgruppen finns i Utföra en tvingad manuell redundansväxling av en tillgänglighetsgrupp (SQL Server).
LÄGG TILL LISTENERdns_name( <add_listener_option> )
Definierar en ny tillgänglighetsgruppslyssnare för den här tillgänglighetsgruppen. Stöds endast på den primära repliken.
Viktig
Innan du skapar din första lyssnare rekommenderar vi starkt att du läser Skapa eller konfigurera en tillgänglighetsgruppslyssnare (SQL Server).
När du har skapat en lyssnare för en viss tillgänglighetsgrupp rekommenderar vi starkt att du gör följande:
- Be nätverksadministratören att reservera lyssnarens IP-adress för exklusiv användning.
- Ge lyssnarens DNS-värdnamn till programutvecklare som ska användas i anslutningssträngar när de begär klientanslutningar till den här tillgänglighetsgruppen.
dns_name
Anger DNS-värdnamnet för tillgänglighetsgruppens lyssnare. Lyssnarens DNS-namn måste vara unikt i domänen och i NetBIOS.
dns_name är ett strängvärde. Det här namnet får endast innehålla alfanumeriska tecken, bindestreck (-) och bindestreck (_) i valfri ordning. DNS-värdnamn är skiftlägesokänsliga. Den maximala längden är 63 tecken.
Vi rekommenderar att du anger en beskrivande sträng. För en tillgänglighetsgrupp med namnet AG1
skulle till exempel ett beskrivande DNS-värdnamn vara ag1-listener
.
Viktig
NetBIOS känner bara igen de första 15 teckenen i dns_name. Om du har två WSFC-kluster som styrs av samma Active Directory och du försöker skapa tillgänglighetsgrupplyssnare i båda klustren med namn med fler än 15 tecken och ett identiskt prefix på 15 tecken får du en felrapportering om att det inte gick att ansluta resursen för namn på virtuellt nätverk. Information om namngivningsregler för prefix för DNS-namn finns i Tilldela domännamn.
ANSLUT TILLGÄNGLIGHETSGRUPP PÅ
Ansluter till en distribuerad tillgänglighetsgrupp. När du skapar en distribuerad tillgänglighetsgrupp är tillgänglighetsgruppen i klustret där den skapas den primära tillgänglighetsgruppen. Tillgänglighetsgruppen som ansluter till den distribuerade tillgänglighetsgruppen är den sekundära tillgänglighetsgruppen.
<ag_name>
Anger namnet på tillgänglighetsgruppen som utgör hälften av den distribuerade tillgänglighetsgruppen.
LISTENER = "TCP://systemadress:port"
Anger URL-sökvägen för lyssnaren som är associerad med tillgänglighetsgruppen.
LISTENER-satsen krävs.
"TCP://systemadress:port"
Anger en URL för lyssnaren som är associerad med tillgänglighetsgruppen. URL-parametrarna är följande:
systemadress
En sträng, till exempel ett systemnamn, ett fullständigt domännamn eller en IP-adress, som entydigt identifierar lyssnaren.
port
Ett portnummer som är associerat med speglingsslutpunkten för tillgänglighetsgruppen. Observera att detta inte är lyssnarens port.
AVAILABILITY_MODE = { SYNCHRONOUS_COMMIT | ASYNCHRONOUS_COMMIT }
Anger om den primära repliken måste vänta tills den sekundära tillgänglighetsgruppen bekräftar härdningen (skrivning) av loggposterna till disken innan den primära repliken kan genomföra transaktionen på en viss primär databas.
SYNCHRONOUS_COMMIT
Anger att den primära repliken väntar med att checka in transaktioner tills de har hårdnat i den sekundära tillgänglighetsgruppen. Du kan ange SYNCHRONOUS_COMMIT för upp till två tillgänglighetsgrupper, inklusive den primära tillgänglighetsgruppen.
ASYNCHRONOUS_COMMIT
Anger att den primära repliken genomför transaktioner utan att vänta på att den här sekundära tillgänglighetsgruppen ska härda loggen. Du kan ange ASYNCHRONOUS_COMMIT för upp till två tillgänglighetsgrupper, inklusive den primära tillgänglighetsgruppen.
Satsen AVAILABILITY_MODE krävs.
FAILOVER_MODE = { MANUELL }
Anger redundansläget för den distribuerade tillgänglighetsgruppen.
HANDBOK
Aktiverar planerad manuell redundans eller tvingad manuell redundans (kallas vanligtvis tvingad redundansväxling) av databasadministratören.
Automatisk redundans till den sekundära tillgänglighetsgruppen stöds inte.
SEEDING_MODE = { AUTOMATIC | MANUELL }
Anger hur den sekundära tillgänglighetsgruppen kommer att seedas från början.
AUTOMATISK
Aktiverar automatisk seeding. Den här metoden kommer att dirigera den sekundära tillgänglighetsgruppen över nätverket. Den här metoden kräver inte att du säkerhetskopierar och återställer en kopia av den primära databasen på replikerna i den sekundära tillgänglighetsgruppen.
HANDBOK
Anger manuell seeding. Den här metoden kräver att du skapar en säkerhetskopia av databasen på den primära repliken och manuellt återställer säkerhetskopian på replikerna i den sekundära tillgänglighetsgruppen.
ÄNDRA TILLGÄNGLIGHETSGRUPP PÅ
Ändrar någon av tillgänglighetsgruppens inställningar för en distribuerad tillgänglighetsgrupp. Listan över tillgänglighetsgrupper som ska ändras innehåller tillgänglighetsgruppens namn och en WITH-sats (...) för varje tillgänglighetsgrupp.
Viktig
Det här kommandot måste upprepas på både den primära tillgänglighetsgruppen och sekundära tillgänglighetsgruppsinstanser.
BEVILJA SKAPA EN DATABAS
Tillåter tillgänglighetsgruppen att skapa databaser för den primära replikens räkning, som stöder direkt seeding (SEEDING_MODE = AUTOMATIC). Den här parametern ska köras på varje sekundär replik som stöder direkt seeding efter att den sekundära anslutningen till tillgänglighetsgruppen. Kräver behörigheten SKAPA VALFRI DATABAS.
NEKA SKAPA EN DATABAS
Tar bort tillgänglighetsgruppens möjlighet att skapa databaser för den primära replikens räkning.
<add_listener_option>
LÄGG TILL LYSSNARE tar något av följande alternativ:
MED DHCP [ ON { ('four_part_ipv4_address','four_part_ipv4_mask') } ]
Anger att tillgänglighetsgruppens lyssnare ska använda DHCP (Dynamic Host Configuration Protocol). Du kan också använda ON-satsen för att identifiera nätverket där lyssnaren ska skapas. DHCP är begränsat till ett enda undernät som används för varje serverinstanser som är värd för en tillgänglighetsreplik i tillgänglighetsgruppen.
Viktig
Vi rekommenderar inte DHCP i produktionsmiljön. Om det finns en stilleståndstid och DHCP IP-lånet upphör att gälla krävs extra tid för att registrera den nya DHCP-nätverks-IP-adressen som är associerad med lyssnarens DNS-namn och påverkar klientanslutningen. DHCP är dock bra för att konfigurera utvecklings- och testmiljön för att verifiera grundläggande funktioner i tillgänglighetsgrupper och för integrering med dina program.
Till exempel:
WITH DHCP ON ('10.120.19.0','255.255.254.0')
MED IP ( { ('four_part_ipv4_address','four_part_ipv4_mask') | ('ipv6_address') } [ , ...n ] ) [ , PORT = listener_port ]
Anger att i stället för att använda DHCP använder tillgänglighetsgruppens lyssnare en eller flera statiska IP-adresser. För att skapa en tillgänglighetsgrupp över flera undernät kräver varje undernät en statisk IP-adress i lyssnarkonfigurationen. För ett visst undernät kan den statiska IP-adressen antingen vara en IPv4-adress eller en IPv6-adress. Kontakta nätverksadministratören för att få en statisk IP-adress för varje undernät som ska vara värd för en tillgänglighetsreplik för den nya tillgänglighetsgruppen.
Till exempel:
WITH IP ( ('10.120.19.155','255.255.254.0') )
ipv4_address
Anger en IPv4-adress i fyra delar för en tillgänglighetsgrupplyssnare. Till exempel 10.120.19.155
.
ipv4_mask
Anger en IPv4-mask i fyra delar för en tillgänglighetsgrupplyssnare. Till exempel 255.255.254.0
.
ipv6_address
Anger en IPv6-adress för en tillgänglighetsgrupplyssnare. Till exempel 2001::4898:23:1002:20f:1fff:feff:b3a3
.
PORT = listener_port
Anger portnumretlistener_portsom ska användas av en tillgänglighetsgrupplyssnare som anges av en WITH IP-sats. PORT är valfritt.
Standardportnumret 1433 stöds. Men om du har säkerhetsproblem rekommenderar vi att du använder ett annat portnummer.
Till exempel: WITH IP ( ('2001::4898:23:1002:20f:1fff:feff:b3a3') ) , PORT = 7777
MODIFY LISTENER 'dns_name'( <modify_listener_option> )
Ändrar en befintlig tillgänglighetsgruppslyssnare för den här tillgänglighetsgruppen. Stöds endast på den primära repliken.
<modify_listener_option>
ÄNDRA LYSSNAREN tar något av följande alternativ:
LÄGG TILL IP { ('four_part_ipv4_address','four_part_ipv4_mask') | ('dns_nameipv6_address__')__ }
Lägger till den angivna IP-adressen till tillgänglighetsgruppens lyssnare som anges av dns_name.
PORT = listener_port
Se beskrivningen av det här argumentet tidigare i det här avsnittet.
STARTA OM LYSSNARENDNS_NAME
Startar om lyssnaren som är associerad med det angivna DNS-namnet. Stöds endast på den primära repliken.
TA BORT LYSSNARENsdns_name
Tar bort lyssnaren som är associerad med det angivna DNS-namnet. Stöds endast på den primära repliken.
OFFLINE
Tar en onlinetillgänglighetsgrupp offline. Det finns ingen dataförlust för synkrona databaser.
När en tillgänglighetsgrupp är offline blir databaserna otillgängliga för klienter och du kan inte aktivera tillgänglighetsgruppen igen. Använd därför alternativet OFFLINE endast under en migrering mellan kluster av AlwaysOn-tillgänglighetsgrupper när du migrerar resurser för tillgänglighetsgrupp till ett nytt WSFC-kluster.
Mer information finns i Ta en tillgänglighetsgrupp offline (SQL Server).
Krav och begränsningar
Information om krav och begränsningar för tillgänglighetsrepliker och på deras värdserverinstanser och datorer finns i krav, begränsningar och rekommendationer för AlwaysOn-tillgänglighetsgrupper (SQL Server).
Information om begränsningar för Transact-SQL-instruktioner för TILLGÄNGLIGHETSGRUPP finns i Översikt över Transact-SQL-instruktioner för AlwaysOn-tillgänglighetsgrupper (SQL Server).
Säkerhet
Behörigheter
Kräver alter AVAILABILITY GROUP permission on the availability group, CONTROL AVAILABILITY GROUP permission, ALTER ANY AVAILABILITY GROUP permission, or CONTROL SERVER permission. Kräver även ALTER ANY DATABASE-behörighet.
Exempel
A. Ansluta en sekundär replik till en tillgänglighetsgrupp
I följande exempel kopplas en sekundär replik till vilken du är ansluten till AccountsAG
tillgänglighetsgrupp.
ALTER AVAILABILITY GROUP AccountsAG JOIN;
GO
B. Framtvinga redundans för en tillgänglighetsgrupp
Följande exempel tvingar AccountsAG
tillgänglighetsgrupp att redundansväxla till den sekundära replik som du är ansluten till.
ALTER AVAILABILITY GROUP AccountsAG FORCE_FAILOVER_ALLOW_DATA_LOSS;
GO
Se även
SKAPA TILLGÄNGLIGHETSGRUPP (Transact-SQL)
ALTER DATABASE SET HADR (Transact-SQL)
SLÄPP TILLGÄNGLIGHETSGRUPP (Transact-SQL)
sys.availability_replicas (Transact-SQL)
sys.availability_groups (Transact-SQL)
Felsöka Konfiguration av AlwaysOn-tillgänglighetsgrupper (SQL Server)
översikt över AlwaysOn-tillgänglighetsgrupper (SQL Server)
tillgänglighetsgruppslyssnare, klientanslutning och SQL Server (Programredundans)