Konfigurace replikace pomocí skupin dostupnosti AlwaysOn
platí pro:SQL Server – jenom Windows
Konfigurace replikace SQL Serveru a skupin dostupnosti AlwaysOn zahrnuje sedm kroků. Každý krok je podrobněji popsán v následujících částech.
1. Konfigurace databázových publikací a odběrů
Konfigurace distributora
Distribuční databázi nelze umístit do skupiny dostupnosti s SQL Serverem 2012 a SQL Serverem 2014. Umístění distribuční databáze do skupiny dostupnosti je podporováno od SQL 2016 a výše, s výjimkou distribučních databází používaných při sloučení, obousměrné nebo peer-to-peer topologiích replikace. Další informace najdete v tématu Nastavení distribuční databáze replikace ve skupině dostupnosti AlwaysOn.
Nakonfigurujte distribuci u distributora. Pokud se uložené procedury používají pro konfiguraci, spusťte
sp_adddistributor
Pomocí parametru @password identifikujte heslo, které se použije, když se vzdálený vydavatel připojí k distributoru. Heslo bude potřeba také u každého vzdáleného vydavatele při nastavení vzdáleného distributora.USE master; GO EXECUTE sys.sp_adddistributor @distributor = 'MyDistributor', @password = '**Strong password for distributor**';
Vytvořte distribuční databázi u distributora. Pokud se uložené procedury používají pro konfiguraci, spusťte
sp_adddistributiondb
USE master; GO EXECUTE sys.sp_adddistributiondb @database = 'distribution', @security_mode = 1;
Nakonfigurujte vzdáleného vydavatele. Pokud se k konfiguraci distributora používají uložené procedury, spusťte
sp_adddistpublisher
. Parametr @security_mode slouží k určení, jak se uložená procedura pro ověření vydavatele, spuštěná z agentů replikace, připojuje k aktuálnímu primárnímu serveru. Pokud je nastaveno na 1, používá se ověřování systému Windows pro připojení k aktuálnímu primárnímu serveru. Pokud je nastavená hodnota 0, použije se ověřování SQL Serveru se zadanými @login a @password hodnotami. Zadané přihlašovací jméno a heslo musí být platné v každé sekundární replice, aby se uložená procedura ověření úspěšně připojila k této replice.Poznámka
Pokud se na jiném počítači, než je distributor, spustí nějaká upravená replikační agenta, bude použití ověřování systému Windows pro připojení k primárnímu serveru vyžadovat, aby bylo nakonfigurováno ověřování Kerberos pro komunikaci mezi hostitelskými počítači repliky. Použití přihlášení k SQL Serveru pro připojení k aktuálnímu primárnímu serveru nebude vyžadovat ověřování protokolem Kerberos.
USE master; GO EXECUTE sys.sp_adddistpublisher @publisher = 'AGPrimaryReplicaHost', @distribution_db = 'distribution', @working_directory = '\\MyReplShare\WorkingDir', @login = 'MyPubLogin', @password = '**Strong password for publisher**';
Další informace najdete v tématu sp_adddistpublisher.
Konfigurace vydavatele u původního vydavatele
Nakonfigurujte vzdálenou distribuci. Pokud se k konfiguraci vydavatele používají uložené procedury, spusťte
sp_adddistributor
Zadejte stejnou hodnotu pro @password jako při spuštěnísp_adddistrbutor
u distributora k nastavení distribuce.EXECUTE sys.sp_adddistributor @distributor = 'MyDistributor', @password = 'MyDistPass';
Povolte databázi pro replikaci. Pokud se k konfiguraci vydavatele používají uložené procedury, spusťte
sp_replicationdboption
Pokud se pro databázi nakonfiguruje transakční i slučovací replikace, musí být každá povolena.USE master; GO EXECUTE sys.sp_replicationdboption @dbname = 'MyDBName', @optname = 'publish', @value = 'true'; EXECUTE sys.sp_replicationdboption @dbname = 'MyDBName', @optname = 'merge publish', @value = 'true';
Vytvořte replikační publikaci, články a odběry. Další informace o konfiguraci replikace naleznete v tématu Publikování dat a databázových objektů.
2. Konfigurace skupiny dostupnosti
Na zamýšleném primárním serveru vytvořte skupinu dostupnosti s publikovanou (nebo k publikování) databází jako databází člena. Pokud používáte Průvodce skupinou dostupnosti, můžete buď povolit průvodci počáteční synchronizaci sekundárních databází replik, nebo můžete inicializaci provést ručně pomocí zálohování a obnovení.
Vytvořte naslouchací službu DNS pro skupinu dostupnosti, kterou budou využívat agenti replikace k připojení k aktuální primární replice. Zadaný název posluchače se použije jako cíl přesměrování pro původní dvojici vydavatel/publikovaná databáze. Pokud například k konfiguraci skupiny dostupnosti používáte DDL, můžete použít následující příklad kódu k určení posluchače pro existující skupinu dostupnosti s názvem MyAG
:
ALTER AVAILABILITY GROUP 'MyAG'
ADD LISTENER 'MyAGListenerName' (WITH IP (('10.120.19.155', '255.255.254.0')));
Další informace naleznete v tématu Vytvoření a konfigurace skupin dostupnosti (SQL Server).
3. Ujistěte se, že jsou pro replikaci nakonfigurovaní všichni hostitelé sekundární repliky.
Na každém sekundárním hostiteli repliky ověřte, že je SQL Server nakonfigurovaný tak, aby podporoval replikaci. Následující dotaz lze spustit na každém sekundárním hostiteli repliky a zjistit, jestli je nainstalovaná replikace:
USE master;
GO
DECLARE @installed AS INT;
EXECUTE @installed = sys.sp_MS_replication_installed;
SELECT @installed;
Pokud je @installed 0, musí být replikace přidána do instalace SQL Serveru.
4. Konfigurujte hostitele sekundární repliky jako vydavatele replikace
Sekundární replika nemůže fungovat jako vydavatel replikace ani jako znovu vydavatel, ale replikace musí být nakonfigurována tak, aby mohla převzít roli po selhání. U distributora nakonfigurujte distribuci pro každého sekundárního hostitele repliky. Zadejte stejnou distribuční databázi a pracovní adresář, který byl zadán při přidání původního vydavatele do distributora. Pokud ke konfiguraci distribuce používáte uložené procedury, použijte sp_adddistpublisher
k přidružení vzdálených vydavatelů k distributorovi. Pokud @login a @password byly použity pro původního vydavatele, zadejte stejné hodnoty pro každou z nich při přidání sekundárních hostitelů replik jako vydavatelů.
EXECUTE sys.sp_adddistpublisher
@publisher = 'AGSecondaryReplicaHost',
@distribution_db = 'distribution',
@working_directory = '\\MyReplShare\WorkingDir',
@login = 'MyPubLogin',
@password = '**Strong password for publisher**';
Na každém sekundárním hostiteli repliky nakonfigurujte distribuci. Identifikujte distributora původního vydavatele jako vzdáleného distributora. Použijte stejné heslo jako při spuštění sp_adddistributor
původně u distributora. Pokud se k konfiguraci distribuce používají uložené procedury, použije se k zadání hesla parametr @passwordsp_adddistributor
.
EXECUTE sp_adddistributor
@distributor = 'MyDistributor',
@password = '**Strong password for distributor**';
U každého sekundárního hostitele repliky se ujistěte, že odběratelé nabízených oznámení databáze se zobrazují jako propojené servery. Pokud se ke konfiguraci vzdálených vydavatelů používají uložené procedury, použijte sp_addlinkedserver
k přidání odběratelů (pokud ještě nejsou k dispozici) jako odkazovaných serverů k vydavatelům.
EXECUTE sys.sp_addlinkedserver @server = 'MySubscriber';
5. Přesměrujte původního vydavatele na název posluchače AG.
U distributora v distribuční databázi spusťte uloženou proceduru sp_redirect_publisher
, která přiřadí původního vydavatele a publikovanou databázi k názvu posluchače skupiny dostupnosti.
USE distribution;
GO
EXECUTE sys.sp_redirect_publisher
@original_publisher = 'MyPublisher',
@publisher_db = 'MyPublishedDB',
@redirected_publisher = 'MyAGListenerName';
6. Spuštěním uložené procedury ověření replikace ověřte konfiguraci.
V distribuční databázi spusťte uloženou proceduru sp_validate_replica_hosts_as_publishers
a ověřte, že všichni replikační hostitelé jsou teď nakonfigurovaní tak, aby sloužili jako vydavatelé publikované databáze.
USE distribution;
GO
DECLARE @redirected_publisher AS sysname;
EXECUTE sys.sp_validate_replica_hosts_as_publishers
@original_publisher = 'MyPublisher',
@publisher_db = 'MyPublishedDB',
@redirected_publisher = @redirected_publisher OUTPUT;
Uložená procedura sp_validate_replica_hosts_as_publishers
by měla být spuštěna z přihlášení s dostatečnou autorizací u každého hostitele repliky skupiny dostupnosti, aby se dotázala na informace o skupině dostupnosti. Na rozdíl od sp_validate_redirected_publisher
využívá přihlašovací údaje volajícího a k připojení k replikám skupiny dostupnosti nepoužívá přihlašovací údaje uložené v msdb.dbo.MSdistpublishers
.
Chyba při ověřování hostitelů sekundárních replik
sp_validate_replica_hosts_as_publishers
selže s následující chybou při ověřování hostitelů sekundární repliky, kteří nepovolují přístup ke čtení nebo vyžadují zadání záměru čtení.
Msg 21899, Level 11, State 1, Procedure
sp_hadr_verify_subscribers_at_publisher
, Line 109Dotaz na přesměrovaného vydavatele 'MyReplicaHostName' se nezdařil při snaze zjistit, zda existují záznamy sysserveru pro předplatitele původního vydavatele 'MyOriginalPublisher'. Chyba 976, úroveň 14, stav 1, zpráva: Cílová databáze 'MyPublishedDB' se účastní skupiny vysoké dostupnosti a aktuálně není dostupná pro dotazy. Přesun dat je pozastaven nebo replika dostupnosti dat není povolena pro čtení. Pokud chcete povolit přístup jen pro čtení k této a dalším databázím ve skupině dostupnosti, povolte přístup pro čtení k jedné nebo více sekundárním replikám dostupnosti ve skupině. Další informace naleznete v příkazu ALTER AVAILABILITY GROUP v aplikaci SQL Server Books Online.
U hostitele repliky MyReplicaHostName došlo k jedné nebo více chybám ověření vydavatele.
Toto chování je očekávané. Přítomnost položek serveru odběratele na těchto sekundárních hostitelích replik je nutné ověřit dotazováním položek sysserveru přímo na hostiteli.
7. Přidání původního vydavatele do monitorování replikace
Přidejte původního vydavatele do nástroje Replication Monitor na každou repliku skupiny dostupnosti.
Související úkoly
Replikace
Vytvoření a konfigurace skupiny dostupnosti
- Použijte Průvodce skupinou dostupnosti (SQL Server Management Studio)
- Použít dialogové okno Nová skupina dostupnosti (SQL Server Management Studio)
- vytvoření skupiny dostupnosti (Transact-SQL)
- Vytvořte skupinu dostupnosti (SQL Server PowerShell)
- Zadání adresy URL koncového bodu při přidávání nebo úpravě repliky dostupnosti (SQL Server)
- Vytvoření koncového bodu zrcadlení databáze pro Always On skupiny dostupnosti (SQL Server PowerShell)
- Připojení Sekundární Repliky ke Skupině Dostupnosti (SQL Server)
- Ruční Příprava Sekundární Databáze pro Dostupnostní Skupinu (SQL Server)
- připojení sekundární databáze ke skupině dostupnosti (SQL Server)
- Vytvoření nebo konfigurace naslouchacího zařízení skupiny dostupnosti (SQL Server)