CREATE AVAILABILITY GROUP (Transact-SQL)
Dotyczy:programu SQL Server
Tworzy nową grupę dostępności, jeśli wystąpienie programu SQL Server jest włączone dla funkcji Zawsze włączone grupy dostępności.
Ważny
Wykonaj polecenie CREATE AVAILABILITY GROUP (UTWÓRZ GRUPĘ DOSTĘPNOŚCI) w wystąpieniu programu SQL Server, które ma być używane jako początkowa replika podstawowa nowej grupy dostępności. To wystąpienie serwera musi znajdować się w węźle Klaster trybu failover systemu Windows Server (WSFC).
Transact-SQL konwencje składni
Składnia
CREATE AVAILABILITY GROUP group_name
WITH (<with_option_spec> [ ,...n ] )
FOR [ DATABASE database_name [ ,...n ] ]
REPLICA ON <add_replica_spec> [ ,...n ]
AVAILABILITY GROUP ON <add_availability_group_spec> [ ,...2 ]
[ LISTENER 'dns_name' ( <listener_option> ) ]
[ ; ]
<with_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 }
| [ BASIC | DISTRIBUTED | CONTAINED [ REUSE_SYSTEM_DATABASES ] ]
| REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT = { integer }
| CLUSTER_TYPE = { WSFC | EXTERNAL | NONE }
<add_replica_spec>::=
<server_instance> WITH
(
ENDPOINT_URL = 'TCP://system-address:port',
AVAILABILITY_MODE = { SYNCHRONOUS_COMMIT | ASYNCHRONOUS_COMMIT | CONFIGURATION_ONLY },
FAILOVER_MODE = { AUTOMATIC | MANUAL | EXTERNAL }
[ , <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
<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 }
)
<listener_option> ::=
{
WITH DHCP [ ON ( <network_subnet_option> ) ]
| WITH IP ( { ( <ip_address_option> ) } [ , ...n ] ) [ , PORT = listener_port ]
}
<network_subnet_option> ::=
'ip4_address', 'four_part_ipv4_mask'
<ip_address_option> ::=
{
'ip4_address', 'pv4_mask'
| 'ipv6_address'
}
Argumenty
group_name
Określa nazwę nowej grupy dostępności.
group_name musi być prawidłowym identyfikatoremprogramu SQL Serveri musi być unikatowy we wszystkich grupach dostępności w klastrze WSFC. Maksymalna długość nazwy grupy dostępności wynosi 128 znaków dla cluster_type = WSFC
i 64 znaków dla cluster_type = NONE
i EXTERNAL
.
AUTOMATED_BACKUP_PREFERENCE = { PRIMARY | SECONDARY_ONLY | POMOCNICZA | BRAK }
Określa preferencję dotyczącą sposobu, w jaki zadanie tworzenia kopii zapasowej powinno ocenić 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 to wpływu na kopie zapasowe ad hoc.
Obsługiwane wartości są następujące:
PODSTAWOWY
Określa, że kopie zapasowe powinny zawsze występować 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, gdy kopia zapasowa jest uruchamiana 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 podstawową do momentu przygotowania i dołączenia wszystkich pomocniczych baz danych do grupy dostępności.
SECONDARY_ONLY
Określa, że kopie zapasowe nigdy nie powinny być wykonywane na repliki podstawowej. Jeśli replika podstawowa jest jedyną repliką w trybie online, kopia zapasowa nie powinna być wykonana.
WTÓRNY
Określa, że kopie zapasowe powinny występować w repliki pomocniczej, z wyjątkiem sytuacji, gdy replika podstawowa jest jedyną repliką w trybie online. W takim przypadku kopia zapasowa powinna zostać wykonana 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 ustawienia AUTOMATED_BACKUP_PREFERENCE. Interpretacja tej preferencji zależy od logiki, jeśli istnieje, że skrypty są wykonywane w zadaniach zaplecza dla baz danych w danej grupie dostępności. Ustawienie preferencji automatycznego tworzenia kopii zapasowych nie ma wpływu na kopie zapasowe ad hoc. Aby uzyskać więcej informacji, zobacz Configure Backup on Availability Replicas (SQL Server).
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 sys.fn_hadr_backup_is_preferred_replica (Transact-SQL) można użyć do określenia preferowanej repliki kopii zapasowej. Ta funkcja zwraca wartość 1 dla co najmniej jednej repliki, 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 jest ustawiana na poziomie grupy, ale ma zastosowanie tylko w przypadku replik dostępności skonfigurowanych do trybu dostępności zatwierdzania synchronicznego (AVAILABILITY_MODE = SYNCHRONOUS_COMMIT). Ponadto warunki awarii mogą wyzwalać automatyczny 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ą.
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 niepowodzenia odpowiadający każdemu poziomowi.
Poziom | Warunek błędu |
---|---|
1 | Określa, że automatyczne przejście w tryb failover powinno zostać zainicjowane, 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 odebrano usługi ACK 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 powinno zostać zainicjowane, gdy wystąpi dowolny z następujących: -Wystąpienie programu SQL Server nie łączy się z klastrem, a próg określony przez użytkownika HEALTH_CHECK_TIMEOUT grupy dostępności zostanie przekroczony. -Replika dostępności jest w stanie niepowodzenia. |
3 | Określa, że automatyczne przejście w tryb failover powinno być inicjowane w krytycznych błędach wewnętrznych programu SQL Server, takich jak oddzielone blokady 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 powinno być inicjowane w przypadku umiarkowanych błędów wewnętrznych programu SQL Server, takich jak trwały stan braku pamięci w wewnętrznej puli zasobów programu SQL Server. |
5 | Określa, że automatyczne przejście w tryb failover powinno być inicjowane 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 elastyczne zasady trybu failover dla automatycznego trybu failover grupy dostępności (SQL Server).
HEALTH_CHECK_TIMEOUT = milisekundy
Określa czas oczekiwania (w milisekundach) dla procedury składowanej systemu sp_server_diagnostics, aby zwrócić informacje o kondycji serwera przed klastrem WSFC zakłada, że wystąpienie serwera działa wolno lub nie odpowiada. HEALTH_CHECK_TIMEOUT jest ustawiana na poziomie grupy, ale ma zastosowanie tylko w przypadku replik dostępności skonfigurowanych do trybu dostępności zatwierdzania synchronicznego z automatycznym trybem failover (AVAILABILITY_MODE = SYNCHRONOUS_COMMIT). Ponadto limit czasu sprawdzania kondycji może wyzwolić automatyczne przejście w tryb failover tylko wtedy, gdy zarówno repliki podstawowe, jak i pomocnicze są skonfigurowane dla trybu automatycznego trybu failover (FAILOVER_MODE = AUTOMATIC), a replika pomocnicza jest obecnie synchronizowana z repliką podstawową.
Wartość domyślna HEALTH_CHECK_TIMEOUT to 30000 milisekund (30 sekund). Wartość minimalna to 15 000 milisekund (15 sekund), a maksymalna wartość to 4294 967 295 milisekund.
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. W przypadku ustawienia włączonego dowolny stan inny niż ONLINE dla bazy danych w grupie dostępności wyzwala automatyczny tryb failover. Gdy ta opcja jest ustawiona na wartość WYŁĄCZONE, tylko kondycja wystąpienia jest używana do wyzwalania automatycznego trybu failover.
Aby uzyskać więcej informacji na temat tego ustawienia, zobacz opcja wykrywania kondycji na poziomie bazy danych
DTC_SUPPORT = { PER_DB | BRAK }
Dotyczy: SQL Server (począwszy od programu SQL Server 2016 (13.x))
Określa, czy transakcje między bazami danych są obsługiwane za pośrednictwem koordynatora transakcji rozproszonych (DTC). Transakcje obejmujące wiele baz danych są obsługiwane tylko w programie SQL Server 2016 (13.x). PER_DB tworzy grupę dostępności z obsługą tych transakcji. Aby uzyskać więcej informacji, zobacz transakcji między bazami danych i transakcji rozproszonych dla zawsze włączonych grup dostępności i dublowania bazy danych (SQL Server).
PODSTAWOWY
Dotyczy: SQL Server (począwszy od programu SQL Server 2016 (13.x))
Służy do tworzenia podstawowej grupy dostępności. Podstawowe grupy dostępności są ograniczone do jednej bazy danych i dwóch replik: repliki podstawowej i jednej repliki pomocniczej. Ta opcja zastępuje przestarzałą funkcję dublowania bazy danych w programie SQL Server Standard Edition. Aby uzyskać więcej informacji, zobacz Podstawowe grupy dostępności (zawsze włączone grupy dostępności). Podstawowe grupy dostępności są obsługiwane począwszy od programu SQL Server 2016 (13.x).
ROZPROSZONYCH
Dotyczy: SQL Server (począwszy od programu SQL Server 2016 (13.x))
Służy do tworzenia rozproszonej grupy dostępności. Ta opcja jest używana z parametrem GRUPY DOSTĘPNOŚCI WŁĄCZONE do łączenia dwóch grup dostępności w oddzielnych klastrach trybu failover systemu Windows Server. Aby uzyskać więcej informacji, zobacz rozproszone grupy dostępności (zawsze włączone grupy dostępności). Rozproszone grupy dostępności są obsługiwane począwszy od programu SQL Server 2016 (13.x).
ZAWARTE [REUSE_SYSTEM_DATABASES]
Wprowadzono w programie SQL Server 2022 (16.x).
Utwórz zawartą grupę dostępności. Ta opcja służy do tworzenia grupy dostępności z własnymi bazami danych master
i msdb
, które są synchronizowane w zestawie replik w grupie dostępności.
Opcja REUSE_SYSTEM_DATABASES powoduje, że zawarte bazy danych master
i msdb
z wcześniejszej wersji grupy dostępności będą używane podczas tworzenia tej nowej grupy dostępności. Aby uzyskać więcej informacji na temat zawartych grup dostępności, zobacz Zawarte grupy dostępności — omówienie (zawsze włączone grupy dostępności).
REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT
Dotyczy: SQL Server (począwszy od programu SQL Server 2017 (14.x))
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, który hostuje replikę podstawową, oznacza, że replika pomocnicza nie jest zsynchronizowana i będzie kontynuowana. Gdy baza danych nie odpowiada w trybie online, będzie w stanie "niezsynchronizowanym", a replika zostanie 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 zostanie zatwierdzona dla 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.
Nieobsługiwane w przypadku TWORZENIA GRUPY 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 za pomocą polecenia ALTER AVAILABILITY GROUP. Zobacz ALTER AVAILABILITY GROUP (Transact-SQL).
CLUSTER_TYPE
Dotyczy: SQL Server (począwszy od programu SQL Server 2017 (14.x)).
Służy do identyfikowania, czy grupa dostępności znajduje się w klastrze trybu failover systemu Windows Server (WSFC). Ustaw wartość WSFC, gdy grupa dostępności znajduje się w wystąpieniu klastra trybu failover w klastrze trybu failover systemu Windows Server. Ustaw wartość EXTERNAL ,gdy klaster jest zarządzany przez menedżera klastra, który nie jest klastrem trybu failover systemu Windows Server, takim jak Linux Pacemaker. Ustaw wartość NONE, gdy grupa dostępności nie korzysta z usługi WSFC na potrzeby koordynacji klastra. Na przykład gdy grupa dostępności zawiera serwery z systemem Linux bez menedżera klastra.
database_name BAZY DANYCH
Określa listę co najmniej jednej bazy danych użytkownika w lokalnym wystąpieniu programu SQL Server (czyli wystąpieniu serwera, na którym tworzysz grupę dostępności). 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 (SQL Server). Aby dowiedzieć się, które lokalne bazy danych należą już do grupy dostępności, zobacz kolumnę replica_id w widoku katalogu sys.databases.
Klauzula DATABASE jest opcjonalna. Jeśli go pominięto, nowa grupa dostępności jest pusta.
Po utworzeniu grupy dostępności połącz się z każdym wystąpieniem serwera hostujące replikę pomocniczą, a 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).
Nuta
Później możesz dodać kwalifikujące się bazy danych w wystąpieniu serwera hostujące bieżącą replikę podstawową do grupy dostępności. Możesz również usunąć bazę danych z grupy dostępności. Aby uzyskać więcej informacji, zobacz ALTER AVAILABILITY GROUP (Transact-SQL).
REPLIKA W SYSTEMIE
Określa od jednego do pięciu wystąpień programu SQL Server do hostowania replik dostępności w nowej grupie dostępności. Każda replika jest określana przez adres wystąpienia serwera, po którym następuje klauzula WITH (...). Co najmniej należy określić wystąpienie serwera lokalnego, które staje się początkową repliką podstawową. Opcjonalnie można również określić maksymalnie cztery repliki pomocnicze.
Do grupy dostępności należy dołączyć każdą replikę pomocniczą. Aby uzyskać więcej informacji, zobacz ALTER AVAILABILITY GROUP (Transact-SQL).
Nuta
Jeśli podczas tworzenia grupy dostępności określisz mniej niż cztery repliki pomocnicze, możesz w dowolnym momencie określić dodatkową replikę pomocniczą przy użyciu instrukcji Transact-SQL ALTER AVAILABILITY GROUP. Możesz również użyć tej instrukcji, aby usunąć dowolną replikę pomocniczą z istniejącej grupy dostępności.
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), w następujący sposób:
{ '*system_name*[\\*instance_name*]' | '*FCI_network_name*[\\*instance_name*]' }
Składniki tego adresu są następujące:
system_name
To 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
To nazwa sieci używana do uzyskiwania dostępu do klastra trybu failover programu SQL Server. Użyj tej opcji, jeśli wystąpienie serwera uczestniczy jako partner trybu failover programu SQL Server. Wykonanie @@SERVERNAME SELECT na wystąpieniu serwera fcI zwraca cały ciąg "FCI_network_name[\instance_name]" (czyli pełna nazwa repliki).
instance_name
To nazwa wystąpienia programu SQL Server hostowanego przez system_name lub FCI_network_name, które ma włączoną usługę HADR. W przypadku domyślnego wystąpienia serwera instance_name jest opcjonalne. Nazwa wystąpienia jest niewrażliwa na wielkość liter. W nazwanym wystąpieniu ta nazwa wartości jest taka sama jak wartość zwrócona przez wykonanie select ServerProperty(N'InstanceName');
.
\
Jest separatorem używanym 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 (SQL Server).
ENDPOINT_URL ='TCP://adres-systemowy: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 definiowaną w bieżącej klauzuli REPLICA ON.
Wymagana jest klauzula ENDPOINT_URL. Aby uzyskać więcej informacji, zobacz Określanie adresu URL punktu końcowego podczas dodawania lub modyfikowania repliki dostępności (SQL Server).
"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-systemowy
To ciąg, taki jak nazwa systemu, w pełni kwalifikowana nazwa domeny lub adres IP, który jednoznacznie identyfikuje system komputera docelowego.
port
Jest numerem portu skojarzonym z punktem końcowym dublowania wystąpienia serwera partnera (dla opcji ENDPOINT_URL) lub numerem portu używanym przez aparat bazy danych wystąpienia serwera (dla opcji READ_ONLY_ROUTING_URL).
AVAILABILITY_MODE = {SYNCHRONOUS_COMMIT | ASYNCHRONOUS_COMMIT | CONFIGURATION_ONLY }
SYNCHRONOUS_COMMIT lub ASYNCHRONOUS_COMMIT określa, czy replika podstawowa musi 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. Program SQL Server 2017 (14.x) CU1 wprowadza CONFIGURATION_ONLY. replika CONFIGURATION_ONLY dotyczy tylko grup dostępności z CLUSTER_TYPE = EXTERNAL
lub CLUSTER_TYPE = NONE
.
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 dla maksymalnie trzech replik, w tym repliki podstawowej.
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 dla maksymalnie pięciu replik dostępności, w tym repliki podstawowej.
CONFIGURATION_ONLY
Określa, że replika podstawowa synchronicznie zatwierdza metadane konfiguracji grupy dostępności do bazy danych master w tej repliki. Replika nie będzie 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 dublowania danych repliki CONFIGURATION_ONLY był typem
WITNESS
.Nie można go zmienić.
Nie jest prawidłowa, gdy
CLUSTER_TYPE = WSFC
.Opcje
failover_mode
iseeding_mode
nie są obsługiwane, gdyavailability_mode
jest ustawiona naconfiguration_only
dla repliki. Przykład pokazano tutaj.Aby uzyskać więcej informacji, zobacz Configuration only replica.
Klauzula AVAILABILITY_MODE jest wymagana. Aby uzyskać więcej informacji, zobacz Tryby dostępności (zawsze włączone 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. Ta opcja jest obsługiwana tylko wtedy, gdy określisz również AVAILABILITY_MODE = SYNCHRONOUS_COMMIT. Możesz określić opcję AUTOMATYCZNA dla dwóch replik dostępności, w tym repliki podstawowej.
Nuta
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 hostowana przez wystąpienie klastra trybu failover może być skonfigurowana tylko do ręcznego przejścia w tryb failover.
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.
Klauzula FAILOVER_MODE jest wymagana. Dwa typy ręcznego przejścia w tryb failover, ręczne przejście w tryb failover bez utraty danych i wymuszone przejście w tryb failover (z możliwością utraty danych) są obsługiwane w różnych warunkach. 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, wywołując 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..100 wskazuje, że można wybrać replikę dostępności do wykonywania kopii zapasowych. 1 wskazuje najniższy priorytet, a 100 wskazuje najwyższy priorytet. Jeśli BACKUP_PRIORITY = 1, replika dostępności zostanie wybrana do wykonywania kopii zapasowych tylko wtedy, gdy repliki dostępności o wyższym priorytcie nie są obecnie dostępne.
0 wskazuje, że ta replika dostępności nie służy do wykonywania kopii zapasowych. Jest to przydatne 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 aktywne sekundy: tworzenie kopii zapasowych w replikach pomocniczych (zawsze włączone grupy dostępności).
SECONDARY_ROLE ( ... )
Określa ustawienia specyficzne dla roli, które mają zastosowanie, jeśli ta replika dostępności jest obecnie właścicielem roli pomocniczej (czyli zawsze, 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, która pełni rolę pomocniczą (czyli działa jako replika pomocnicza) mogą akceptować połączenia od klientów, jeden z następujących elementó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 Aktywne pomocnicze repliki: repliki pomocnicze z możliwością odczytu (zawsze włączone grupy dostępności).
READ_ONLY_ROUTING_URL ='TCP://adres-systemowy:port'
Określa adres URL, który ma być używany do routingu żądań połączenia intencji odczytu do tej repliki dostępności. Jest to adres URL, pod którym nasłuchuje aparat bazy danych. Zazwyczaj domyślne wystąpienie programu SQL Server nasłuchuje na porcie TCP 1433.
W przypadku nazwanego wystąpienia można uzyskać numer portu, wykonując zapytanie dotyczące portów i kolumn type_desc widoku dynamicznego zarządzania sys.dm_tcp_listener_states. 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, zobacz Obliczanie read_only_routing_url dla zawsze włączonej.
Nuta
W przypadku nazwanego wystąpienia programu SQL Server należy skonfigurować odbiornik Transact-SQL do używania określonego portu. Aby uzyskać więcej informacji, zobacz Configure a Server to listen on a Specific TCP Port (SQL Server Configuration Manager).
PRIMARY_ROLE ( ... )
Określa ustawienia specyficzne dla roli, które mają zastosowanie, jeśli ta replika dostępności jest obecnie właścicielem roli podstawowej (czyli zawsze, gdy jest repliką podstawową). 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, która pełni rolę podstawową (czyli działa jako replika podstawowa) mogą akceptować od klientów:
READ_WRITE
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 intencji 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 argument ALLOW_CONNECTIONS opcji SECONDARY_ROLE).
Zdefiniowano adres URL routingu tylko do odczytu (zobacz argument READ_ONLY_ROUTING_URL opcji SECONDARY_ROLE).
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, 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 gdy ta replika dostępności jest repliką podstawową, routing tylko do odczytu nie jest obsługiwany. Jest to zachowanie domyślne.
READ_WRITE_ROUTING_URL ='TCP://adres-systemowy:port
Dotyczy: SQL Server (począwszy od programu SQL Server 2019 (15.x))
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:
- PRIMARY_ROLE specyfikacji repliki zawiera READ_WRITE_ROUTING_URL.
- Parametry połączenia to ReadWrite przez zdefiniowanie parametru ApplicationIntent jako ReadWrite lub ustawienie parametru ApplicationIntent i zezwolenie na zastosowanie wartości domyślnej (ReadWrite).
Aby uzyskać więcej informacji, zobacz secondary to primary replica read/write connection redirection (Always On availability groups).
SESSION_TIMEOUT = liczba całkowita
Określa okres limitu czasu sesji w sekundach. Jeśli nie określisz tej opcji, domyślnie okres wynosi 10 sekund. Minimalna wartość to 5 sekund.
Ważny
Zalecamy zachowanie limitu czasu na 10 sekund lub dłużej.
Aby uzyskać więcej informacji na temat okresu limitu czasu sesji, zobacz Omówienie zawsze włączonych grup dostępności (SQL Server).
GRUPA DOSTĘPNOŚCI WŁĄCZONA
Określa dwie grupy dostępności, które stanowią rozproszoną grupę dostępności. Każda grupa dostępności jest częścią własnego klastra trybu failover systemu Windows Server (WSFC). Podczas tworzenia rozproszonej grupy dostępności grupa dostępności w bieżącym wystąpieniu programu SQL Server staje się podstawową grupą dostępności. Druga grupa dostępności staje się pomocniczą grupą dostępności.
Należy dołączyć pomocniczą grupę dostępności do rozproszonej grupy dostępności. Aby uzyskać więcej informacji, zobacz ALTER AVAILABILITY GROUP (Transact-SQL).
ag_name
Określa nazwę grupy dostępności, która stanowi połowę rozproszonej grupy dostępności.
LISTENER_URL ='TCP://adres-systemowy:port'
Określa ścieżkę adresu URL odbiornika skojarzonego z grupą dostępności.
Wymagana jest klauzula LISTENER_URL.
"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
To ciąg, taki jak nazwa systemu, w pełni kwalifikowana nazwa domeny lub adres IP, który jednoznacznie identyfikuje odbiornik.
portów
Jest numerem portu skojarzonym z punktem końcowym dublowania grupy dostępności. Należy pamiętać, że nie jest to port odbiornika.
AVAILABILITY_MODE = { SYNCHRONOUS_COMMIT | ASYNCHRONOUS_COMMIT | CONFIGURATION_ONLY }
Określa, czy replika podstawowa musi 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 zostaną wzmocnione w pomocniczej grupie dostępności. Można określić SYNCHRONOUS_COMMIT dla maksymalnie dwóch grup dostępności, w tym podstawowej grupy 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 dla maksymalnie dwóch grup dostępności, w tym podstawowej grupy dostępności.
Klauzula AVAILABILITY_MODE jest wymagana.
FAILOVER_MODE = { MANUAL }
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.
Klauzula FAILOVER_MODE jest wymagana, a jedyną opcją jest INSTRUKCJA. 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 bezpośrednie 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 (ustawienie domyślne). 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.
ODBIORNIK 'dns_name'( listener_option )
Definiuje nowy odbiornik grupy dostępności dla tej grupy dostępności. ODBIORNIK jest opcjonalnym argumentem.
Ważny
Przed utworzeniem pierwszego odbiornika zdecydowanie zalecamy przeczytanie Tworzenie lub konfigurowanie odbiornika grupy dostępności (SQL Server).
Po utworzeniu odbiornika dla danej grupy dostępności zdecydowanie zalecamy wykonanie następujących czynności:
- 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.
Zalecamy określenie znaczącego ciągu. Na przykład w przypadku grupy dostępności o nazwie AG1
zrozumiała nazwa hosta DNS będzie ag1-listener
.
Ważny
NetBIOS rozpoznaje tylko pierwsze 15 znaków w dns_name. Jeśli masz dwa klastry WSFC, które są kontrolowane przez tę samą usługę Active Directory i próbujesz utworzyć odbiorniki grupy dostępności w obu klastrach przy użyciu nazw z więcej niż 15 znakami i identycznym prefiksem 15 znaków, błąd zgłasza, że zasób Nazwa sieci wirtualnej nie może zostać przeniesiony w tryb online. Aby uzyskać informacje o regułach nazewnictwa prefiksów dla nazw DNS, zobacz Przypisywanie nazw domen.
listener_option
Odbiornik przyjmuje jedną z następujących opcji <listener_option>:
WITH 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ę w grupie dostępności.
Ważny
Nie zalecamy korzystania z protokołu DHCP w środowisku produkcyjnym. Jeśli występuje czas awarii i dzierżawa adresu IP DHCP wygasa, do zarejestrowania nowego adresu IP sieci DHCP skojarzonego z nazwą DNS odbiornika i wpływu na łączność klienta jest wymagany dodatkowy czas. 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 ]
Określa, że 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ę dla nowej grupy dostępności.
Na przykład:
WITH IP ( ('10.120.19.155','255.255.254.0') )
ip4_address
Określa czteroczęściowy adres IPv4 dla odbiornika grupy dostępności. Na przykład 10.120.19.155
.
ipv4_mask
Określa czteroczęściową maskę IPv4 dla odbiornika grupy dostępności. Na przykład 255.255.254.0
.
ipv6_address
Określa adres IPv6 dla odbiornika grupy dostępności. Na przykład 2001::4898:23:1002:20f:1fff:feff:b3a3
.
PORT = listener_port
Określa numer portu —listener_port— do użycia przez odbiornik grupy dostępności określony przez klauzulę WITH IP. Port jest opcjonalny.
Obsługiwany jest domyślny numer portu 1433. Jeśli jednak masz problemy z zabezpieczeniami, zalecamy użycie innego numeru portu.
Na przykład: WITH IP ( ('2001::4898:23:1002:20f:1fff:feff:b3a3') ) , PORT = 7777
Wymagania wstępne i ograniczenia
Aby uzyskać informacje o wymaganiach wstępnych dotyczących tworzenia grupy dostępności, zobacz wymagania wstępne, ograniczenia i zalecenia dotyczące zawsze włączonych grup dostępności (SQL Server).
Aby uzyskać informacje o ograniczeniach instrukcji Transact-SQL GRUPY DOSTĘPNOŚCI, zobacz Omówienie instrukcji Transact-SQL dla zawsze włączonych grup dostępności (SQL Server).
Bezpieczeństwo
Uprawnienia
Wymaga członkostwa w stałej roli serwera sysadmin i uprawnienia UTWÓRZ serwer GRUPY DOSTĘPNOŚCI, ALTER ANY AVAILABILITY GROUP uprawnienia lub CONTROL SERVER uprawnienia.
Przykłady
A. Konfigurowanie kopii zapasowej na replikach pomocniczych, elastycznych zasadach trybu failover i dostępie do połączeń
Poniższy przykład tworzy grupę dostępności o nazwie MyAg
dla dwóch baz danych użytkowników, ThisDatabase
i ThatDatabase
. W poniższej tabeli podsumowano wartości określone dla opcji ustawionych dla grupy dostępności jako całości.
Opcja grupy | Ustawienie | Opis |
---|---|---|
AUTOMATED_BACKUP_PREFERENCE | WTÓRNY | Ta automatyczna preferencja tworzenia kopii zapasowych wskazuje, że kopie zapasowe powinny występować w repliki pomocniczej, z wyjątkiem sytuacji, gdy replika podstawowa jest jedyną repliką w trybie online (jest to zachowanie domyślne). Aby ustawienie AUTOMATED_BACKUP_PREFERENCE miało jakikolwiek wpływ, należy utworzyć skrypt zadań tworzenia kopii zapasowych w bazach danych dostępności, aby uwzględnić preferencje automatycznego tworzenia kopii zapasowej. |
FAILURE_CONDITION_LEVEL | 3 | To ustawienie poziomu warunku awarii określa, że automatyczne przejście w tryb failover powinno być inicjowane na krytycznych błędach wewnętrznych programu SQL Server, takich jak oddzielone spinlocks, poważne naruszenia dostępu do zapisu lub zbyt duże dumpingu. |
HEALTH_CHECK_TIMEOUT | 600000 | Ta wartość limitu czasu kontroli kondycji, 60 sekund, określa, że klaster WSFC czeka 60000 milisekund dla procedury składowanej systemu sp_server_diagnostics, aby zwrócić informacje o kondycji serwera o wystąpieniu serwera hostujące replikę zatwierdzenia synchronicznego z automatycznym, zanim klaster zakłada, że wystąpienie serwera hosta działa wolno lub nie odpowiada. (Wartość domyślna to 30000 milisekund). |
Trzy repliki dostępności mają być hostowane przez domyślne wystąpienia serwera na komputerach o nazwie COMPUTER01
, COMPUTER02
i COMPUTER03
. Poniższa tabela zawiera podsumowanie wartości określonych dla opcji repliki każdej repliki.
Opcja repliki | Ustawienie na COMPUTER01 |
Ustawienie na COMPUTER02 |
Ustawienie na COMPUTER03 |
Opis |
---|---|---|---|---|
ENDPOINT_URL | TCP://COMPUTER01:5022 | TCP://COMPUTER02:5022 | TCP://COMPUTER03:5022 | W tym przykładzie systemy są tą samą domeną, więc adresy URL punktów końcowych mogą używać nazwy systemu komputerowego jako adresu systemowego. |
AVAILABILITY_MODE | SYNCHRONOUS_COMMIT | SYNCHRONOUS_COMMIT | ASYNCHRONOUS_COMMIT | Dwie repliki używają trybu zatwierdzania synchronicznego. Po zsynchronizowaniu obsługują tryb failover bez utraty danych. Trzecia replika, która używa trybu dostępności zatwierdzania asynchronicznego. |
FAILOVER_MODE | AUTOMATYCZNE | AUTOMATYCZNE | RĘCZNIE | Repliki zatwierdzeń synchronicznych obsługują automatyczne przejście w tryb failover i planowane ręczne przejście w tryb failover. Replika trybu dostępności zatwierdzania synchronicznego obsługuje tylko wymuszone ręczne przejście w tryb failover. |
BACKUP_PRIORITY | 30 | 30 | 90 | Wyższy priorytet, 90, jest przypisywany do repliki zatwierdzania asynchronicznego, niż do replik zatwierdzenia synchronicznego. Kopie zapasowe mają tendencję do tworzenia kopii zapasowych w wystąpieniu serwera hostujących replikę zatwierdzania asynchronicznego. |
SECONDARY_ROLE | ( ALLOW_CONNECTIONS = NIE, READ_ONLY_ROUTING_URL = 'TCP://COMPUTER01:1433' ) |
( ALLOW_CONNECTIONS = NIE, READ_ONLY_ROUTING_URL = 'TCP://COMPUTER02:1433' ) |
( ALLOW_CONNECTIONS = READ_ONLY, READ_ONLY_ROUTING_URL = 'TCP://COMPUTER03:1433' ) |
Replika zatwierdzania asynchronicznego służy tylko jako replika pomocnicza z możliwością odczytu. Określa nazwę komputera i domyślny numer portu aparatu bazy danych (1433). Ten argument jest opcjonalny. |
PRIMARY_ROLE | ( ALLOW_CONNECTIONS = READ_WRITE, READ_ONLY_ROUTING_LIST = (COMPUTER03) ) |
( ALLOW_CONNECTIONS = READ_WRITE, READ_ONLY_ROUTING_LIST = (COMPUTER03) ) |
( ALLOW_CONNECTIONS = READ_WRITE, READ_ONLY_ROUTING_LIST = NONE ) |
W roli podstawowej wszystkie repliki odrzucają próby połączenia intencji odczytu. Żądania połączenia intencji odczytu są kierowane do COMPUTER03, jeśli replika lokalna jest uruchomiona w ramach roli pomocniczej. Gdy ta replika działa w ramach roli podstawowej, routing tylko do odczytu jest wyłączony. Ten argument jest opcjonalny. |
SESSION_TIMEOUT | 10 | 10 | 10 | W tym przykładzie określono domyślną wartość limitu czasu sesji (10). Ten argument jest opcjonalny. |
Na koniec przykład określa opcjonalną klauzulę LISTENER, aby utworzyć odbiornik grupy dostępności dla nowej grupy dostępności. Unikatowa nazwa DNS, MyAgListenerIvP6
, jest określona dla tego odbiornika. Dwie repliki znajdują się w różnych podsieciach, więc odbiornik musi używać statycznych adresów IP. Dla każdej z dwóch replik dostępności klauzula WITH IP określa statyczny adres IP, 2001:4898:f0:f00f::cf3c
i 2001:4898:e0:f213::4ce2
, które używają formatu IPv6. W tym przykładzie użyto również opcjonalnego argumentu PORT, aby określić port 60173
jako port odbiornika.
CREATE AVAILABILITY GROUP MyAg
WITH (
AUTOMATED_BACKUP_PREFERENCE = SECONDARY,
FAILURE_CONDITION_LEVEL = 3,
HEALTH_CHECK_TIMEOUT = 600000
)
FOR
DATABASE ThisDatabase, ThatDatabase
REPLICA ON
'COMPUTER01' WITH
(
ENDPOINT_URL = 'TCP://COMPUTER01:5022',
AVAILABILITY_MODE = SYNCHRONOUS_COMMIT,
FAILOVER_MODE = AUTOMATIC,
BACKUP_PRIORITY = 30,
SECONDARY_ROLE (ALLOW_CONNECTIONS = NO,
READ_ONLY_ROUTING_URL = 'TCP://COMPUTER01:1433' ),
PRIMARY_ROLE (ALLOW_CONNECTIONS = READ_WRITE,
READ_ONLY_ROUTING_LIST = (COMPUTER03) ),
SESSION_TIMEOUT = 10
),
'COMPUTER02' WITH
(
ENDPOINT_URL = 'TCP://COMPUTER02:5022',
AVAILABILITY_MODE = SYNCHRONOUS_COMMIT,
FAILOVER_MODE = AUTOMATIC,
BACKUP_PRIORITY = 30,
SECONDARY_ROLE (ALLOW_CONNECTIONS = NO,
READ_ONLY_ROUTING_URL = 'TCP://COMPUTER02:1433' ),
PRIMARY_ROLE (ALLOW_CONNECTIONS = READ_WRITE,
READ_ONLY_ROUTING_LIST = (COMPUTER03) ),
SESSION_TIMEOUT = 10
),
'COMPUTER03' WITH
(
ENDPOINT_URL = 'TCP://COMPUTER03:5022',
AVAILABILITY_MODE = ASYNCHRONOUS_COMMIT,
FAILOVER_MODE = MANUAL,
BACKUP_PRIORITY = 90,
SECONDARY_ROLE (ALLOW_CONNECTIONS = READ_ONLY,
READ_ONLY_ROUTING_URL = 'TCP://COMPUTER03:1433' ),
PRIMARY_ROLE (ALLOW_CONNECTIONS = READ_WRITE,
READ_ONLY_ROUTING_LIST = NONE ),
SESSION_TIMEOUT = 10
);
GO
ALTER AVAILABILITY GROUP [MyAg]
ADD LISTENER 'MyAgListenerIvP6' ( WITH IP ( ('2001:db88:f0:f00f::cf3c'),('2001:4898:e0:f213::4ce2') ) , PORT = 60173 );
GO
Powiązane zadania
Użyj Kreatora grupy dostępności (SQL Server Management Studio)
użyj okna dialogowego Nowa grupa dostępności (SQL Server Management Studio)
Użyj Kreatora grupy dostępności (SQL Server Management Studio)
Zobacz też
ALTER AVAILABILITY GROUP (Transact-SQL)
ALTER DATABASE SET HADR (Transact-SQL)
DROP AVAILABILITY GROUP (Transact-SQL)
Rozwiązywanie problemów z konfiguracją zawsze włączonych grup dostępności (SQL Server)
omówienie zawsze włączonych grup dostępności (SQL Server)
odbiorniki grup dostępności, łączność klienta i tryb failover aplikacji (SQL Server)