Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Použijte distribuovanou skupinu dostupnosti (AG) k migraci databází ve skupině dostupnosti Always On a zachovejte podporu vysoké dostupnosti a zotavení po havárii (HADR) po migraci na vašich SQL serverech na virtuálních počítačích Azure.
Jakmile ověříte, že vaše zdrojové instance SQL Serveru splňují požadavky, postupujte podle kroků v tomto článku a vytvořte distribuovanou dostupnost mezi existující skupinou dostupnosti a cílovou skupinou dostupnosti na SQL Serveru na virtuálních počítačích Azure.
Tento článek je určený pro databáze, které jsou součástí skupiny dostupnosti, a vyžaduje cluster Windows Serveru s podporou převzetí služeb při selhání (WSFC) a posluchač skupiny dostupnosti. Je také možné migrovat databáze ze samostatné instance SQL Serveru.
Počáteční nastavení
Prvním krokem je vytvoření virtuálních počítačů s SQL Serverem v Azure. Můžete to udělat pomocí webu Azure Portal, Azure PowerShellu nebo šablony ARM.
Nezapomeňte nakonfigurovat virtuální počítače s SQL Serverem podle požadavků. Vyberte si mezi jednopodsitěným nasazením, které využívá Azure Load Balancer nebo distribuovaný název sítě ke směrování provozu k naslouchadlu skupiny dostupnosti, nebo vícepodsitěným nasazením, které takový požadavek nemá. Doporučuje se nasazení více podsítí. Další informace najdete v tématu připojení.
Kvůli jednoduchosti připojte cílové virtuální počítače s SQL Serverem ke stejné doméně jako zdrojové instance SQL Serveru. Jinak připojte cílový virtuální počítač s SQL Serverem k doméně federované s doménou zdrojových instancí SQL Serveru.
Pokud chcete k vytvoření distribuované skupiny dostupnosti (DAG) použít automatické zasévání, musí název instance pro globální primární server (zdroj) DAG odpovídat názvu instance předávajícího uzlu (cíl) DAG. Pokud dojde k neshodě názvů instancí mezi globálním primárním serverem a forwarderem, musíte k vytvoření DAG použít ruční seeding a v budoucnu ručně přidat všechny další databázové soubory.
Tento článek používá následující příklady parametrů:
- Název databáze:
Adventureworks2022 - Názvy zdrojových počítačů :
OnPremNode1(globální primární v jazyce DAG),OnPremNode2 - Názvy instancí zdrojového SQL Serveru:
MSSQLSERVER,MSSQLSERVER - Název skupiny dostupnosti zdroje:
OnPremAg - Název posluchače skupiny dostupnosti zdroje:
OnPremAG_LST - Názvy cílových virtuálních počítačů pro SQL Server:
SQLVM1(přesměrovávač v DAG)SQLVM2 - Cílení SQL Serveru na názvy instancí virtuálních počítačů Azure:
MSSQLSERVER,MSSQLSERVER - Název cílové skupiny dostupnosti:
AzureAG - Název naslouchacího zařízení skupiny dostupnosti:
AzureAG_LST - Název koncového bodu:
Hadr_endpoint - Název distribuované skupiny dostupnosti:
DAG - Název domény:
Contoso
Vytváření koncových bodů
Pomocí Transact-SQL (T-SQL) můžete vytvářet koncové body ve dvou zdrojových instancích (OnPremNode1, OnPremNode2) i cílových instancích SQL Serveru (SQLVM1, SQLVM2).
Pokud už máte ve zdrojových instancích nakonfigurovanou skupinu dostupnosti, spusťte tento skript pouze ve dvou cílových instancích.
Pokud chcete vytvořit koncové body, spusťte tento skript T-SQL na zdrojovém i cílovém serveru:
CREATE ENDPOINT [Hadr_endpoint]
STATE = STARTED
AS TCP (
LISTENER_PORT = 5022,
LISTENER_IP = ALL
)
FOR DATABASE_MIRRORING (
ROLE = ALL,
AUTHENTICATION = WINDOWS NEGOTIATE,
ENCRYPTION = REQUIRED ALGORITHM AES
);
GO
Účty domény mají automaticky přístup ke koncovým bodům, ale účty služeb nemusí být automaticky součástí skupiny sysadmin a nemusí mít oprávnění pro připojení. Pokud chcete ručně udělit oprávnění k připojení účtu služby SQL Server ke koncovému bodu, spusťte na obou serverech následující skript T-SQL:
GRANT CONNECT ON ENDPOINT::[Hadr_endpoint] TO [<your account>];
Vytvoření zdrojové skupiny AG
Vzhledem k tomu, že distribuovaná skupina dostupnosti je speciální skupina dostupnosti, která se nachází mezi dvěma jednotlivými skupinami dostupnosti, musíte nejprve vytvořit skupinu dostupnosti na dvou zdrojových instancích SQL Serveru.
Pokud už ve zdrojových instancích máte skupinu dostupnosti, přeskočte tuto část.
Pomocí Transact-SQL (T-SQL) vytvořte skupinu dostupnosti (OnPremAG) mezi dvěma zdrojovými instancemi (OnPremNode1, OnPremNode2) pro ukázkovou Adventureworks2022 databázi.
Pokud chcete ve zdrojových instancích vytvořit skupinu dostupnosti, spusťte tento skript na zdrojové primární replice (OnPremNode1):
CREATE AVAILABILITY GROUP [OnPremAG]
WITH (
AUTOMATED_BACKUP_PREFERENCE = PRIMARY,
DB_FAILOVER = OFF,
DTC_SUPPORT = NONE
)
FOR DATABASE [Adventureworks2022] REPLICA
ON N'OnPremNode1' WITH (
ENDPOINT_URL = N'TCP://OnPremNode1.contoso.com:5022',
FAILOVER_MODE = AUTOMATIC,
AVAILABILITY_MODE = SYNCHRONOUS_COMMIT,
SEEDING_MODE = AUTOMATIC,
SECONDARY_ROLE(ALLOW_CONNECTIONS = NO)
),
N'OnPremNode2' WITH (
ENDPOINT_URL = N'TCP://OnPremNode2.contoso.com:5022',
FAILOVER_MODE = AUTOMATIC,
AVAILABILITY_MODE = SYNCHRONOUS_COMMIT,
SEEDING_MODE = AUTOMATIC,
SECONDARY_ROLE(ALLOW_CONNECTIONS = NO)
);
Dále připojte sekundární repliku (OnPremNode2) ke skupině dostupnosti (OnPremAg).
Pokud se chcete připojit ke skupině dostupnosti, spusťte tento skript na zdrojové sekundární replice:
ALTER AVAILABILITY GROUP [OnPremAG] JOIN;
GO
ALTER AVAILABILITY GROUP [OnPremAG] GRANT CREATE ANY DATABASE;
GO
Nakonec vytvořte posluchač pro vaši globální skupinu dostupnosti přesměrovávače (OnPremAG).
Pokud chcete vytvořit naslouchací mechanismus, spusťte tento skript na primární repliku zdroje:
USE [master]
GO
ALTER AVAILABILITY GROUP [OnPremAG]
ADD LISTENER N'OnPremAG_LST' (
WITH IP (
(<available_static_ip>, <mask>),
PORT = 60173
)
);
GO
Vytvoření cílové skupiny pro zajištění dostupnosti
Také je potřeba vytvořit skupinu dostupnosti na cílových virtuálních počítačích s SQL Serverem.
Pokud už máte skupinu dostupnosti nakonfigurovanou mezi instancemi SQL Serveru v Azure, přeskočte tuto část.
Pomocí Transact-SQL (T-SQL) vytvořte skupinu dostupnosti (AzureAG) na cílových instancích SQL Serveru (SQLVM1 a SQLVM2).
Pokud chcete vytvořit skupinu dostupnosti v cíli, spusťte tento skript na cílové primární replice:
CREATE AVAILABILITY GROUP [AzureAG] FOR REPLICA
ON N'SQLVM1' WITH (
ENDPOINT_URL = N'TCP://SQLVM1.contoso.com:5022',
FAILOVER_MODE = MANUAL,
AVAILABILITY_MODE = SYNCHRONOUS_COMMIT,
BACKUP_PRIORITY = 50,
SECONDARY_ROLE(ALLOW_CONNECTIONS = NO),
SEEDING_MODE = AUTOMATIC
),
N'SQLVM2' WITH (
ENDPOINT_URL = N'TCP://SQLVM2.contoso.com:5022',
FAILOVER_MODE = MANUAL,
AVAILABILITY_MODE = SYNCHRONOUS_COMMIT,
BACKUP_PRIORITY = 50,
SECONDARY_ROLE(ALLOW_CONNECTIONS = NO),
SEEDING_MODE = AUTOMATIC
);
GO
Dále připojte cílovou sekundární repliku (SQLVM2) ke skupině dostupnosti (AzureAG).
Spusťte tento skript na cílové sekundární replice:
ALTER AVAILABILITY GROUP [AzureAG] JOIN;
GO
ALTER AVAILABILITY GROUP [AzureAG] GRANT CREATE ANY DATABASE;
GO
Nakonec vytvořte posluchač (AzureAG_LST) pro cílovou skupinu dostupnosti (AzureAG). Pokud jste nasadili virtuální počítače s SQL Serverem do více podsítí, vytvořte naslouchací proces pomocí jazyka Transact-SQL. Pokud jste nasadili virtuální počítače s SQL Serverem do jedné podsítě, nakonfigurujte Azure Load Balancer nebo distribuovaný název sítě pro váš posluchač.
Pro vytvoření posluchače spusťte tento skript na primární replice skupiny pro dostupnost v Azure.
ALTER AVAILABILITY GROUP [AzureAG]
ADD LISTENER N'AzureAG_LST' (
WITH IP (
(N'<primary replica_secondary_ip>', N'<primary_mask>'),
(N'<secondary replica_secondary_ip>', N'<secondary_mask>')
),
PORT = <port_number_you_set>
);
GO
Vytvořit distribuovanou AG
Jakmile nakonfigurujete zdrojové (OnPremAG) a cílové skupinyAzureAG dostupnosti, vytvořte distribuovanou skupinu dostupnosti, která bude zahrnovat obě jednotlivé skupiny dostupnosti.
K vytvoření distribuované skupiny dostupnosti použijte Transact-SQL na zdrojovém SQL Serveru jako globálním primárním serveru (OnPremNode1) a na skupině dostupnosti AG (OnPremAGDAG).
Pokud chcete ve zdroji vytvořit distribuovanou skupiny dostupnosti, spusťte tento skript na zdrojovém globálním primárním serveru:
CREATE AVAILABILITY GROUP [DAG]
WITH (DISTRIBUTED) AVAILABILITY GROUP
ON 'OnPremAG' WITH (
LISTENER_URL = 'tcp://OnPremAG_LST.contoso.com:5022',
AVAILABILITY_MODE = ASYNCHRONOUS_COMMIT,
FAILOVER_MODE = MANUAL,
SEEDING_MODE = AUTOMATIC
),
'AzureAG' WITH (
LISTENER_URL = 'tcp://AzureAG_LST.contoso.com:5022',
AVAILABILITY_MODE = ASYNCHRONOUS_COMMIT,
FAILOVER_MODE = MANUAL,
SEEDING_MODE = AUTOMATIC
);
GO
Poznámka:
Zavaděcí režim je nastaven na AUTOMATIC, protože verze SQL Serveru na cíli a zdroji je stejná. Pokud je vaším cílem SQL Serveru vyšší verze nebo pokud má globální primární a předávací modul různé názvy instancí, vytvořte distribuovanou AG a připojte sekundární AG k distribuované AG s hodnotou SEEDING_MODE nastavenou na MANUAL. Potom ručně obnovte databáze ze zdroje do cílové instance SQL Serveru. Další informace najdete při zkoumání upgradu verzí během migrace.
Po vytvoření distribuované skupiny dostupnosti připojte cílovou skupinu dostupnosti (AzureAG) v instanci cílového přeposílatele (SQLVM1) k distribuované skupině dostupnosti (DAG).
Pro připojení cílového AG do distribuovaného AG spusťte tento skript na cílovém přeposílacím serveru:
ALTER AVAILABILITY GROUP [DAG]
INNER JOIN AVAILABILITY GROUP
ON 'OnPremAG' WITH (
LISTENER_URL = 'tcp://OnPremAG_LST.contoso.com:5022',
AVAILABILITY_MODE = ASYNCHRONOUS_COMMIT,
FAILOVER_MODE = MANUAL,
SEEDING_MODE = AUTOMATIC
),
'AzureAG' WITH (
LISTENER_URL = 'tcp://AzureAG_LST.contoso.com:5022',
AVAILABILITY_MODE = ASYNCHRONOUS_COMMIT,
FAILOVER_MODE = MANUAL,
SEEDING_MODE = AUTOMATIC
);
GO
Pokud potřebujete zrušit, pozastavit nebo zpozdit synchronizaci mezi zdrojovými a cílovými skupinami dostupnosti (například problémy s výkonem), spusťte tento skript na zdrojové globální primární instanci (OnPremNode1):
ALTER AVAILABILITY GROUP [DAG]
MODIFY AVAILABILITY GROUP ON 'AzureAG'
WITH (SEEDING_MODE = MANUAL);
Další informace najdete v článku o zrušení automatického seedingu pro službu předávání.