Förbereda din miljö för en länk – Azure SQL Managed Instance
Gäller för:Azure SQL Managed Instance
I den här artikeln lär du dig hur du förbereder din miljö för en hanterad instanslänk så att du kan replikera mellan SQL Server och Azure SQL Managed Instance.
Kommentar
Du kan automatisera förberedelsen av din miljö för länken Hanterad instans med hjälp av ett nedladdningsbart skript. Mer information finns i installationsbloggen för automatisk länk.
Förutsättningar
För att skapa en länk mellan SQL Server och Azure SQL Managed Instance behöver du följande krav:
- En aktiv Azure-prenumeration. Om du inte har en skapar du ett kostnadsfritt konto.
- Version av SQL Server som stöds med nödvändig tjänstuppdatering.
- Azure SQL Managed Instance. Kom igång om du inte har det.
- Bestäm vilken server som ska vara den första primära servern för att avgöra var du ska skapa länken från. Det går bara att konfigurera en länk från den primära SQL Managed Instance-instansen till SQL Server secondary från och med SQL Server 2022 CU10.
Varning
När du skapar din SQL-hanterade instans som ska användas med länkfunktionen ska du ta hänsyn till minneskraven för alla minnesinterna OLTP-funktioner som SQL Server använder. Mer information finns i Översikt över resursbegränsningar för Azure SQL Managed Instance.
Behörigheter
För SQL Server bör du ha sysadmin-behörigheter .
För Azure SQL Managed Instance bör du vara medlem i SQL Managed Instance-deltagaren eller ha följande behörigheter för en anpassad roll:
Microsoft.Sql/-resurs | Nödvändiga behörigheter |
---|---|
Microsoft.Sql/managedInstances | /read, /write |
Microsoft.Sql/managedInstances/hybridCertificate | /åtgärd |
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 | /Läsa |
Microsoft.Sql/managedInstances/hybridLink | /read, /write, /delete |
Microsoft.Sql/managedInstances/serverTrustCertificates | /write, /delete, /read |
Förbereda SQL Server-instansen
För att förbereda SQL Server-instansen måste du verifiera att:
- Du har den lägsta versionen som stöds.
- Du har aktiverat funktionen tillgänglighetsgrupper.
- Du har lagt till rätt spårningsflaggor vid start.
- Databaserna är i den fullständiga återställningsmodellen och säkerhetskopierade.
Du måste starta om SQL Server för att ändringarna ska börja gälla.
Installera tjänstuppdateringar
Se till att SQL Server-versionen har rätt underhållsuppdatering installerad enligt listan i tabellen för versionssupport. Om du behöver installera uppdateringar måste du starta om SQL Server-instansen under uppdateringen.
Kontrollera SQL Server-versionen genom att köra följande Transact-SQL-skript (T-SQL) på SQL Server:
-- Run on SQL Server
-- Shows the version and CU of the SQL Server
USE master;
GO
SELECT @@VERSION as 'SQL Server version';
Skapa en databashuvudnyckel i master
databasen
Skapa databashuvudnyckeln master
i databasen, om den inte redan finns. Infoga lösenordet i stället för <strong_password>
i följande skript och förvara det på en konfidentiell och säker plats. Kör det här T-SQL-skriptet på SQL Server:
-- Run on SQL Server
-- Create a master key
USE master;
GO
CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<strong_password>';
Kontrollera att du har databashuvudnyckeln genom att använda följande T-SQL-skript på SQL Server:
-- Run on SQL Server
USE master;
GO
SELECT * FROM sys.symmetric_keys WHERE name LIKE '%DatabaseMasterKey%';
Aktivera tillgänglighetsgrupper
Länkfunktionen förlitar sig på funktionen AlwaysOn-tillgänglighetsgrupper, som är inaktiverad som standard. Mer information finns i Aktivera funktionen AlwaysOn-tillgänglighetsgrupper.
Kontrollera att funktionen tillgänglighetsgrupper är aktiverad genom att köra följande T-SQL-skript på SQL Server:
-- 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'
Viktigt!
Om du behöver aktivera funktionen tillgänglighetsgrupper för SQL Server 2016 (13.x) måste du slutföra de extra steg som beskrivs i Länken Förbered SQL Server 2016-krav – Azure SQL Managed Instance. De här extra stegen krävs inte för SQL Server 2019 (15.x) och senare versioner som stöds av länken.
Om funktionen tillgänglighetsgrupper inte är aktiverad följer du de här stegen för att aktivera den:
Öppna SQL Server Configuration Manager.
Välj SQL Server Services i det vänstra fönstret.
Högerklicka på SQL Server-tjänsten och välj sedan Egenskaper.
Gå till fliken AlwaysOn-tillgänglighetsgrupper .
Markera kryssrutan Aktivera AlwaysOn-tillgänglighetsgrupper och välj sedan OK.
- Om du använder SQL Server 2016 (13.x) och alternativet Aktivera AlwaysOn-tillgänglighetsgrupper är inaktiverat med meddelandet
This computer is not a node in a failover cluster.
följer du de extra stegen som beskrivs i Länken Förbered SQL Server 2016-krav – Azure SQL Managed Instance. När du har slutfört de här andra stegen kommer du tillbaka och försöker utföra det här steget igen.
- Om du använder SQL Server 2016 (13.x) och alternativet Aktivera AlwaysOn-tillgänglighetsgrupper är inaktiverat med meddelandet
Välj OK i dialogrutan.
Starta om SQL Server-tjänsten.
Aktivera spårningsflaggor för start
För att optimera prestanda för länken rekommenderar vi att du aktiverar följande spårningsflaggor vid start:
-T1800
: Den här spårningsflaggan optimerar prestanda när loggfilerna för de primära och sekundära replikerna i en tillgänglighetsgrupp finns på diskar med olika sektorstorlekar, till exempel 512 byte och 4 KB. Om både primära och sekundära repliker har en disksektorstorlek på 4 KB krävs inte den här spårningsflaggan. Mer information finns i KB3009974.-T9567
: Den här spårningsflaggan möjliggör komprimering av dataströmmen för tillgänglighetsgrupper under automatisk seeding. Komprimering ökar belastningen på processorn men kan avsevärt minska överföringstiden under seeding.
Använd följande steg för att aktivera dessa spårningsflaggor vid start:
Öppna SQL Server Configuration Manager.
Välj SQL Server Services i det vänstra fönstret.
Högerklicka på SQL Server-tjänsten och välj sedan Egenskaper.
Gå till fliken Startparametrar . I Ange en startparameter anger
-T1800
du och väljer Lägg till för att lägga till startparametern. Ange-T9567
sedan och välj Lägg till för att lägga till den andra spårningsflaggan. Tryck på Apply (Verkställ) för att spara ändringarna.Välj OK för att stänga fönstret Egenskaper .
Mer information finns i syntaxen för att aktivera spårningsflaggor.
Starta om SQL Server och verifiera konfigurationen
När du har sett till att du har en version av SQL Server som stöds, aktiverat funktionen AlwaysOn-tillgänglighetsgrupper och lagt till dina spårningsflaggor för start startar du om SQL Server-instansen för att tillämpa alla dessa ändringar:
Öppna Konfigurationshanteraren för SQL Server.
Välj SQL Server Services i det vänstra fönstret.
Högerklicka på SQL Server-tjänsten och välj sedan Starta om.
Efter omstarten kör du följande T-SQL-skript på SQL Server för att verifiera konfigurationen av DIN SQL Server-instans:
-- 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;
SQL Server-versionen bör vara en av de versioner som stöds med lämpliga tjänstuppdateringar, funktionen AlwaysOn-tillgänglighetsgrupper ska vara aktiverad och du bör ha spårningsflaggor -T1800
och -T9567
aktiverade. Följande skärmbild är ett exempel på det förväntade resultatet för en SQL Server-instans som har konfigurerats korrekt:
Konfigurera nätverksanslutning
För att länken ska fungera måste du ha nätverksanslutning mellan SQL Server och SQL Managed Instance. Vilket nätverksalternativ du väljer beror på om SQL Server-instansen finns i ett Azure-nätverk eller inte.
SQL Server på Azure Virtual Machines
Att distribuera SQL Server på virtuella Azure-datorer i samma virtuella Azure-nätverk som är värd för SQL Managed Instance är den enklaste metoden, eftersom nätverksanslutningen automatiskt finns mellan de två instanserna. Mer information finns i Snabbstart: Konfigurera en virtuell Azure-dator för att ansluta till Azure SQL Managed Instance.
Om din SQL Server på Azure Virtual Machines-instansen finns i ett annat virtuellt nätverk än den hanterade instansen måste du upprätta en anslutning mellan båda de virtuella nätverken. De virtuella nätverken behöver inte finnas i samma prenumeration för att det här scenariot ska fungera.
Det finns två alternativ för att ansluta virtuella nätverk:
- Peering för virtuella Azure-nätverk
- VNet-till-VNet VPN-gateway (Azure-portalen, PowerShell, Azure CLI)
Peering är att föredra eftersom det använder Microsofts stamnätverk, så ur anslutningsperspektiv finns det ingen märkbar skillnad i svarstid mellan virtuella datorer i ett peer-kopplat virtuellt nätverk och i samma virtuella nätverk. Peering för virtuella nätverk stöds mellan nätverken i samma region. Global peering för virtuella nätverk stöds för instanser som finns i undernät som skapats efter den 22 september 2020. Mer information finns i Vanliga frågor och svar.
SQL Server utanför Azure
Om SQL Server-instansen finns utanför Azure upprättar du en VPN-anslutning mellan SQL Server och SQL Managed Instance med något av följande alternativ:
Dricks
Vi rekommenderar ExpressRoute för bästa nätverksprestanda när du replikerar data. Etablera en gateway med tillräckligt med bandbredd för ditt användningsfall.
Nätverksportar mellan miljöer
Oavsett anslutningsmekanismen finns det krav som måste uppfyllas för att nätverkstrafiken ska kunna flöda mellan miljöerna:
NSG-reglerna (Network Security Group) på undernätet som är värd för den hanterade instansen måste tillåta:
- Inkommande port 5022 och portintervall 11000-11999 för att ta emot trafik från SQL Server-källans IP-adress
- Utgående port 5022 för att skicka trafik till SQL Server-mål-IP
Alla brandväggar i nätverket som är värd för SQL Server och värdoperativsystemet måste tillåta:
- Inkommande port 5022 öppnades för att ta emot trafik från källans IP-intervall för MI-undernätet /24 (till exempel 10.0.0.0/24)
- Utgående portar 5022 och portintervallet 11000-11999 öppnades för att skicka trafik till mål-IP-intervallet för MI-undernätet (exempel 10.0.0.0/24)
I följande tabell beskrivs portåtgärder för varje miljö:
Environment | Vad du bör göra |
---|---|
SQL Server (i Azure) | Öppna både inkommande och utgående trafik på port 5022 för nätverksbrandväggen till hela undernätets IP-intervall för SQL Managed Instance. Om det behövs gör du samma sak i SQL Server-värdoperativsystemets brandvägg (Windows/Linux). Om du vill tillåta kommunikation på port 5022 skapar du en NSG-regel (network security group) i det virtuella nätverk som är värd för den virtuella datorn. |
SQL Server (utanför Azure) | Öppna både inkommande och utgående trafik på port 5022 för nätverksbrandväggen till hela undernätets IP-intervall för SQL Managed Instance. Om det behövs gör du samma sak i SQL Server-värdoperativsystemets brandvägg (Windows/Linux). |
SQL-hanterad instans | Skapa en NSG-regel i Azure-portalen för att tillåta inkommande och utgående trafik från IP-adressen och nätverk som är värd för SQL Server på port 5022 och portintervall 11000-11999. |
Använd följande PowerShell-skript i Windows-värdoperativsystemet för SQL Server-instansen för att öppna portar i Windows-brandväggen:
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
Följande diagram visar ett exempel på en lokal nätverksmiljö som anger att alla brandväggar i miljön måste ha öppna portar, inklusive OS-brandväggen som är värd för SQL Server och eventuella företagsbrandväggar och/eller gatewayer:
Viktigt!
- Portar måste vara öppna i varje brandvägg i nätverksmiljön, inklusive värdservern, samt eventuella företagsbrandväggar eller gatewayer i nätverket. I företagsmiljöer kan du behöva visa nätverksadministratören informationen i det här avsnittet för att öppna ytterligare portar i företagsnätverksskiktet.
- Du kan välja att anpassa slutpunkten på SQL Server-sidan, men portnummer för SQL Managed Instance kan inte ändras eller anpassas.
- IP-adressintervall för undernät som är värdar för hanterade instanser och SQL Server får inte överlappa varandra.
Lägg till URL:er i allowlist
Beroende på dina nätverkssäkerhetsinställningar kan det vara nödvändigt att lägga till URL:er för SQL Managed Instance FQDN och några av de Resource Management-slutpunkter som används av Azure i listan över tillåtna.
Följande visar de resurser som ska läggas till i listan över tillåtna resurser:
- Det fullständigt kvalificerade domännamnet (FQDN) för din SQL Managed Instance. Till exempel: managedinstance1.6d710bcf372b.database.windows.net.
- Microsoft Entra-utfärdare
- Microsoft Entra-slutpunktsresurs-ID
- Resource Manager-slutpunkt
- Tjänstslutpunkt
Följ stegen i avsnittet Konfigurera SSMS för myndighetsmoln för att få åtkomst till verktygsgränssnittet i SQL Server Management Studio (SSMS) och identifiera specifika URL:er för de resurser i molnet som du behöver lägga till i listan över tillåtna.
Testa nätverksanslutning
Dubbelriktad nätverksanslutning mellan SQL Server och SQL Managed Instance krävs för att länken ska fungera. När du har öppnat portar på SQL Server-sidan och konfigurerat en NSG-regel på SQL Managed Instance-sidan testar du anslutningen med antingen SQL Server Management Studio (SSMS) eller Transact-SQL.
Följ dessa steg för att testa nätverksanslutningen mellan SQL Server och SQL Managed Instance i SSMS:
Anslut till den instans som ska vara den primära repliken i SSMS.
I Object Explorer expanderar du databaser och högerklickar på den databas som du vill länka till den sekundära. Välj Uppgifter>Azure SQL Managed Instance-länken>Testa Anslut ion för att öppna guiden Nätverkskontroll:
Välj Nästa på sidan Introduktion i guiden Nätverkskontroll .
Om alla krav uppfylls på sidan Förutsättningar väljer du Nästa. Lös annars eventuella ouppfyllda krav och välj sedan Kör validering igen.
På sidan Inloggning väljer du Logga in för att ansluta till den andra instansen som ska vara den sekundära repliken. Välj Nästa.
Kontrollera informationen på sidan Ange nätverksalternativ och ange en IP-adress om det behövs. Välj Nästa.
På sidan Sammanfattning granskar du de åtgärder som guiden vidtar och väljer sedan Slutför för att testa anslutningen mellan de två replikerna.
Granska sidan Resultat för att verifiera att anslutningen finns mellan de två replikerna och välj sedan Stäng för att slutföra.
Varning
Fortsätt endast med nästa steg om du har verifierat nätverksanslutningen mellan käll- och målmiljöerna. Annars kan du felsöka problem med nätverksanslutningen innan du fortsätter.
Migrera ett certifikat för en TDE-skyddad databas (valfritt)
Om du länkar en SQL Server-databas som skyddas av transparent datakryptering (TDE) till en hanterad instans måste du migrera motsvarande krypteringscertifikat från den lokala SQL Server-instansen eller Azure VM SQL Server-instansen till den hanterade instansen innan du använder länken. Detaljerade steg finns i Migrera ett certifikat för en TDE-skyddad databas till Azure SQL Managed Instance.
SQL Managed Instance-databaser som krypteras med tjänsthanterade TDE-nycklar kan inte länkas till SQL Server. Du kan bara länka en krypterad databas till SQL Server om den krypterades med en kundhanterad nyckel och målservern har åtkomst till samma nyckel som används för att kryptera databasen. Mer information finns i Konfigurera SQL Server TDE med Azure Key Vault.
Installera SSMS
SQL Server Management Studio (SSMS) är det enklaste sättet att använda länken Hanterad instans. Ladda ned SSMS version 19.0 eller senare och installera den på klientdatorn.
När installationen är klar öppnar du SSMS och ansluter till din SQL Server-instans som stöds. Högerklicka på en användardatabas och kontrollera att länkalternativet Azure SQL Managed Instance visas på menyn.
Konfigurera SSMS för myndighetsmoln
Om du vill distribuera din SQL Managed Instance till ett myndighetsmoln måste du ändra inställningarna för SQL Server Management Studio (SSMS) för att använda rätt moln. Om du inte distribuerar din SQL Managed Instance till ett myndighetsmoln hoppar du över det här steget.
Följ dessa steg för att uppdatera SSMS-inställningarna:
- Öppna SSMS.
- På menyn väljer du Verktyg och sedan Alternativ.
- Expandera Azure Services och välj Azure Cloud.
- Under Välj ett Azure-moln använder du listrutan för att välja AzureUSGovernment eller ett annat myndighetsmoln, till exempel AzureChinaCloud:
Om du vill gå tillbaka till det offentliga molnet väljer du AzureCloud i listrutan.