Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy:programu SQL Server
Zmienia istniejącą zawsze włączoną grupę dostępności w programie SQL Server. Większość ALTER AVAILABILITY GROUP argumentów jest obsługiwana tylko w bieżącej repliki podstawowej.
JOINJednak argumenty , FAILOVERi FORCE_FAILOVER_ALLOW_DATA_LOSS są obsługiwane tylko w replikach pomocniczych.
Transact-SQL konwencje składni
Składnia
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
| CLUSTER_CONNECTION_OPTIONS = 'key_value_pairs> [ ;... ] '
<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' | NONE } ]
} )
| PRIMARY_ROLE ( {
[ ALLOW_CONNECTIONS = { READ_WRITE | ALL } ]
| [ READ_ONLY_ROUTING_LIST = { ( '<server_instance>' [ , ...n ] ) | NONE } ]
| [ READ_WRITE_ROUTING_URL = { 'TCP://system-address:port' | NONE } ]
} )
| 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
| REMOVE IP ( 'ipv4_address' | 'ipv6_address')
}
Argumenty
group_name
Określa nazwę nowej grupy dostępności. group_name musi być prawidłowym identyfikatorem programu SQL Server i musi być unikatowy we wszystkich grupach dostępności w klastrze WSFC.
AUTOMATED_BACKUP_PREFERENCE = { PRIMARY | SECONDARY_ONLY| POMOCNICZA | BRAK }
Określa preferencję dotyczącą sposobu, w jaki zadanie tworzenia kopii zapasowej ocenia replikę podstawową podczas wybierania miejsca wykonywania kopii zapasowych. Możesz utworzyć skrypt dla danego zadania tworzenia kopii zapasowej, aby uwzględnić preferencje automatycznego tworzenia kopii zapasowej. Ważne jest, aby zrozumieć, że preferencje nie są wymuszane przez program SQL Server, więc nie ma wpływu na kopie zapasowe ad hoc.
Obsługiwane tylko w repliki podstawowej.
Wartości są następujące:
PODSTAWOWY
Określa, że kopie zapasowe są zawsze wykonywane w repliki podstawowej. Ta opcja jest przydatna, jeśli potrzebujesz funkcji tworzenia kopii zapasowych, takich jak tworzenie różnicowych kopii zapasowych, które nie są obsługiwane podczas wykonywania kopii zapasowej w repliki pomocniczej.
Ważny
Jeśli planujesz użyć wysyłania dzienników w celu przygotowania pomocniczych baz danych dla grupy dostępności, ustaw preferencję automatycznego tworzenia kopii zapasowej na wartość , dopóki Primary wszystkie pomocnicze bazy danych nie zostaną przygotowane i dołączone do grupy dostępności.
SECONDARY_ONLY
Określa, że kopie zapasowe nigdy nie występują w repliki podstawowej. Jeśli replika podstawowa jest jedyną repliką w trybie online, kopia zapasowa nie zostanie wykonana.
WTÓRNY
Określa, że kopie zapasowe są wykonywane w repliki pomocniczej, z wyjątkiem sytuacji, gdy replika podstawowa jest jedyną repliką w trybie online. W takim przypadku kopia zapasowa jest wykonywana w repliki podstawowej. Jest to zachowanie domyślne.
ŻADEN
Określa, że wolisz, aby zadania tworzenia kopii zapasowych ignorowały rolę replik dostępności podczas wybierania repliki do wykonywania kopii zapasowych. Uwaga Zadania tworzenia kopii zapasowej mogą oceniać inne czynniki, takie jak priorytet kopii zapasowej każdej repliki dostępności w połączeniu ze stanem operacyjnym i stanem połączenia.
Ważny
Nie ma wymuszania AUTOMATED_BACKUP_PREFERENCE ustawienia. Interpretacja tej preferencji zależy od logiki, jeśli istnieje, skrypt do zadań tworzenia kopii zapasowych dla baz danych w danej grupie dostępności. Ustawienie preferencji automatycznego tworzenia kopii zapasowej nie ma wpływu na kopie zapasowe ad hoc. Aby uzyskać więcej informacji, zobacz Konfigurowanie kopii zapasowych w replikach pomocniczych zawsze włączonej grupy dostępności.
Nuta
Aby wyświetlić preferencję automatycznego tworzenia kopii zapasowej istniejącej grupy dostępności, wybierz kolumnę automated_backup_preference lub automated_backup_preference_desc widoku wykazu sys.availability_groups . Ponadto można użyć sys.fn_hadr_backup_is_preferred_replica do określenia preferowanej repliki kopii zapasowej. Ta funkcja zawsze zwraca 1 co najmniej jedną replikę, nawet jeśli AUTOMATED_BACKUP_PREFERENCE = NONE.
FAILURE_CONDITION_LEVEL = { 1 | 2 | 3 | 4 | 5 }
Określa, jakie warunki niepowodzenia wyzwalają automatyczne przejście w tryb failover dla tej grupy dostępności.
FAILURE_CONDITION_LEVEL parametr jest ustawiany na poziomie grupy, ale ma zastosowanie tylko w replikach dostępności skonfigurowanych dla trybu dostępności zatwierdzania synchronicznego (AVAILABILITY_MODE = SYNCHRONOUS_COMMIT). Ponadto warunki awarii mogą wyzwalać automatyczny tryb failover tylko wtedy, gdy zarówno repliki podstawowe, jak i pomocnicze są skonfigurowane do automatycznego trybu failover (FAILOVER_MODE = AUTOMATIC), a replika pomocnicza jest obecnie synchronizowana z repliką podstawową.
Obsługiwane tylko w repliki podstawowej.
Poziomy warunków awarii (1–5) wahają się od najmniej restrykcyjnego, poziomu 1 do najbardziej restrykcyjnego, poziomu 5. Dany poziom warunku obejmuje wszystkie mniej restrykcyjne poziomy. W związku z tym najostrzejszy poziom warunku, 5, obejmuje cztery mniej restrykcyjne poziomy warunków (1–4), poziom 4 obejmuje poziomy 1–3 itd. W poniższej tabeli opisano warunek błędu odpowiadający każdemu poziomowi.
| Poziom | Warunek błędu |
|---|---|
| 1 | Określa, że automatyczne przejście w tryb failover inicjuje się, gdy wystąpi dowolny z następujących: Usługa SQL Server nie działa. Dzierżawa grupy dostępności na potrzeby nawiązywania połączenia z klastrem WSFC wygasa, ponieważ nie ACK jest odbierana z wystąpienia serwera. Aby uzyskać więcej informacji, zobacz How It Works: Sql Server Always On Lease Timeout. |
| 2 | Określa, że automatyczne przejście w tryb failover inicjuje się, gdy wystąpi dowolny z następujących: Wystąpienie programu SQL Server nie łączy się z klastrem, a próg określony przez HEALTH_CHECK_TIMEOUT użytkownika grupy dostępności zostanie przekroczony.Replika dostępności jest w stanie niepowodzenia. |
| 3 | Określa, że automatyczne przejście w tryb failover inicjuje krytyczne błędy wewnętrzne programu SQL Server, takie jak oddzielone spinlocks, poważne naruszenia dostępu do zapisu lub zbyt duże dumpingu. Jest to zachowanie domyślne. |
| 4 | Określa, że automatyczne przejście w tryb failover inicjuje umiarkowane błędy wewnętrzne programu SQL Server, takie jak trwały warunek braku pamięci w wewnętrznej puli zasobów programu SQL Server. |
| 5 | Określa, że automatyczne przełączenie w tryb failover inicjuje się w przypadku wszelkich kwalifikowanych warunków awarii, w tym: Wyczerpanie wątków roboczych aparatu SQL Engine. Wykrywanie nierozwiązanego zakleszczenia. |
Nuta
Brak odpowiedzi wystąpienia programu SQL Server do żądań klientów nie jest istotny dla grup dostępności.
Wartości FAILURE_CONDITION_LEVEL i HEALTH_CHECK_TIMEOUT definiują elastyczne zasady trybu failover dla danej grupy. Te elastyczne zasady trybu failover zapewniają szczegółową kontrolę nad warunkami, które muszą spowodować automatyczne przejście w tryb failover. Aby uzyskać więcej informacji, zobacz Konfigurowanie elastycznych zasad automatycznego trybu failover dla zawsze włączonej grupy dostępności.
HEALTH_CHECK_TIMEOUT
=
Milisekund
Określa czas oczekiwania (w milisekundach), aby procedura składowana systemu sp_server_diagnostics zwróciła informacje o kondycji serwera przed klastrem WSFC zakłada, że wystąpienie serwera działa wolno lub nie odpowiada. Ustaw HEALTH_CHECK_TIMEOUT na poziomie grupy, ale jest to istotne tylko w przypadku replik dostępności skonfigurowanych dla trybu dostępności zatwierdzania synchronicznego z automatycznym trybem trybu failover (AVAILABILITY_MODE = SYNCHRONOUS_COMMIT). Ponadto limit czasu sprawdzania kondycji może wyzwolić automatyczne przejście w tryb failover tylko wtedy, gdy repliki podstawowe i pomocnicze są skonfigurowane do automatycznego trybu failover (FAILOVER_MODE = AUTOMATIC), a replika pomocnicza jest obecnie synchronizowana z repliką podstawową.
Wartość domyślna HEALTH_CHECK_TIMEOUT to 30 000 milisekund (30 sekund). Wartość minimalna to 15 000 milisekund (15 sekund), a maksymalna wartość to 4294 967 295 milisekund.
Obsługiwane tylko w repliki podstawowej.
Ważny
sp_server_diagnostics nie wykonuje kontroli kondycji na poziomie bazy danych.
DB_FAILOVER = { ON | WYŁ. }
Określa odpowiedź do podjęcia, gdy baza danych w repliki podstawowej jest w trybie offline. Jeśli jest ustawiona wartość ON, dowolny stan inny niż ONLINE dla bazy danych w grupie dostępności wyzwala automatyczny tryb failover. Po ustawieniu tej opcji na OFFwartość , tylko kondycja wystąpienia wyzwala automatyczne przejście w tryb failover.
Aby uzyskać więcej informacji na temat tego ustawienia, zobacz Opcja trybu failover wykrywania kondycji na poziomie bazy danych grupy dostępności.
DTC_SUPPORT = { PER_DB | BRAK }
Określa, czy transakcje rozproszone są włączone dla tej grupy dostępności. Transakcje rozproszone są obsługiwane tylko dla baz danych grup dostępności począwszy od programu SQL Server 2016 (13.x), a transakcje między bazami danych są obsługiwane tylko w programie SQL Server 2016 (13.x) SP2.
PER_DB Tworzy grupę dostępności z obsługą tych transakcji i automatycznie promuje transakcje między bazami danych obejmujące bazy danych w grupie dostępności do transakcji rozproszonych.
NONE uniemożliwia automatyczne podwyższanie poziomu transakcji między bazami danych do transakcji rozproszonych i nie rejestruje bazy danych przy użyciu stabilnego identyfikatora RMID w usłudze DTC. Transakcje rozproszone nie są blokowane, gdy jest używane ustawienie NONE, ale tryb failover bazy danych i automatyczne odzyskiwanie mogą nie zakończyć się powodzeniem w pewnych okolicznościach. Aby uzyskać więcej informacji, zobacz Transakcje — grupy dostępności i dublowanie bazy danych.
Nuta
Obsługa zmiany DTC_SUPPORT ustawienia grupy dostępności została wprowadzona w programie SQL Server 2016 (13.x) z dodatkiem Service Pack 2. Tej opcji nie można używać z wcześniejszymi wersjami. Aby zmienić to ustawienie we wcześniejszych wersjach programu SQL Server, należy DROP ponownie i CREATE grupę dostępności.
Ważny
DtC ma limit 32 rejestracji na transakcję rozproszoną. Ponieważ każda baza danych w grupie dostępności jest enlists z jednostką DTC oddzielnie, jeśli transakcja obejmuje więcej niż 32 bazy danych, możesz uzyskać następujący błąd, gdy program SQL Server próbuje zarejestrować 33 bazę danych:
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.
Aby uzyskać więcej informacji na temat transakcji rozproszonych w programie SQL Server, zobacz Transakcje rozproszone.
REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT
Wprowadzono w programie SQL Server 2017 (14.x). Ustawia minimalną liczbę synchronicznych replik pomocniczych wymaganych do zatwierdzenia przed zatwierdzeniem transakcji przez replikę podstawową. Gwarantuje, że transakcje programu SQL Server czekają, aż dzienniki transakcji zostaną zaktualizowane w minimalnej liczbie replik pomocniczych.
- Wartość domyślna: 0. Zapewnia takie samo zachowanie jak program SQL Server 2016 (13.x).
- Minimum: 0.
- Maksymalna: liczba replik minus 1.
REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT odnosi się do replik w trybie zatwierdzania synchronicznego. Gdy repliki są w trybie zatwierdzania synchronicznego, zapisy w repliki podstawowej czekają, aż zapisy w synchronicznych replikach zostaną zatwierdzonych w dzienniku transakcji bazy danych repliki. Jeśli program SQL Server hostujący pomocniczą replikę synchroniczną przestaje odpowiadać, program SQL Server hostujący replikę podstawową oznacza, że replika pomocnicza jako NOT SYNCHRONIZED i będzie kontynuowana. Gdy baza danych nie odpowiada, wraca do trybu online, jest w stanie "niezsynchronizowany", a replika jest oznaczona jako w złej kondycji, dopóki podstawowa baza danych nie będzie mogła go ponownie zsynchronizować. To ustawienie gwarantuje, że replika podstawowa nie będzie kontynuowana, dopóki minimalna liczba replik nie zadeklarowała każdej transakcji. Jeśli minimalna liczba replik nie jest dostępna, zatwierdzenia w podstawowej awarii. W przypadku typu klastra EXTERNAL ustawienie jest zmieniane po dodaniu grupy dostępności do zasobu klastra. Zobacz Wysoka dostępność i ochrona danych dla konfiguracji grup dostępności.
Począwszy od programu SQL Server 2022 (16.x), można ustawić REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT w rozproszonej grupie dostępności. To ustawienie nie jest obsługiwane w przypadku programu CREATE AVAILABILITY GROUP. Możesz użyć ALTER AVAILABILITY GROUP polecenia , aby ustawić wartość REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT. Na przykład:
ALTER AVAILABILITY GROUP [<name>]
SET (REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT = <integer>);
ROLA
Jedynym prawidłowym parametrem jest SECONDARY, a ta SET opcja jest prawidłowa tylko w rozproszonych grupach dostępności. Umożliwia przełączanie rozproszonej grupy dostępności w tryb failover.
CLUSTER_CONNECTION_OPTIONS
Dotyczy do: SQL Server 2025 (17.x) i nowszych wersji
Użyj klauzuli , CLUSTER_CONNECTION_OPTIONS aby wymusić szyfrowanie TLS 1.3 na potrzeby komunikacji między klastrem trybu failover systemu Windows Server i replikami grupy dostępności. Określ opcje jako listę par klucz-wartość oddzielonych średnikami. Użyj par klucz-wartość, aby skonfigurować szyfrowanie parametrów połączenia dla grupy dostępności.
Aby przywrócić domyślne szyfrowanie, ustaw klauzulę CLUSTER_CONNECTION_OPTIONS na pusty ciąg. SQL Server 2025 (17.x) domyślnie przyjmuje , Encrypt=Mandatorya TrustServerCertificate=Yes dla połączeń z replikami grup dostępności i słuchaczami.
Aby uzyskać więcej informacji, zapoznaj się z tematem Nawiązywanie połączenia z grupą dostępności za pomocą ścisłego szyfrowania i TDS 8.0.
W poniższej tabeli opisano pary klucz-wartość, których można użyć w klauzuli CLUSTER_CONNECTION_OPTIONS :
| Key | Obsługiwane wartości | Description |
|---|---|---|
Encrypt |
Mandatory
Strict, Optional |
Określa sposób wymuszania szyfrowania do grupy dostępności. Jeśli serwer nie obsługuje szyfrowania, połączenie zakończy się niepowodzeniem. W przypadku ustawienia szyfrowania na Mandatorywartość , TrustServerCertificate należy ustawić wartość tak. Jeśli ustawisz szyfrowanie na Strict, TrustServerCertificate zostanie zignorowane.Uwaga: ta para wartości klucza jest wymagana. |
HostNameInCertificate |
Nazwa repliki lub nazwa odbiornika grupy dostępności | Określa nazwę repliki lub nazwę odbiornika grupy dostępności w certyfikacie używanym do szyfrowania. Ta wartość musi być zgodna z wartością w alternatywnej nazwie podmiotu certyfikatu. Jeśli nazwa serwera znajduje się na liście w certyfikacie, możesz pominąć HostNameInCertificate parę klucz-wartość. Jeśli nazwa serwera nie znajduje się na liście w certyfikacie, należy określić HostNameInCertificate parę klucz-wartość z nazwą serwera.Uwaga: ta para wartości klucza jest opcjonalna. |
TrustServerCertificate |
Yes, No |
Ustaw wartość yes, aby określić, że sterownik nie weryfikuje certyfikatu TLS/SSL serwera. Jeśli nosterownik zweryfikuje certyfikat. Aby uzyskać więcej informacji, zapoznaj się z tematem TDS 8.0.Uwaga: ta para wartości klucza jest opcjonalna. |
ServerCertificate |
Ścieżka do certyfikatu | Jeśli nie chcesz używać HostNameInCertificateprogramu , możesz przekazać ścieżkę do certyfikatu. Konto usługi klastrowania musi mieć uprawnienia do odczytu certyfikatu z danej lokalizacji.Uwaga: ta para wartości klucza jest opcjonalna. |
CLUSTER_CONNECTION_OPTIONS |
Pusty ciąg ('') |
Czyści istniejącą konfigurację i przywraca domyślne ustawienia Encrypt=Mandatory szyfrowania i TrustServerCertificate=Yes. |
Zapoznaj się z przykładami , aby dowiedzieć się, jak używać klauzuli CLUSTER_CONNECTION_OPTIONS .
DODAWANIE database_name BAZY DANYCH
Określa listę co najmniej jednej bazy danych użytkowników, którą chcesz dodać do grupy dostępności. Te bazy danych muszą znajdować się w wystąpieniu programu SQL Server, które hostuje bieżącą replikę podstawową. Można określić wiele baz danych dla grupy dostępności, ale każda baza danych może należeć tylko do jednej grupy dostępności. Aby uzyskać informacje o typie baz danych, które może obsługiwać grupa dostępności, zobacz Wymagania wstępne, ograniczenia i zalecenia dotyczące zawsze włączonych grup dostępności. Aby dowiedzieć się, które lokalne bazy danych należą już do grupy dostępności, zobacz kolumnę replica_id w widoku katalogu sys.databases .
Obsługiwane tylko w repliki podstawowej.
Nuta
Po utworzeniu grupy dostępności należy nawiązać połączenie z każdym wystąpieniem serwera hostującym replikę pomocniczą. Następnie przygotuj każdą pomocniczą bazę danych i dołącz ją do grupy dostępności. Aby uzyskać więcej informacji, zobacz Start Data Movement on an Always On Secondary Database (SQL Server).
USUWANIE database_name BAZY DANYCH
Usuwa określoną podstawową bazę danych i odpowiednie pomocnicze bazy danych z grupy dostępności. Obsługiwane tylko w repliki podstawowej.
Aby uzyskać informacje o zalecanych krokach po usunięciu bazy danych dostępności z grupy dostępności, zobacz Usuwanie podstawowej bazy danych z zawsze włączonej grupy dostępności.
DODAWANIE REPLIKI W SYSTEMIE
Określa od jednego do ośmiu wystąpień programu SQL Server do hostowania replik pomocniczych w grupie dostępności. Każda replika jest określana przez adres wystąpienia serwera, po którym następuje klauzula WITH (...) .
Obsługiwane tylko w repliki podstawowej.
Do grupy dostępności należy dołączyć każdą nową replikę pomocniczą. Aby uzyskać więcej informacji, zobacz opis JOIN opcji w dalszej części tej sekcji.
<server_instance>
Określa adres wystąpienia programu SQL Server, które jest hostem repliki. Format adresu zależy od tego, czy wystąpienie jest wystąpieniem domyślnym, czy wystąpieniem nazwanym oraz czy jest to wystąpienie autonomiczne, czy wystąpienie klastra trybu failover (FCI). Składnia jest następująca:
{ 'system_name[\instance_name]' | 'FCI_network_name[\instance_name]" }
Składniki tego adresu są następujące:
system_name
Nazwa NetBIOS systemu komputerowego, na którym znajduje się docelowe wystąpienie programu SQL Server. Ten komputer musi być węzłem WSFC.
FCI_network_name
Nazwa sieci używana do uzyskiwania dostępu do klastra trybu failover programu SQL Server. Użyj tej nazwy, jeśli wystąpienie serwera uczestniczy jako partner trybu failover programu SQL Server.
SELECT @@SERVERNAME Wykonanie operacji na wystąpieniu serwera fcI zwraca cały ciąg "FCI_network_name[\instance_name]" (który jest pełną nazwą repliki).
Aby uzyskać więcej informacji, zobacz @@SERVERNAME.
instance_name
Nazwa wystąpienia programu SQL Server, które system_name lub FCI_network_name hostów i które ma włączoną funkcję Always On. W przypadku domyślnego wystąpienia serwera instance_name jest opcjonalne. Nazwa wystąpienia jest niewrażliwa na wielkość liter. W autonomicznym wystąpieniu serwera ta nazwa wartości jest taka sama jak wartość zwrócona przez wykonanie polecenia SELECT @@SERVERNAME.
\
Separator używany tylko podczas określania instance_name, aby oddzielić go od system_name lub FCI_network_name.
Aby uzyskać informacje o wymaganiach wstępnych dotyczących węzłów I wystąpień serwera WSFC, zobacz Wymagania wstępne, ograniczenia i zalecenia dotyczące zawsze włączonych grup dostępności.
ENDPOINT_URL = '*TCP:// system-address:*port'
Określa ścieżkę adresu URL dla punktu końcowego dublowania bazy danych w wystąpieniu programu SQL Server, które hostuje replikę dostępności, którą dodajesz lub modyfikujesz.
ENDPOINT_URL jest wymagany w klauzuli ADD REPLICA ON i opcjonalne w klauzuli MODIFY REPLICA ON . Aby uzyskać więcej informacji, zobacz Określanie adresu URL punktu końcowego — dodawanie lub modyfikowanie repliki dostępności.
"TCP://system-address:port"
Określa adres URL określania adresu URL punktu końcowego lub adresu URL routingu tylko do odczytu. Parametry adresu URL są następujące:
adresów systemowych
Ciąg, taki jak nazwa systemu, w pełni kwalifikowana nazwa domeny lub adres IP, który jednoznacznie identyfikuje system komputera docelowego.
portów
Numer portu skojarzony z punktem końcowym dublowania wystąpienia serwera (dla ENDPOINT_URL opcji) lub numerem portu używanym przez aparat bazy danych wystąpienia serwera (dla READ_ONLY_ROUTING_URL opcji).
AVAILABILITY_MODE = { SYNCHRONOUS_COMMIT | ASYNCHRONOUS_COMMIT | CONFIGURATION_ONLY }
Określa, czy replika podstawowa czeka na replikę pomocniczą, aby potwierdzić wzmocnienie (zapisywanie) rekordów dziennika na dysku, zanim replika podstawowa może zatwierdzić transakcję w danej podstawowej bazie danych. Transakcje w różnych bazach danych w tej samej repliki podstawowej mogą być zatwierdzane niezależnie.
SYNCHRONOUS_COMMIT
Określa, że replika podstawowa czeka na zatwierdzenie transakcji, dopóki nie zostaną wzmocnione w tej repliki pomocniczej (tryb zatwierdzania synchronicznego). Można określić SYNCHRONOUS_COMMIT maksymalnie trzy repliki, w tym replikę podstawową.
ASYNCHRONOUS_COMMIT
Określa, że replika podstawowa zatwierdza transakcje bez oczekiwania na tę replikę pomocniczą w celu zabezpieczenia dziennika (tryb dostępności zatwierdzenia synchronicznego). Można określić ASYNCHRONOUS_COMMIT maksymalnie pięć replik dostępności, w tym replikę podstawową.
CONFIGURATION_ONLY
Określa, że replika podstawowa synchronicznie zatwierdza metadane konfiguracji grupy dostępności do master bazy danych w tej repliki. Replika nie zawiera danych użytkownika. Ta opcja:
Może być hostowany w dowolnej wersji programu SQL Server, w tym w wersji Express.
Wymaga, aby punkt końcowy
CONFIGURATION_ONLYdublowania danych repliki był typemWITNESS.Nie można go zmienić.
Nie jest prawidłowa, gdy
CLUSTER_TYPE = WSFC.Aby uzyskać więcej informacji, zobacz Wysoka dostępność i ochrona danych dla konfiguracji grup dostępności.
AVAILABILITY_MODE jest wymagany w klauzuli ADD REPLICA ON i opcjonalne w klauzuli MODIFY REPLICA ON . Aby uzyskać więcej informacji, zobacz Różnice między trybami dostępności dla zawsze włączonej grupy dostępności.
FAILOVER_MODE = { AUTOMATIC | RĘCZNE }
Określa tryb pracy awaryjnej repliki dostępności, którą definiujesz.
AUTOMATYCZNE
Włącza automatyczne przełączanie w tryb failover.
AUTOMATIC program jest obsługiwany tylko wtedy, gdy określisz również wartość AVAILABILITY_MODE = SYNCHRONOUS_COMMIT. Można określić AUTOMATIC dla trzech replik dostępności, w tym repliki podstawowej.
Nuta
- Przed programem SQL Server 2016 (13.x) można ograniczyć do dwóch automatycznych replik trybu failover, w tym repliki podstawowej.
- Wystąpienia klastra trybu failover programu SQL Server (FCI) nie obsługują automatycznego trybu failover przez grupy dostępności, więc każda replika dostępności, którą hosty wystąpienia klastra trybu failover można skonfigurować tylko do ręcznego przejścia w tryb failover.
RĘCZNIE
Włącza ręczne przejście w tryb failover lub wymuszone ręczne przejście w tryb failover (wymuszone przejście w tryb failover) przez administratora bazy danych.
Należy określić FAILOVER_MODE w klauzuli ADD REPLICA ON . Opcjonalnie możesz określić ją w klauzuli MODIFY REPLICA ON . Istnieją dwa typy ręcznego trybu failover: ręczne przejście w tryb failover bez utraty danych i wymuszone przejście w tryb failover (z możliwością utraty danych). Różne warunki obsługują te typy. Aby uzyskać więcej informacji, zobacz tryby trybu failover i trybu failover (zawsze włączone grupy dostępności).
SEEDING_MODE = { AUTOMATIC | RĘCZNE }
Określa sposób początkowego rozmieszczania repliki pomocniczej.
AUTOMATYCZNE
Włącza bezpośrednie rozmieszczanie. Ta metoda powoduje wywołanie repliki pomocniczej za pośrednictwem sieci. Ta metoda nie wymaga utworzenia kopii zapasowej i przywrócenia kopii podstawowej bazy danych w repliki.
Nuta
W przypadku bezpośredniego rozmieszczania należy zezwolić na tworzenie bazy danych w każdej repliki pomocniczej przez wywołanie ALTER AVAILABILITY GROUP z opcją GRANT CREATE ANY DATABASE .
RĘCZNIE
Określa ręczne rozmieszczanie (ustawienie domyślne). Ta metoda wymaga utworzenia kopii zapasowej bazy danych w repliki podstawowej i ręcznego przywrócenia tej kopii zapasowej w repliki pomocniczej.
BACKUP_PRIORITY = n
Określa priorytet wykonywania kopii zapasowych na tej repliki względem innych replik w tej samej grupie dostępności. Wartość jest liczbą całkowitą w zakresie 0..100. Te wartości mają następujące znaczenie:
1..100wskazuje, że można wybrać replikę dostępności do wykonywania kopii zapasowych. 1 wskazuje najniższy priorytet, a 100 wskazuje najwyższy priorytet. JeśliBACKUP_PRIORITY = 1replika dostępności jest wybierana do wykonywania kopii zapasowych tylko wtedy, gdy repliki dostępności o wyższym priorytcie nie są obecnie dostępne.0wskazuje, że ta replika dostępności nigdy nie jest wybierana do wykonywania kopii zapasowych. Ta opcja jest przydatna, na przykład w przypadku repliki dostępności zdalnej, do której nigdy nie chcesz, aby kopie zapasowe były przenoszone w tryb failover.
Aby uzyskać więcej informacji, zobacz Przekazywanie obsługiwanych kopii zapasowych do replik pomocniczych w grupie dostępności.
SECONDARY_ROLE ( ... )
Określa ustawienia specyficzne dla roli, które obowiązują, jeśli ta replika dostępności jest obecnie właścicielem roli pomocniczej (za każdym razem, gdy jest repliką pomocniczą). W nawiasach określ opcje roli pomocniczej lub obie. Jeśli określisz obie wartości, użyj listy rozdzielanej przecinkami.
Opcje roli pomocniczej są następujące:
ALLOW_CONNECTIONS = { NO | READ_ONLY | WSZYSTKO }
Określa, czy bazy danych danej repliki dostępności wykonującej rolę pomocniczą (działając jako replika pomocnicza) mogą akceptować połączenia od klientów:
NIE
Żadne połączenia użytkownika nie mogą korzystać z pomocniczych baz danych tej repliki. Nie są one dostępne do odczytu. Jest to zachowanie domyślne.
READ_ONLY
Tylko połączenia są dozwolone do baz danych w repliki pomocniczej, w której właściwość Intencja aplikacji jest ustawiona na ReadOnly. Aby uzyskać więcej informacji na temat tej właściwości, zobacz Using Connection String Keywords with SQL Server Native Client.
CAŁY
Wszystkie połączenia są dozwolone do baz danych w repliki pomocniczej na potrzeby dostępu tylko do odczytu.
Aby uzyskać więcej informacji, zobacz Odciążanie obciążenia tylko do odczytu do pomocniczej repliki zawsze włączonej grupy dostępności.
READ_ONLY_ROUTING_URL = { '*TCP:// system-address:*port' | BRAK }
Określa adres URL używany do routingu żądań połączeń intencji odczytu do tej repliki dostępności. Ten adres URL to miejsce, w którym nasłuchuje aparat bazy danych programu SQL Server. Zazwyczaj domyślne wystąpienie aparatu bazy danych programu SQL Server nasłuchuje na porcie TCP 1433.
Począwszy od SQL Server 2025 (17.x), możesz określić NONE jako miejsce READ_ONLY_ROUTING_URL docelowe, aby przywrócić określone routowanie tylko do odczytu dla repliki dostępności i kierować ruch zgodnie z domyślnym zachowaniem.
W przypadku nazwanego wystąpienia wykonaj zapytanie względem port kolumn i type_descsys.dm_tcp_listener_states widoku dynamicznego zarządzania, aby uzyskać numer portu. Wystąpienie serwera używa odbiornika Transact-SQL (type_desc='TSQL').
Aby uzyskać więcej informacji na temat obliczania adresu URL routingu tylko do odczytu dla repliki dostępności, zobacz Obliczanie read_only_routing_url dla zawsze włączonej.
Nuta
W przypadku nazwanego wystąpienia programu SQL Server skonfiguruj odbiornik Transact-SQL do używania określonego portu. Aby uzyskać więcej informacji, zobacz Skonfiguruj serwer SQL, aby nasłuchiwał na określonym porcie TCP.
PRIMARY_ROLE (...) )
Określa ustawienia specyficzne dla roli, które obowiązują, jeśli ta replika dostępności jest obecnie właścicielem roli podstawowej (za każdym razem, gdy jest to replika podstawowa). W nawiasach określ albo obie opcje roli podstawowej. Jeśli określisz obie wartości, użyj listy rozdzielanej przecinkami.
Podstawowe opcje roli są następujące:
ALLOW_CONNECTIONS = { READ_WRITE | WSZYSTKO }
Określa typ połączenia, które bazy danych danej repliki dostępności wykonującej rolę podstawową (działając jako replika podstawowa) mogą akceptować od klientów:
ODCZYT_ZAPIS
Połączenia, w których właściwość połączenia intencji aplikacji jest ustawiona na ReadOnly , są niedozwolone. Gdy właściwość Intencja aplikacji jest ustawiona na ReadWrite lub właściwość połączenia Intencja aplikacji nie jest ustawiona, połączenie jest dozwolone. Aby uzyskać więcej informacji na temat właściwości połączenia intencji aplikacji, zobacz Using Connection String Keywords with SQL Server Native Client.
CAŁY
Wszystkie połączenia są dozwolone do baz danych w repliki podstawowej. Jest to zachowanie domyślne.
READ_ONLY_ROUTING_LIST = { ('<server_instance>' [ , ... n ] ) | BRAK }
Określa rozdzielaną przecinkami listę wystąpień serwera hostujących repliki dostępności dla tej grupy dostępności, które spełniają następujące wymagania podczas uruchamiania w ramach roli pomocniczej:
Należy skonfigurować tak, aby zezwalać na wszystkie połączenia lub połączenia tylko do odczytu (zobacz
ALLOW_CONNECTIONSargumentSECONDARY_ROLEopcji, wcześniej w tym artykule).Zdefiniowano adres URL routingu tylko do odczytu (zobacz
READ_ONLY_ROUTING_URLargumentSECONDARY_ROLEopcji wcześniej w tym artykule).
Wartości READ_ONLY_ROUTING_LIST są następujące:
<server_instance>
Określa adres wystąpienia programu SQL Server, które jest hostem repliki dostępności, która jest repliką pomocniczą do odczytu podczas uruchamiania w ramach roli pomocniczej.
Lista rozdzielona przecinkami umożliwia określenie wszystkich wystąpień serwera, które mogą obsługiwać replikę pomocniczą z możliwością odczytu. Routing tylko do odczytu jest zgodny z kolejnością, w której wystąpienia serwera są określone na liście. Jeśli wystąpienie serwera hosta repliki znajduje się na liście routingu tylko do odczytu repliki, umieszczenie tego wystąpienia serwera na końcu listy jest zazwyczaj dobrym rozwiązaniem, dzięki czemu połączenia intencji odczytu przechodzą do repliki pomocniczej, jeśli jest dostępna.
Począwszy od programu SQL Server 2016 (13.x), można równoważyć obciążenie żądań intencji odczytu w replikach pomocniczych z możliwością odczytu. Należy to określić, umieszczając repliki w zagnieżdżonym zestawie nawiasów na liście routingu tylko do odczytu. Aby uzyskać więcej informacji i przykładów, zobacz Konfigurowanie równoważenia obciążenia w replikach tylko do odczytu.
ŻADEN
Określa, że jeśli ta replika dostępności jest repliką podstawową, routing tylko do odczytu nie będzie obsługiwany. Jest to zachowanie domyślne. W przypadku użycia z MODIFY REPLICA ONprogramem ta wartość wyłącza istniejącą listę, jeśli istnieje.
{ READ_WRITE_ROUTING_URL = '*TCP:// system-address:*port' | BRAK }
Dotyczy: SQL Server 2019 (15.x) i nowsze wersje
Określa wystąpienia serwera, które hostuje repliki dostępności dla tej grupy dostępności, które spełniają następujące wymagania podczas uruchamiania w ramach roli podstawowej:
- Specyfikacja repliki
PRIMARY_ROLEzawieraREAD_WRITE_ROUTING_URLelement . - Parametry połączenia to ReadWrite przez zdefiniowanie parametru ApplicationIntent jako ReadWrite lub ustawienie parametru ApplicationIntent i zezwolenie na zastosowanie wartości domyślnej (ReadWrite).
Począwszy od SQL Server 2025 (17.x), możesz określić NONEREAD_WRITE_ROUTING_URL jako miejsce docelowe, aby przywrócić określony routing odczytu i zapisu dla repliki dostępności, i kierować ruch zgodnie z domyślnym zachowaniem.
Aby uzyskać więcej informacji, zobacz secondary to primary replica read/write connection redirection (Always On Availability Groups).
SESSION_TIMEOUT = sekund
Określa okres limitu czasu sesji w sekundach. Jeśli nie określisz tej opcji, domyślny okres to 10 sekund. Minimalna wartość to 5 sekund.
Ważny
Zachowaj limit czasu na 10 sekund lub dłużej.
Aby uzyskać więcej informacji na temat okresu limitu czasu sesji, zobacz Co to jest zawsze włączona grupa dostępności?
MODYFIKOWANIE REPLIKI NA
Modyfikuje dowolną replikę grupy dostępności. Lista replik do modyfikacji zawiera adres wystąpienia serwera i klauzulę WITH (...) dla każdej repliki.
Obsługiwane tylko w repliki podstawowej.
USUŃ REPLIKĘ NA
Usuwa określoną replikę pomocniczą z grupy dostępności. Nie można usunąć bieżącej repliki podstawowej z grupy dostępności. Usunięcie repliki powoduje zatrzymanie odbierania danych. Pomocnicze bazy danych repliki są usuwane z grupy dostępności i wchodzą w RESTORING stan .
Obsługiwane tylko w repliki podstawowej.
Nuta
Jeśli usuniesz replikę, gdy jest ona niedostępna lub nie powiodła się, po powrocie do trybu online wykryje, że nie należy już do grupy dostępności.
DOŁĄCZYĆ
Powoduje, że wystąpienie serwera lokalnego hostuje replikę pomocniczą w określonej grupie dostępności.
Obsługiwane tylko w repliki pomocniczej, która nie jest jeszcze przyłączona do grupy dostępności.
Aby uzyskać więcej informacji, zobacz Dołączanie repliki pomocniczej do zawsze włączonej grupy dostępności.
TRYB FAILOVER
Inicjuje ręczne przejście w tryb failover grupy dostępności bez utraty danych do repliki pomocniczej, z którą masz połączenie. Replika, która hostuje replikę podstawową, jest obiektem docelowym trybu failover. Docelowy tryb failover przejmuje rolę podstawową i odzyskuje kopię każdej bazy danych, przenosząc je do trybu online jako nowe podstawowe bazy danych. Była replika podstawowa jednocześnie przechodzi do roli pomocniczej, a jej bazy danych stają się pomocniczymi bazami danych i są natychmiast zawieszone. Potencjalnie te role mogą przełączać się z powrotem przez szereg błędów.
Tryb failover jest obsługiwany tylko w przypadku repliki pomocniczej zatwierdzanej synchronicznie, która jest obecnie synchronizowana z repliką podstawową. Aby replika pomocnicza mogła zostać zsynchronizowana, replika podstawowa musi być również uruchomiona w trybie zatwierdzania synchronicznego.
W przypadku dwóch wystąpień SQL Server w grupie dostępności można wydać polecenie trybu failover w replice podstawowej lub pomocniczej. W przypadku wystąpień replikowanych za pośrednictwem linku wystąpienia zarządzanego należy wydać polecenie trybu failover w repliki podstawowej.
Nuta
- W przypadku grupy dostępności polecenie trybu failover jest zwracane natychmiast po zaakceptowaniu polecenia przez docelowy tryb failover. Jednak odzyskiwanie bazy danych odbywa się asynchronicznie po zakończeniu przełączania grupy dostępności w tryb failover.
- W przypadku trybu failover łącza wystąpienia zarządzanego polecenie trybu failover jest zwracane po pomyślnym przejściu w tryb failover, w którym źródłowe i docelowe role przełącznika lub jeśli polecenie trybu failover zakończy się niepowodzeniem po sprawdzeniu warunków wstępnych trybu failover.
- Nie można użyć polecenia trybu failover dla planowanego trybu failover rozproszonej grupy dostępności między dwoma wystąpieniami programu SQL Server.
Aby uzyskać informacje o ograniczeniach, wymaganiach wstępnych i zaleceniach dotyczących przeprowadzania planowanego ręcznego przejścia w tryb failover, zobacz Wykonywanie planowanego ręcznego przejścia w tryb failover zawsze włączonej grupy dostępności (SQL Server).
FORCE_FAILOVER_ALLOW_DATA_LOSS
Ostrożność
Inicjuj tylko wymuszone przejście w tryb failover jako miarę odzyskiwania po awarii, ponieważ może to spowodować utratę danych. Wymuś przejście w tryb failover powinno być wykonywane tylko wtedy, gdy replika podstawowa jest niedostępna, jest gotowa zaakceptować potencjalną utratę danych i natychmiast przywrócić usługę do grupy dostępności.
Obsługiwane tylko w repliki, której rola jest w SECONDARY stanie lub RESOLVING . Replika, na której wprowadzasz polecenie trybu failover, jest obiektem docelowym trybu failover.
Wymusza przejście grupy dostępności w tryb failover z możliwością utraty danych do celu trybu failover. Docelowy tryb failover przejmuje rolę podstawową i odzyskuje kopię każdej bazy danych, przenosząc je do trybu online jako nowe podstawowe bazy danych. W pozostałych replikach pomocniczych każda pomocnicza baza danych jest zawieszona do momentu ręcznego wznowienia. Gdy była replika podstawowa stanie się dostępna, przełącza się do roli pomocniczej, a jej bazy danych stają się zawieszone pomocnicze bazy danych.
W przypadku wystąpień replikowanych za pośrednictwem linku wystąpienia zarządzanego należy wydać FORCE_FAILOVER_ALLOW_DATA_LOSS polecenie w repliki pomocniczej (obiekt docelowy trybu failover).
Nuta
Polecenie trybu failover jest zwracane natychmiast po zaakceptowaniu polecenia przez element docelowy trybu failover. Jednak odzyskiwanie bazy danych odbywa się asynchronicznie po zakończeniu przełączania grupy dostępności w tryb failover.
Aby uzyskać informacje o ograniczeniach, wymaganiach wstępnych i zaleceniach dotyczących wymuszania pracy w trybie failover oraz wpływu wymuszonego trybu failover na poprzednich podstawowych bazach danych w grupie dostępności, zobacz Wykonywanie wymuszonego ręcznego przejścia w tryb failover zawsze włączonej grupy dostępności (SQL Server).
DODAWANIE ODBIORNIKa "dns_name" ( <add_listener_option> )
Definiuje nowy odbiornik grupy dostępności dla tej grupy dostępności. Obsługiwane tylko w repliki podstawowej.
Ważny
Przed utworzeniem pierwszego odbiornika przeczytaj konfigurowanie odbiornika dla zawsze włączonej grupy dostępności.
Po utworzeniu odbiornika dla danej grupy dostępności wykonaj następujące kroki:
- Poproś administratora sieci o zarezerwowanie adresu IP odbiornika do wyłącznego użytku.
- Nadaj deweloperom aplikacji nazwę hosta DNS odbiornika do użycia w parametrach połączenia podczas żądania połączeń z tą grupą dostępności.
dns_name
Określa nazwę hosta DNS odbiornika grupy dostępności. Nazwa DNS odbiornika musi być unikatowa w domenie i w netBIOS.
dns_name jest wartością ciągu. Ta nazwa może zawierać tylko znaki alfanumeryczne, kreski (-) i łączniki (_), w dowolnej kolejności. Nazwy hostów DNS są niewrażliwe na wielkość liter. Maksymalna długość to 63 znaki.
Określ znaczący ciąg. Na przykład w przypadku grupy dostępności o nazwie AG1zrozumiała nazwa hosta DNS będzie ag1-listener.
Ważny
NetBIOS rozpoznaje tylko pierwsze 15 znaków w obiekcie dns_name. Jeśli masz dwa klastry WSFC, które są kontrolowane przez tę samą usługę Active Directory i próbujesz utworzyć odbiorniki grup dostępności w obu klastrach przy użyciu nazw z więcej niż 15 znakami i identycznym prefiksem 15 znaków, zostanie wyświetlony komunikat o błędzie informujący, że zasób Nazwa sieci wirtualnej nie może zostać przeniesiony do trybu online. Aby uzyskać informacje o regułach nazewnictwa prefiksów dla nazw DNS, zobacz Przypisywanie nazw domen.
DOŁĄCZ DO GRUPY DOSTĘPNOŚCI WŁĄCZONEJ
Dołącza do rozproszonej grupy dostępności . Podczas tworzenia rozproszonej grupy dostępności grupa dostępności w klastrze, w którym jest tworzona, jest podstawową grupą dostępności. Grupa dostępności dołączona do rozproszonej grupy dostępności jest dodatkową grupą dostępności.
<ag_name>
Określa nazwę grupy dostępności, która stanowi połowę rozproszonej grupy dostępności.
LISTENER = '*TCP:// system-address:*port'
Określa ścieżkę adresu URL odbiornika skojarzonego z grupą dostępności.
Klauzula jest wymagana LISTENER .
"*TCP:// system-address:*port"
Określa adres URL odbiornika skojarzonego z grupą dostępności. Parametry adresu URL są następujące:
adresów systemowych
Ciąg, taki jak nazwa systemu, w pełni kwalifikowana nazwa domeny lub adres IP, który jednoznacznie identyfikuje odbiornik.
portów
Numer portu skojarzony z punktem końcowym dublowania grupy dostępności. To nie jest port odbiornika.
AVAILABILITY_MODE = { SYNCHRONOUS_COMMIT | ASYNCHRONOUS_COMMIT }
Określa, czy replika podstawowa czeka na pomocniczą grupę dostępności, aby potwierdzić wzmocnienie (zapisywanie) rekordów dziennika na dysku, zanim replika podstawowa może zatwierdzić transakcję w danej podstawowej bazie danych.
SYNCHRONOUS_COMMIT
Określa, że replika podstawowa czeka na zatwierdzenie transakcji, dopóki nie otrzyma potwierdzenia, że transakcje są wzmocnione w pomocniczej grupie dostępności. Można określić SYNCHRONOUS_COMMIT maksymalnie dwie grupy dostępności, w tym podstawową grupę dostępności.
ASYNCHRONOUS_COMMIT
Określa, że replika podstawowa zatwierdza transakcje bez oczekiwania na dodatkową grupę dostępności w celu zabezpieczenia dziennika. Można określić ASYNCHRONOUS_COMMIT maksymalnie dwie grupy dostępności, w tym podstawową grupę dostępności.
Klauzula jest wymagana AVAILABILITY_MODE .
FAILOVER_MODE = { RĘCZNY }
Określa tryb failover rozproszonej grupy dostępności.
RĘCZNIE
Umożliwia planowane ręczne przejście w tryb failover lub wymuszone ręczne przejście w tryb failover (zazwyczaj nazywane wymuszonym przejściem w tryb failover) przez administratora bazy danych.
Automatyczne przechodzenie w tryb failover do pomocniczej grupy dostępności nie jest obsługiwane.
SEEDING_MODE = { AUTOMATIC | RĘCZNE }
Określa sposób początkowego rozmieszczania pomocniczej grupy dostępności.
AUTOMATYCZNE
Włącza automatyczne rozmieszczanie. Ta metoda powoduje, że pomocnicza grupa dostępności za pośrednictwem sieci. Ta metoda nie wymaga utworzenia kopii zapasowej i przywrócenia kopii podstawowej bazy danych na replikach pomocniczej grupy dostępności.
RĘCZNIE
Określa ręczne rozmieszczanie. Ta metoda wymaga utworzenia kopii zapasowej bazy danych w repliki podstawowej i ręcznego przywrócenia tej kopii zapasowej na replikach pomocniczej grupy dostępności.
MODYFIKOWANIE GRUPY DOSTĘPNOŚCI W DNIU
Modyfikuje dowolne ustawienia grupy dostępności rozproszonej grupy dostępności. Lista grup dostępności do zmodyfikowania zawiera nazwę grupy dostępności i klauzulę WITH (...) dla każdej grupy dostępności.
Ważny
To polecenie należy uruchomić zarówno w podstawowej grupie dostępności, jak i w pomocniczych wystąpieniach grupy dostępności.
UDZIELANIE UPRAWNIEŃ DO TWORZENIA DOWOLNEJ BAZY DANYCH
Zezwala grupie dostępności na tworzenie baz danych w imieniu repliki podstawowej, która obsługuje bezpośrednie rozmieszczanie (SEEDING_MODE = AUTOMATIC). Uruchom ten parametr na każdej repliki pomocniczej, która obsługuje bezpośrednie rozmieszczanie po tym pomocniczym przyłączaniu do grupy dostępności. Wymaga uprawnienia CREATE ANY DATABASE.
ODMÓW TWORZENIA DOWOLNEJ BAZY DANYCH
Usuwa możliwość tworzenia baz danych w imieniu repliki podstawowej przez grupę dostępności.
<add_listener_option>
ADD LISTENER przyjmuje jedną z następujących opcji:
Z DHCP [ ON { ('four_part_ipv4_address','four_part_ipv4_mask') } ]
Określa, że odbiornik grupy dostępności używa protokołu DHCP (Dynamic Host Configuration Protocol). Opcjonalnie użyj klauzuli ON , aby zidentyfikować sieć, w której jest tworzony ten odbiornik. Protokół DHCP jest ograniczony do jednej podsieci używanej dla każdego wystąpienia serwera hostujących replikę dostępności w grupie dostępności.
Ważny
Nie używaj protokołu DHCP w środowisku produkcyjnym. Jeśli wystąpi przestój i dzierżawa adresu IP DHCP wygaśnie, do zarejestrowania nowego adresu IP sieci DHCP skojarzonego z nazwą DNS odbiornika i wpływa na łączność klienta. Jednak protokół DHCP jest dobry do skonfigurowania środowiska programistycznego i testowego w celu zweryfikowania podstawowych funkcji grup dostępności i integracji z aplikacjami.
Na przykład:
WITH DHCP ON ('10.120.19.0','255.255.254.0')
WITH IP ( { ('four_part_ipv4_address','four_part_ipv4_mask') | ('ipv6_address') } [ , ... n ] ) [ , PORT = listener_port ]
Zamiast używać protokołu DHCP odbiornik grupy dostępności używa co najmniej jednego statycznego adresu IP. Aby utworzyć grupę dostępności w wielu podsieciach, każda podsieć wymaga jednego statycznego adresu IP w konfiguracji odbiornika. W przypadku danej podsieci statyczny adres IP może być adresem IPv4 lub adresem IPv6. Skontaktuj się z administratorem sieci, aby uzyskać statyczny adres IP dla każdej podsieci, która hostuje replikę dostępności dla nowej grupy dostępności.
Na przykład:
WITH IP ( ('10.120.19.155','255.255.254.0') )
ipv4_address
Czteroczęściowy adres IPv4 dla odbiornika grupy dostępności. Na przykład 10.120.19.155.
ipv4_mask
Czteroczęściowa maska IPv4 dla odbiornika grupy dostępności. Na przykład 255.255.254.0.
ipv6_address
Adres IPv6 odbiornika grupy dostępności. Na przykład 2001::4898:23:1002:20f:1fff:feff:b3a3.
PORT = listener_port
Numer portu (listener_port) używany przez odbiornik grupy dostępności określony przez klauzulę WITH IP . Element PORT jest opcjonalny.
Domyślny numer portu, 1433, jest obsługiwany. Można jednak wybrać inny numer portu.
Na przykład: WITH IP ( ('2001::4898:23:1002:20f:1fff:feff:b3a3') ) , PORT = 7777
MODYFIKOWANIE ODBIORNIKA "dns_name" ( <modify_listener_option> )
Modyfikuje istniejący odbiornik grupy dostępności dla tej grupy dostępności. Obsługiwane tylko w repliki podstawowej.
<modify_listener_option>
MODIFY LISTENER przyjmuje jedną z następujących opcji:
ADD IP { ('four_part_ipv4_address','four_part_ipv4_mask') | ('ipv6_address') }
Dodaje określony adres IP do odbiornika grupy dostępności określonego przez dns_name.
PORT = listener_port
Zapoznaj się z opisem tego argumentu we wcześniejszej części tej sekcji.
USUŃ IP { ('four_part_ipv4_address') | ('ipv6_address') }
Dotyczy do: SQL Server 2025 (17.x) i nowszych wersji
Usuwa określony adres IP z określonego odbiornika grupy dostępności.
URUCHOM PONOWNIE ODBIORNIK "dns_name"
Uruchamia ponownie odbiornik skojarzony z określoną nazwą DNS. Obsługiwane tylko w repliki podstawowej.
USUŃ ODBIORNIK "dns_name"
Usuwa odbiornik skojarzony z określoną nazwą DNS. Obsługiwane tylko w repliki podstawowej.
OFFLINE
Przełącz grupę dostępności online w tryb offline. Nie ma utraty danych dla synchronicznych baz danych zatwierdzania.
Gdy grupa dostępności przejdzie w tryb offline, jej bazy danych staną się niedostępne dla klientów i nie można przywrócić grupy dostępności z powrotem do trybu online. W związku z tym użyj OFFLINE opcji tylko podczas migracji między klastrami zawsze włączonych grup dostępności podczas migrowania zasobów grupy dostępności do nowego klastra WSFC.
Aby uzyskać więcej informacji, zobacz Przełącz grupę dostępności w tryb offline (SQL Server).
Wymagania wstępne i ograniczenia
Aby uzyskać informacje na temat wymagań wstępnych i ograniczeń dotyczących replik dostępności oraz ich wystąpień i komputerów serwera hosta, zobacz Wymagania wstępne, ograniczenia i zalecenia dotyczące zawsze włączonych grup dostępności.
Aby uzyskać informacje na temat ograniczeń dotyczących AVAILABILITY GROUP instrukcji Transact-SQL, zobacz instrukcjeTransact-SQL dla zawsze włączonych grup dostępności.
Uprawnienia
Potrzebujesz ALTER AVAILABILITY GROUP uprawnień do grupy dostępności, CONTROL AVAILABILITY GROUP uprawnień, ALTER ANY AVAILABILITY GROUP uprawnień lub CONTROL SERVER uprawnień. Potrzebujesz również ALTER ANY DATABASE uprawnień.
Przykłady
Odp. Dołączanie repliki pomocniczej do grupy dostępności
Poniższy przykład dołącza replikę pomocniczą, do której masz połączenie z grupą dostępności AccountsAG.
ALTER AVAILABILITY GROUP AccountsAG JOIN;
GO
B. Wymuszanie przejścia w tryb failover grupy dostępności
Poniższy przykład wymusza przełączenie grupy dostępności AccountsAG w tryb failover do repliki pomocniczej, z którą masz połączenie.
ALTER AVAILABILITY GROUP AccountsAG FORCE_FAILOVER_ALLOW_DATA_LOSS;
GO
C. Wymuszanie szyfrowania w połączeniach z grupą dostępności
Przykłady w tej sekcji wymuszają szyfrowanie w połączeniach z grupą AccountsAG dostępności.
Jeśli nazwa serwera pojawi się w każdym certyfikacie zdefiniowanym przez jedną z metod, możesz pominąć HostNameInCertificate tę opcję:
ALTER AVAILABILITY GROUP [AccountsAG]
SET (
CLUSTER_CONNECTION_OPTIONS = 'Encrypt=Strict')
Jeśli zastosowano metodę 1 , ale nie wymieniono nazwy serwera jako alternatywnej nazwy podmiotu w certyfikacie, należy określić wartość wyświetlaną w alternatywnej nazwie podmiotuHostNameInCertificate w opcji :
ALTER AVAILABILITY GROUP [AccountsAG]
SET (
CLUSTER_CONNECTION_OPTIONS = 'Encrypt=Strict;HostNameInCertificate=<Subject Alternative Name>')
Jeśli użyto metody 1 i chcesz użyć ServerCertificate właściwości zamiast po podaniu wartości dla HostNameInCertificateelementu :
ALTER AVAILABILITY GROUP [AccountsAG]
SET (
CLUSTER_CONNECTION_OPTIONS = 'Encrypt=Strict;ServerCertificate=C:\Users\admin\SqlAGCertificate.cer')
Treści powiązane
- UTWÓRZ GRUPĘ DOSTĘPNOŚCI (Transact-SQL)
- ALTER DATABASE (Transact-SQL) SET HADR
- UPUŚĆ GRUPĘ DOSTĘPNOŚCI (Transact-SQL)
- sys.availability_replicas (Transact-SQL)
- sys.availability_groups (Transact-SQL)
- Rozwiązywanie problemów z konfiguracją zawsze włączonych grup dostępności (SQL Server)
- Co to jest grupa dostępności Always On?
- Nawiązywanie połączenia z odbiornikiem zawsze włączonej grupy dostępności