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.
Pomocí distribuované skupiny dostupnosti (AG) můžete migrovat databázi (nebo více databází) ze samostatné instance SQL Serveru na SQL Server na virtuálních počítačích Azure.
Jakmile ověříte, že zdrojová instance SQL Serveru splňuje požadavky, postupujte podle kroků v tomto článku a vytvořte skupinu dostupnosti na samostatné instanci SQL Serveru a migrujte databázi (nebo skupinu databází) na virtuální počítač s SQL Serverem v Azure.
Tento článek je určený pro databáze v samostatné instanci SQL Serveru. Toto řešení nevyžaduje cluster Windows Server s podporou převzetí služeb při selhání (WSFC) ani naslouchací proces pro skupinu dostupnosti. Je také možné migrovat databáze ve skupině dostupnosti.
Počáteční nastavení
Prvním krokem je vytvoření virtuálního počítače 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č s SQL Serverem podle požadavků.
Kvůli jednoduchosti připojte cílový virtuální počítač s SQL Serverem ke stejné doméně jako zdrojový SQL Server. V opačném případě připojte cílový virtuální počítač s SQL Serverem k doméně federované s doménou zdrojového 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ázev zdrojového počítače (globální primární v jazyce DAG):
OnPremNode - Název instance zdrojového SQL Serveru:
MSSQLSERVER - Název skupiny dostupnosti zdroje:
OnPremAg - Název cílového virtuálního počítače s SQL Serverem (předávací modul v DAG):
SQLVM - Název cílové instance SQL Serveru na virtuálním počítači Azure:
MSSQLSERVER - Název cílové skupiny dostupnosti:
AzureAG - 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 zdrojových () i cílovýchOnPremNode (SQLVM) instancích SQL Serveru.
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í ve dvou jednotlivých skupinách dostupnosti, musíte nejprve vytvořit skupinu dostupnosti ve zdrojové instanci SQL Serveru. Pokud už máte skupinu dostupnosti, kterou chcete udržovat v Azure, pak místo toho migrujte skupinu dostupnosti .
Pomocí Transact-SQL (T-SQL) vytvořte skupinu dostupnosti () ve zdrojové (OnPremAgOnPremNode) instanci ukázkové Adventureworks2022 databáze.
Pokud chcete vytvořit skupinu dostupnosti, spusťte tento skript ve zdroji:
CREATE AVAILABILITY GROUP [OnPremAG]
WITH (
AUTOMATED_BACKUP_PREFERENCE = PRIMARY,
DB_FAILOVER = OFF,
DTC_SUPPORT = NONE,
CLUSTER_TYPE = NONE
)
FOR DATABASE [Adventureworks2022] REPLICA ON N'OnPremNode'
WITH (
ENDPOINT_URL = N'TCP://OnPremNode.contoso.com:5022',
FAILOVER_MODE = MANUAL,
AVAILABILITY_MODE = SYNCHRONOUS_COMMIT,
SEEDING_MODE = AUTOMATIC,
SECONDARY_ROLE(ALLOW_CONNECTIONS = NO)
);
GO
Vytvoření cílové skupiny pro zajištění dostupnosti
Také je potřeba vytvořit skupinu dostupnosti na cílovém virtuálním počítači s SQL Serverem.
Pomocí Transact-SQL (T-SQL) vytvořte skupinu dostupnosti (AzureAG) v cílové instanci (SQLVM).
Pokud chcete vytvořit skupinu dostupnosti, spusťte tento skript v cíli:
CREATE AVAILABILITY GROUP [AzureAG]
WITH (
AUTOMATED_BACKUP_PREFERENCE = PRIMARY,
DB_FAILOVER = OFF,
DTC_SUPPORT = NONE,
CLUSTER_TYPE = NONE,
REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT = 0
)
FOR REPLICA ON N'SQLVM'
WITH (
ENDPOINT_URL = N'TCP://SQLVM.contoso.com:5022',
FAILOVER_MODE = MANUAL,
AVAILABILITY_MODE = SYNCHRONOUS_COMMIT,
SEEDING_MODE = AUTOMATIC,
SECONDARY_ROLE(ALLOW_CONNECTIONS = NO)
);
GO
Vytvořit distribuovanou skupinu dostupnosti
Jakmile nakonfigurujete zdrojové (OnPremAG) a cílové skupinyAzureAG dostupnosti, vytvořte distribuovanou skupinu dostupnosti, která bude zahrnovat obě jednotlivé skupiny dostupnosti.
Pomocí Transact-SQL ve zdrojové instanci SQL Serveru (OnPremNode) a skupině dostupnosti (OnPremAG) vytvořte distribuovanou skupinu dostupnosti (DAG).
Pokud chcete vytvořit distribuovanou skupinu dostupnosti, spusťte tento skript ve zdroji:
CREATE AVAILABILITY GROUP [DAG]
WITH (DISTRIBUTED) AVAILABILITY GROUP
ON 'OnPremAG' WITH (
LISTENER_URL = 'tcp://OnPremNode.contoso.com:5022',
AVAILABILITY_MODE = ASYNCHRONOUS_COMMIT,
FAILOVER_MODE = MANUAL,
SEEDING_MODE = AUTOMATIC
),
'AzureAG' WITH (
LISTENER_URL = 'tcp://SQLVM.contoso.com:5022',
AVAILABILITY_MODE = ASYNCHRONOUS_COMMIT,
FAILOVER_MODE = MANUAL,
SEEDING_MODE = AUTOMATIC
);
GO
Režim nasazení je nastaven na AUTOMATIC, protože verze SQL Serveru na cíli a na zdroji jsou stejné. Pokud je vaším cílem vyšší verze SQL Serveru, nebo pokud globální primární a předávající instance mají různé názvy instancí, vytvořte distribuovanou skupinu dostupnosti (AG) a připojte sekundární AG k distribuované skupině dostupnosti s nastavenou hodnotou SEEDING_MODE na MANUAL. Potom ručně obnovte databáze ze zdroje do cílové instance SQL Serveru. Další informace naleznete v tématu Upgrade verzí během migrace.
Po vytvoření distribuované AG připojte cílovou AG (AzureAG) v cílové instanci (SQLVM) k distribuované AG (DAG).
Pokud chcete připojit cílovou skupinu AG k distribuované skupině AG, spusťte tento skript na cílovém systému:
ALTER AVAILABILITY GROUP [DAG]
JOIN AVAILABILITY GROUP
ON 'OnPremAG' WITH (
LISTENER_URL = 'tcp://OnPremNode.contoso.com:5022',
AVAILABILITY_MODE = ASYNCHRONOUS_COMMIT,
FAILOVER_MODE = MANUAL,
SEEDING_MODE = AUTOMATIC
),
'AzureAG' WITH (
LISTENER_URL = 'tcp://SQLVM.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 (OnPremNode):
ALTER AVAILABILITY GROUP [DAG]
MODIFY AVAILABILITY GROUP
ON 'AzureAG' WITH (SEEDING_MODE = MANUAL);
Další informace naleznete v dokumentu Zrušení automatického seedingu na forwarder.