Příprava prostředí na odkaz – Azure SQL Managed Instance
Platí pro: Azure SQL Managed Instance
V tomto článku se dozvíte, jak připravit prostředí na propojení spravované instance, abyste mohli replikovat mezi SQL Serverem nainstalovaným do Windows nebo Linuxu a azure SQL Managed Instance.
Poznámka:
Pomocí skriptu ke stažení můžete automatizovat přípravu prostředí pro odkaz na spravovanou instanci. Další informace najdete na blogu o nastavení odkazu pro automatizaci.
Požadavky
Pokud chcete vytvořit propojení mezi SQL Serverem a službou Azure SQL Managed Instance, potřebujete následující požadavky:
- Aktivní předplatné Azure. Pokud žádné nemáte, vytvořte si bezplatný účet.
- Podporovaná verze SQL Serveru s požadovanou aktualizací služby
- Azure SQL Managed Instance. Začněte , pokud ho nemáte.
- Rozhodněte se, ze kterého serveru chcete být počátečním primárním serverem, abyste zjistili, odkud byste měli vytvořit propojení.
- Konfigurace odkazu z primární instance SQL na sekundární sql Server je podporována pouze od SQL Serveru 2022 CU10 a instance nakonfigurované pomocí zásad aktualizace SQL Serveru 2022.
Upozornění
Při vytváření spravované instance SQL pro použití s funkcí propojení vezměte v úvahu požadavky na paměť pro všechny funkce OLTP v paměti, které SQL Server používá. Další informace najdete v tématu Přehled limitů prostředků služby Azure SQL Managed Instance.
Oprávnění
Pro SQL Server byste měli mít oprávnění správce systému.
Pro spravovanou instanci Azure SQL byste měli být členem přispěvatele služby SQL Managed Instance nebo mít pro vlastní roli následující oprávnění:
Microsoft.Sql/ prostředek | Potřebná oprávnění |
---|---|
Microsoft.Sql/managedInstances | /read, /write |
Microsoft.Sql/managedInstances/hybridCertificate | za akci |
Microsoft.Sql/managedInstances/databases | /read, /delete, /write, /completeRestore/action, /readBackups/action, /restoreDetails/read |
Microsoft.Sql/managedInstances/distributedAvailabilityGroups | /read, /write, /delete, /setRole/action |
Microsoft.Sql/managedInstances/endpointCertificates | /číst |
Microsoft.Sql/managedInstances/hybridLink | /read, /write, /delete |
Microsoft.Sql/managedInstances/serverTrustCertificates | /write, /delete, /read |
Příprava instance SQL Serveru
Pokud chcete připravit instanci SQL Serveru, musíte ověřit, že:
- Používáte minimální podporovanou verzi.
- Povolili jste funkci skupin dostupnosti.
- Při spuštění jste přidali správné příznaky trasování.
- Vaše databáze jsou v úplném modelu obnovení a zálohovány.
Aby se tyto změny projevily, musíte restartovat SQL Server.
Instalace aktualizací služby
Ujistěte se, že vaše verze SQL Serveru má nainstalovanou příslušnou servisní aktualizaci, jak je uvedeno v tabulce podpory verzí. Pokud potřebujete nainstalovat jakékoli aktualizace, musíte během aktualizace restartovat instanci SQL Serveru.
Pokud chcete zkontrolovat verzi SQL Serveru, spusťte na SQL Serveru následující skript jazyka Transact-SQL (T-SQL):
-- Run on SQL Server
-- Shows the version and CU of the SQL Server
USE master;
GO
SELECT @@VERSION as 'SQL Server version';
Vytvoření hlavního klíče databáze v master
databázi
Pokud ještě neexistuje, vytvořte v master
databázi hlavní klíč databáze. Místo následujícího skriptu vložte heslo <strong_password>
a uchovávejte ho na důvěrném a bezpečném místě. Spusťte tento skript T-SQL na SQL Serveru:
-- Run on SQL Server
-- Create a master key
USE master;
GO
CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<strong_password>';
Abyste měli jistotu, že máte hlavní klíč databáze, použijte na SQL Serveru následující skript T-SQL:
-- Run on SQL Server
USE master;
GO
SELECT * FROM sys.symmetric_keys WHERE name LIKE '%DatabaseMasterKey%';
Povolení skupin dostupnosti
Funkce propojení spoléhá na funkci skupiny dostupnosti AlwaysOn, která je ve výchozím nastavení zakázaná. Další informace najdete v tématu Povolení funkce Skupiny dostupnosti AlwaysOn.
Poznámka:
Informace o SQL Serveru v Linuxu najdete v tématu Povolení skupin dostupnosti AlwaysOn.
Pokud chcete ověřit, že je funkce skupin dostupnosti povolená, spusťte na SQL Serveru následující skript T-SQL:
-- Run on SQL Server
-- Is the availability groups feature enabled on this SQL Server
DECLARE @IsHadrEnabled sql_variant = (select SERVERPROPERTY('IsHadrEnabled'))
SELECT
@IsHadrEnabled as 'Is HADR enabled',
CASE @IsHadrEnabled
WHEN 0 THEN 'Availability groups DISABLED.'
WHEN 1 THEN 'Availability groups ENABLED.'
ELSE 'Unknown status.'
END
as 'HADR status'
Důležité
Pokud pro SQL Server 2016 (13.x) potřebujete povolit funkci skupin dostupnosti, budete muset provést další kroky popsané v požadavcích připravit SQL Server 2016 – Azure SQL Managed Instance odkaz. Tyto další kroky nejsou vyžadovány pro SQL Server 2019 (15.x) a novější verze podporované odkazem.
Pokud funkce skupin dostupnosti není povolená, povolte ji následujícím postupem:
Otevřete nástroj SQL Server Configuration Manager.
V levém podokně vyberte služby SQL Serveru.
Klikněte pravým tlačítkem myši na službu SQL Serveru a pak vyberte Vlastnosti.
Přejděte na kartu Skupiny dostupnosti AlwaysOn.
Zaškrtněte políčko Povolit skupiny dostupnosti AlwaysOn a pak vyberte OK.
- Pokud používáte SQL Server 2016 (13.x) a pokud je možnost Povolit skupiny dostupnosti AlwaysOn zakázaná se zprávou
This computer is not a node in a failover cluster.
, postupujte podle dodatečných kroků popsaných v požadavcích pro přípravu SQL Serveru 2016 – odkaz azure SQL Managed Instance. Po dokončení těchto dalších kroků se vraťte a zkuste tento krok zopakovat.
- Pokud používáte SQL Server 2016 (13.x) a pokud je možnost Povolit skupiny dostupnosti AlwaysOn zakázaná se zprávou
V dialogovém okně vyberte OK .
Restartujte službu SQL Server.
Povolení příznaků trasování po spuštění
Pokud chcete optimalizovat výkon odkazu, doporučujeme při spuštění povolit následující příznaky trasování:
-T1800
: Tento příznak trasování optimalizuje výkon, když jsou soubory protokolů pro primární a sekundární repliky ve skupině dostupnosti hostované na discích s různými velikostmi sektorů, například 512 bajtů a 4 kB. Pokud primární i sekundární repliky mají velikost sektoru disku 4 kB, tento příznak trasování se nevyžaduje. Další informace najdete v tématu KB3009974.-T9567
: Tento příznak trasování umožňuje kompresi datového streamu pro skupiny dostupnosti během automatického počátečního nastavení. Komprese zvyšuje zatížení procesoru, ale může výrazně zkrátit dobu přenosu během počátečního nastavení.
Poznámka:
Informace o SQL Serveru v Linuxu najdete v tématu Povolení příznaků trasování.
Pokud chcete při spuštění povolit tyto příznaky trasování, postupujte následovně:
Otevřete nástroj SQL Server Configuration Manager.
V levém podokně vyberte služby SQL Serveru.
Klikněte pravým tlačítkem myši na službu SQL Serveru a pak vyberte Vlastnosti.
Přejděte na kartu Spouštěcí parametry . V části Zadání spouštěcího parametru zadejte
-T1800
a vyberte Přidat a přidejte spouštěcí parametr. Pak zadejte-T9567
a vyberte Přidat a přidejte další příznak trasování. Výběrem možnosti Použít změny uložte.Výběrem ok zavřete okno Vlastnosti .
Další informace najdete v syntaxi povolení příznaků trasování.
Restartujte SQL Server a ověřte konfiguraci.
Po ověření, že používáte podporovanou verzi SQL Serveru, povolte funkci Skupiny dostupnosti AlwaysOn a přidali příznaky trasování spuštění, restartujte instanci SQL Serveru, aby se všechny tyto změny projevily:
Otevřete SQL Server Configuration Manager.
V levém podokně vyberte služby SQL Serveru.
Klikněte pravým tlačítkem myši na službu SQL Serveru a pak vyberte Restartovat.
Po restartování spusťte na SQL Serveru následující skript T-SQL, který ověří konfiguraci vaší instance SQL Serveru:
-- Run on SQL Server
-- Shows the version and CU of SQL Server
USE master;
GO
SELECT @@VERSION as 'SQL Server version';
GO
-- Shows if the Always On availability groups feature is enabled
SELECT SERVERPROPERTY ('IsHadrEnabled') as 'Is Always On enabled? (1 true, 0 false)';
GO
-- Lists all trace flags enabled on SQL Server
DBCC TRACESTATUS;
Vaše verze SQL Serveru by měla být jednou z podporovaných verzí použitých s příslušnými aktualizacemi služeb, měla by být povolená funkce skupiny dostupnosti AlwaysOn a měli byste mít příznak trasování -T1800
a -T9567
povolit. Následující snímek obrazovky je příkladem očekávaného výsledku pro instanci SQL Serveru, která je správně nakonfigurovaná:
Konfigurace síťového připojení
Aby propojení fungovalo, musíte mít síťové připojení mezi SQL Serverem a spravovanou instancí SQL. Možnost sítě, kterou zvolíte, závisí na tom, jestli je vaše instance SQL Serveru v síti Azure.
SQL Server na Azure Virtual Machines
Nasazení SQL Serveru na virtuální počítače Azure ve stejné virtuální síti Azure, která je hostitelem služby SQL Managed Instance, je nejjednodušší metoda, protože mezi těmito dvěma instancemi automaticky existuje síťové připojení. Další informace najdete v tématu Rychlý start: Konfigurace virtuálního počítače Azure pro připojení ke službě Azure SQL Managed Instance.
Pokud je váš SQL Server na virtuálních počítačích Azure v jiné virtuální síti než vaše spravovaná instance, musíte vytvořit připojení mezi oběma virtuálními sítěmi. Tento scénář funguje i v případě, že virtuální sítě nejsou ve stejném předplatném.
Existují dvě možnosti připojení virtuálních sítí:
- Partnerský vztah virtuálních sítí Azure
- Brána VPN typu VNet-to-VNet (Azure Portal, PowerShell, Azure CLI)
Partnerský vztah je vhodnější, protože používá páteřní síť Microsoftu, takže z hlediska připojení neexistuje žádný znatelný rozdíl v latenci mezi virtuálními počítači v partnerské virtuální síti a ve stejné virtuální síti. Partnerský vztah virtuálních sítí se podporuje mezi sítěmi ve stejné oblasti. Globální partnerský vztah virtuálních sítí se podporuje pro instance hostované v podsítích vytvořených po 22. září 2020. Další informace najdete v tématu Nejčastější dotazy.
SQL Server mimo Azure
Pokud je vaše instance SQL Serveru hostovaná mimo Azure, vytvořte připojení VPN mezi SQL Serverem a spravovanou instancí SQL pomocí některé z těchto možností:
Tip
Pro zajištění nejlepšího výkonu sítě při replikaci dat doporučujeme ExpressRoute. Zřiďte bránu s dostatečnou šířkou pásma pro váš případ použití.
Síťové porty mezi prostředími
Bez ohledu na mechanismus připojení musí být splněny požadavky, aby síťový provoz proudil mezi prostředími:
Pravidla skupiny zabezpečení sítě (NSG) v podsíti, která hostuje spravovanou instanci, musí umožňovat:
- Příchozí port 5022 a rozsah portů 11000–11999 pro příjem provozu ze zdrojové IP adresy SQL Serveru
- Odchozí port 5022 pro odesílání provozu do cílové IP adresy SQL Serveru
Všechny brány firewall v síti hostující SQL Server a hostitelský operační systém musí povolit:
- Příchozí port 5022 otevřený pro příjem provozu ze zdrojového rozsahu IP adres podsítě MI /24 (například 10.0.0.0/24)
- Odchozí porty 5022 a rozsah portů 11000–11999 otevřené pro odesílání provozu do cílového rozsahu IP adres podsítě MI (příklad 10.0.0.0/24)
Následující tabulka popisuje akce portů pro každé prostředí:
Prostředí | Co dělat |
---|---|
SQL Server (v Azure) | Otevřete příchozí i odchozí provoz na portu 5022 pro síťovou bránu firewall do celého rozsahu IP adres podsítě spravované instance SQL. V případě potřeby proveďte totéž v bráně firewall hostitelského operačního systému SQL Serveru (Windows/Linux). Pokud chcete povolit komunikaci na portu 5022, vytvořte ve virtuální síti, která je hostitelem virtuálního počítače, pravidlo skupiny zabezpečení sítě (NSG). |
SQL Server (mimo Azure) | Otevřete příchozí i odchozí provoz na portu 5022 pro síťovou bránu firewall do celého rozsahu IP adres podsítě spravované instance SQL. V případě potřeby proveďte totéž v bráně firewall hostitelského operačního systému SQL Serveru (Windows/Linux). |
Spravovaná instance SQL | Na webu Azure Portal vytvořte pravidlo NSG, které povolí příchozí a odchozí provoz z IP adresy a sítě hostující SQL Server na portu 5022 a rozsah portů 11000–11999. |
Pomocí následujícího skriptu PowerShellu v hostitelském operačním systému Windows instance SQL Serveru otevřete porty v bráně Windows Firewall:
New-NetFirewallRule -DisplayName "Allow TCP port 5022 inbound" -Direction inbound -Profile Any -Action Allow -LocalPort 5022 -Protocol TCP
New-NetFirewallRule -DisplayName "Allow TCP port 5022 outbound" -Direction outbound -Profile Any -Action Allow -LocalPort 5022 -Protocol TCP
Následující diagram znázorňuje příklad místního síťového prostředí, které označuje, že všechny brány firewall v prostředí musí mít otevřené porty, včetně brány firewall operačního systému hostující SQL Server a všech podnikových bran firewall a/nebo bran:
Důležité
- Porty musí být otevřené v každé bráně firewall v síťovém prostředí, včetně hostitelského serveru, i všech podnikových bran firewall nebo bran v síti. V podnikových prostředích možná budete muset zobrazit informace správce sítě v této části, abyste mohli otevřít další porty v podnikové síťové vrstvě.
- I když se můžete rozhodnout přizpůsobit koncový bod na straně SQL Serveru, čísla portů pro službu SQL Managed Instance se nedají změnit ani přizpůsobit.
- Rozsahy IP adres podsítí hostující spravované instance a SQL Server se nesmí překrývat.
Přidání adres URL pro seznam povolených
V závislosti na nastavení zabezpečení sítě může být potřeba přidat adresy URL pro plně kvalifikovaný název domény služby SQL Managed Instance a některé koncové body správy prostředků, které Azure používá k vašemu seznamu povolených.
Následující seznam obsahuje zdroje, které by se měly přidat do seznamu povolených:
- Plně kvalifikovaný název domény (FQDN) vaší spravované instance SQL. Příklad: managedinstance1.6d710bcf372b.database.windows.net.
- Microsoft Entra Authority
- ID prostředku koncového bodu Microsoft Entra
- Koncový bod Resource Manageru
- Koncový bod služby
Postupujte podle kroků v části Konfigurace SSMS pro cloudy státní správy pro přístup k rozhraní Nástrojů v sadě SQL Server Management Studio (SSMS) a identifikujte konkrétní adresy URL pro prostředky v cloudu, které je potřeba přidat do seznamu povolených.
Testování připojení k síti
Aby propojení fungovalo, je nezbytné obousměrné síťové připojení mezi SQL Serverem a službou SQL Managed Instance. Po otevření portů na straně SQL Serveru a konfiguraci pravidla NSG na straně služby SQL Managed Instance otestujte připojení pomocí aplikace SQL Server Management Studio (SSMS) nebo Transact-SQL.
Otestujte síť vytvořením dočasné úlohy agenta SQL na SQL Serveru i ve spravované instanci SQL a zkontrolujte připojení mezi těmito dvěma instancemi. Když v nástroji SSMS použijete nástroj Network Checker , úloha se automaticky vytvoří za vás a po dokončení testu se odstraní. Pokud otestujete síť pomocí T-SQL, musíte úlohu agenta SQL ručně odstranit.
Poznámka:
Spouštění skriptů PowerShellu agentem SQL Serveru na SQL Serveru v Linuxu se v současné době nepodporuje, takže v současné době není možné spustit Test-NetConnection
z úlohy agenta SQL Serveru na SQL Serveru v Linuxu.
Pokud chcete k otestování připojení k síti použít agenta SQL, potřebujete následující požadavky:
- Uživatel provádějící test musí mít oprávnění k vytvoření úlohy (buď jako správce systému, nebo patří do role SQLAgentOperator pro
msdb
) pro SQL Server i spravovanou instanci SQL. - Na SQL Serveru musí být spuštěná služba agenta SQL Serveru. Vzhledem k tomu, že je agent ve výchozím nastavení ve službě SQL Managed Instance zapnutý, není nutná žádná další akce.
Pokud chcete otestovat síťové připojení mezi SQL Serverem a službou SQL Managed Instance v nástroji SSMS, postupujte takto:
Připojte se k instanci, která bude primární replikou v nástroji SSMS.
V Průzkumník objektů rozbalte databáze a klikněte pravým tlačítkem myši na databázi, kterou chcete propojit se sekundární databází. >Výběrem odkazu>Testovací připojení ke službě Azure SQL Managed Instance otevřete Průvodce kontrolou sítě:
Na úvodní stránce průvodce službou Network Checker vyberte Další.
Pokud jsou splněny všechny požadavky na stránce Požadavky, vyberte Další. V opačném případě vyřešte všechny nesplněné požadavky a pak vyberte Znovu spustit ověření.
Na přihlašovací stránce vyberte Přihlášení, abyste se připojili k druhé instanci, která bude sekundární replikou. Vyberte Další.
Zkontrolujte podrobnosti na stránce Zadat možnosti sítě a v případě potřeby zadejte IP adresu. Vyberte Další.
Na stránce Souhrn zkontrolujte akce, které průvodce provede, a pak výběrem možnosti Dokončit otestujte připojení mezi těmito dvěma replikami.
Zkontrolujte stránku Výsledky a ověřte, že mezi těmito dvěma replikami existuje připojení, a pak vyberte Zavřít a dokončete.
Upozornění
Pokračujte dalšími kroky jenom v případě, že jste ověřili síťové připojení mezi zdrojovým a cílovým prostředím. V opačném případě před pokračováním vyřešte potíže s připojením k síti.
Migrace certifikátu databáze chráněné transparentním šifrováním dat (volitelné)
Pokud propojíte databázi SQL Serveru chráněnou službou transparentní šifrování dat (TDE) se spravovanou instancí, musíte před použitím odkazu migrovat odpovídající šifrovací certifikát z místní instance nebo z instance SQL Serveru virtuálního počítače Azure do spravované instance. Podrobný postup najdete v tématu Migrace certifikátu databáze chráněné transparentním šifrováním dat do spravované instance Azure SQL.
Databáze služby SQL Managed Instance, které jsou šifrované pomocí klíčů transparentního šifrování dat spravované službou, nejde propojit s SQL Serverem. Šifrovanou databázi můžete propojit s SQL Serverem jenom v případě, že byla šifrovaná pomocí klíče spravovaného zákazníkem a cílový server má přístup ke stejnému klíči, který se používá k šifrování databáze. Další informace najdete v tématu Nastavení transparentního šifrování dat SQL Serveru pomocí služby Azure Key Vault.
Poznámka:
SQL Server v Linuxu podporuje Službu Azure Key Vault počínaje SQL Serverem 2022 CU 14.
Instalace aplikace SSMS
SQL Server Management Studio (SSMS) je nejjednodušší způsob, jak použít odkaz na spravovanou instanci. Stáhněte si SSMS verze 19.0 nebo novější a nainstalujte ho do klientského počítače.
Po dokončení instalace otevřete SSMS a připojte se k podporované instanci SQL Serveru. Klikněte pravým tlačítkem myši na uživatelskou databázi a ověřte, že se v nabídce zobrazí možnost propojení azure SQL Managed Instance.
Konfigurace SSMS pro cloudy státní správy
Pokud chcete nasadit službu SQL Managed Instance do cloudu pro státní správu, musíte upravit nastavení aplikace SQL Server Management Studio (SSMS) tak, aby používala správný cloud. Pokud službu SQL Managed Instance nenasazujete do cloudu pro státní správu, přeskočte tento krok.
Pokud chcete aktualizovat nastavení SSMS, postupujte takto:
- Otevřete aplikaci SSMS.
- V nabídce vyberte Nástroje a pak zvolte Možnosti.
- Rozbalte služby Azure a vyberte Azure Cloud.
- V části Vybrat cloud Azure použijte rozevírací seznam a zvolte AzureUSGovernment nebo jiný cloud pro státní správu, jako je AzureChinaCloud:
Pokud se chcete vrátit do veřejného cloudu, v rozevíracím seznamu zvolte AzureCloud .
Související obsah
Použití odkazu:
- Konfigurace propojení mezi SQL Serverem a spravovanou instancí SQL pomocí SSMS
- Konfigurace propojení mezi SQL Serverem a spravovanou instancí SQL pomocí skriptů
- Převzetí služeb při selhání propojení
- Migrace pomocí odkazu
- Osvědčené postupy pro údržbu odkazu
Další informace o odkazu:
V případě jiných scénářů replikace a migrace zvažte následující: