Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
              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 instans-länk så att du kan replikera mellan SQL Server som är installerad i Windows eller Linux och Azure SQL Managed Instance.
Anmärkning
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.
- En version av SQL Server som stöds med den nödvändiga tjänstuppdateringen.
- Azure SQL Managed Instance. Kom igång om du inte har någon.
- En server som du tänker vara den första primära. Det här valet avgör var du ska skapa länken från.
- Konfiguration av en länk från en primär SQL Managed Instance till en sekundär SQL Server 2025 stöds endast med SQL-hanterade instanser som konfigurerats med SQL Server 2025-uppdateringsprincipen.
- Att konfigurera en länk från en primär SQL Managed Instance till en sekundär SQL Server 2022 stöds endast från och med SQL Server 2022 CU10 och med SQL-hanterade instanser som konfigurerats med SQL Server 2022-uppdateringsprincipen.
 
Försiktighet
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 In-Memory OLTP-funktioner (onlinetransaktionsbearbetning) som SQL Server använder. Mer information finns i Översikt över resursbegränsningar för Azure SQL Managed Instance.
Permissions
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 | /handling | 
| Microsoft.Sql/managedInstances/databases | /läsa, /ta bort, /skriva, /fullständigÅterställning/åtgärd, /läsSäkerhetskopior/åtgärd, /återställningsdetaljer/läsa | 
| Microsoft.Sql/managedInstances/distributedAvailabilityGroups | /read, /write, /delete, /setRole/action | 
| Microsoft.Sql/managedInstances/endpointCertificates | /läsa | 
| Microsoft.Sql/managedInstances/hybridLink | /läsa, /skriva, /ta bort | 
| Microsoft.Sql/managedInstances/serverTrustCertificates | /skriv, /ta bort, /läs | 
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 huvudnyckel för databasen i huvuddatabasen
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.
Anmärkning
Information om SQL Server i Linux finns i Aktivera 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 utföra de extra stegen 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:
- 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 kan du komma tillbaka och försöka 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.
Anmärkning
Information om SQL Server i Linux finns i Aktivera spårningsflaggor.
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 - -T1800du och väljer Lägg till för att lägga till startparametern. Ange- -T9567sedan 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 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 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 korrekt konfigurerad SQL Server-instans:
              
               
              
              
            
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 din SQL-hanterade instans 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:
Tips/Råd
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 SQL Managed Instance 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ö:
| Miljö | Lämplig åtgärd | 
|---|---|
| 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 nätverkssäkerhetsgruppsregel (NSG) i det virtuella nätverk som är värd för den virtuella datorn (VM). | 
| 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ätverket som är värd för SQL Server på port 5022 och portintervall 11000-11999. | 
Om du vill öppna portar i Windows-brandväggen använder du följande PowerShell-skript på Windows-värdoperativsystemet för SQL Server-instansen:
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 och 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å nätverkssäkerhetsinställningarna kan det vara nödvändigt att lägga till URL:er i listan över tillåtna för SQL Managed Instance FQDN och några av de Resource Management-slutpunkter som används av Azure.
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.
Testa nätverket genom att skapa ett tillfälligt SQL Agent-jobb på både SQL Server och SQL Managed Instance för att kontrollera anslutningen mellan de två instanserna. När du använder Network Checker i SSMS skapas jobbet automatiskt åt dig och tas bort när testet har slutförts. Du måste ta bort SQL Agent-jobbet manuellt om du testar nätverket med hjälp av T-SQL.
Anmärkning
Det finns för närvarande inte stöd för att köra PowerShell-skript av SQL Server-agenten på SQL Server i Linux, så det går för närvarande inte att köra Test-NetConnection från SQL Server Agent-jobbet på SQL Server i Linux.
Om du vill använda SQL-agenten för att testa nätverksanslutningen behöver du följande krav:
- Användaren som utför testet måste ha behörighet att skapa ett jobb (antingen som sysadmin eller tillhör SQLAgentOperator-rollen för msdb) för både SQL Server och SQL Managed Instance.
- SQL Server Agent-tjänsten måste köras på SQL Server. Eftersom agenten är aktiverad som standard på SQL Managed Instance krävs ingen ytterligare åtgärd.
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änk>Testanslutning 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. 
Försiktighet
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 SQL-hanterad instans måste du migrera motsvarande krypteringscertifikat från den lokala SQL Server-instansen eller Azure VM SQL Server-instansen till den SQL-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.
Anmärkning
Azure Key Vault stöds av SQL Server i Linux från och med kumulativ uppdatering 14 för SQL Server 2022.
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.
Relaterat innehåll
Så här använder du länken:
- Konfigurera länk mellan SQL Server och SQL Managed Instance med SSMS
- Konfigurera länk mellan SQL Server och SQL Managed Instance med skript
- Redundansvä redundansväsna länken
- Migrera med länken
- Metodtips för att underhålla länken
Om du vill veta mer om länken:
Överväg följande för andra replikerings- och migreringsscenarier:
 
              
              