Uw omgeving voorbereiden op een koppeling - Azure SQL Managed Instance

Van toepassing op: Azure SQL Managed Instance

In dit artikel leert u hoe u uw omgeving voorbereidt op een koppeling naar een beheerd exemplaar, zodat u kunt repliceren tussen SQL Server en Azure SQL Managed Instance.

Notitie

U kunt het voorbereiden van uw omgeving voor de koppeling beheerd exemplaar automatiseren met behulp van een downloadbaar script. Zie de blog voor het instellen van de koppeling automatiseren voor meer informatie.

Vereisten

Als u een koppeling wilt maken tussen SQL Server en Azure SQL Managed Instance, hebt u de volgende vereisten nodig:

  • Een actief Azure-abonnement. Als u nog geen account hebt, kunt u een gratis account maken.
  • Ondersteunde versie van SQL Server met de vereiste service-update.
  • Azure SQL Managed Instance. Ga aan de slag als u het niet hebt.
  • Bepaal op welke server u de eerste primaire server wilt zijn om te bepalen waar u de koppeling moet maken. Het configureren van een koppeling van sql Managed Instance primair naar SQL Server secondary wordt alleen ondersteund vanaf SQL Server 2022 CU10.

Let op

Wanneer u uw met SQL beheerde exemplaar maakt voor gebruik met de koppelingsfunctie, moet u rekening houden met de geheugenvereisten voor alle IN-Memory OLTP-functies die SQL Server gebruikt. Zie Overzicht van resourcelimieten van Azure SQL Managed Instance voor meer informatie.

Bevoegdheden

Voor SQL Server moet u sysadmin-machtigingen hebben.

Voor Azure SQL Managed Instance moet u lid zijn van de inzender voor SQL Managed Instance of de volgende machtigingen hebben voor een aangepaste rol:

Microsoft.Sql/ resource Benodigde machtigingen
Microsoft.Sql/managedInstances /read, /write
Microsoft.Sql/managedInstances/hybridCertificate /actie
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 /Lezen
Microsoft.Sql/managedInstances/hybridLink /read, /write, /delete
Microsoft.Sql/managedInstances/serverTrustCertificates /write, /delete, /read

Uw SQL Server-exemplaar voorbereiden

Als u uw SQL Server-exemplaar wilt voorbereiden, moet u valideren dat:

  • U gebruikt de minimaal ondersteunde versie.
  • U hebt de functie beschikbaarheidsgroepen ingeschakeld.
  • U hebt de juiste traceringsvlagmen toegevoegd bij het opstarten.
  • Uw databases bevinden zich in het volledige herstelmodel en maken een back-up van uw databases.

U moet SQL Server opnieuw starten om deze wijzigingen van kracht te laten worden.

Service-updates installeren

Zorg ervoor dat voor uw SQL Server-versie de juiste onderhoudsupdate is geïnstalleerd, zoals vermeld in de tabel met versieondersteuning. Als u updates moet installeren, moet u uw SQL Server-exemplaar opnieuw opstarten tijdens de update.

Voer het volgende Transact-SQL-script (T-SQL) uit op SQL Server om uw SQL Server-versie te controleren:

-- Run on SQL Server
-- Shows the version and CU of the SQL Server
USE master;
GO
SELECT @@VERSION as 'SQL Server version';

Een databasehoofdsleutel maken in de master database

Maak de hoofdsleutel van de database in de master database als deze nog niet aanwezig is. Voeg uw wachtwoord in plaats van <strong_password> het volgende script in en bewaar het op een vertrouwelijke en veilige plaats. Voer dit T-SQL-script uit op SQL Server:

-- Run on SQL Server
-- Create a master key
USE master;
GO
CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<strong_password>';

Gebruik het volgende T-SQL-script op SQL Server om ervoor te zorgen dat u de hoofdsleutel van de database hebt:

-- Run on SQL Server
USE master;
GO
SELECT * FROM sys.symmetric_keys WHERE name LIKE '%DatabaseMasterKey%';

Beschikbaarheidsgroepen inschakelen

De koppelingsfunctie is afhankelijk van de functie AlwaysOn-beschikbaarheidsgroepen. Deze functie is standaard uitgeschakeld. Zie De functie AlwaysOn-beschikbaarheidsgroepen inschakelen voor meer informatie.

Voer het volgende T-SQL-script uit op SQL Server om te controleren of de functie beschikbaarheidsgroepen is ingeschakeld:

-- 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'

Belangrijk

Als u de functie voor beschikbaarheidsgroepen wilt inschakelen, moet u voor SQL Server 2016 (13.x) extra stappen uitvoeren die worden beschreven in de vereisten voor SQL Server 2016 voorbereiden - Azure SQL Managed Instance-koppeling. Deze extra stappen zijn niet vereist voor SQL Server 2019 (15.x) en latere versies die worden ondersteund door de koppeling.

Als de functie beschikbaarheidsgroepen niet is ingeschakeld, volgt u deze stappen om deze in te schakelen:

  1. Open SQL Server Configuration Manager.

  2. Selecteer SQL Server Services in het linkerdeelvenster.

  3. Klik met de rechtermuisknop op de SQL Server-service en selecteer Vervolgens Eigenschappen.

    Screenshot that shows SQL Server Configuration Manager, with selections for opening properties for the service.

  4. Ga naar het tabblad AlwaysOn-beschikbaarheidsgroepen .

  5. Schakel het selectievakje AlwaysOn-beschikbaarheidsgroepen inschakelen in en selecteer VERVOLGENS OK.

    Screenshot that shows the properties for Always On availability groups.

    • Als u SQL Server 2016 (13.x) gebruikt en als de optie AlwaysOn-beschikbaarheidsgroepen inschakelen is uitgeschakeld met het bericht This computer is not a node in a failover cluster., volgt u extra stappen die worden beschreven in de koppeling Sql Server 2016 voorbereiden - Azure SQL Managed Instance. Zodra u deze andere stappen hebt voltooid, keert u terug en voert u deze stap opnieuw uit.
  6. Selecteer OK in het dialoogvenster.

  7. Start de SQL Server-service opnieuw.

Opstarttraceringsvlagmen inschakelen

Als u de prestaties van uw koppeling wilt optimaliseren, raden we u aan de volgende traceringsvlagmen bij het opstarten in te schakelen:

  • -T1800: Deze traceringsvlag optimaliseert de prestaties wanneer de logboekbestanden voor de primaire en secundaire replica's in een beschikbaarheidsgroep worden gehost op schijven met verschillende sectorgrootten, zoals 512 bytes en 4 kB. Als zowel primaire als secundaire replica's een schijfsectorgrootte van 4 kB hebben, is deze traceringsvlag niet vereist. Zie voor meer informatie KB3009974.
  • -T9567: Met deze traceringsvlag kunt u de gegevensstroom comprimeren voor beschikbaarheidsgroepen tijdens automatische seeding. De compressie verhoogt de belasting van de processor, maar kan de overdrachtstijd tijdens seeding aanzienlijk verminderen.

Gebruik de volgende stappen om deze traceringsvlagmen bij het opstarten in te schakelen:

  1. Open SQL Server Configuration Manager.

  2. Selecteer SQL Server Services in het linkerdeelvenster.

  3. Klik met de rechtermuisknop op de SQL Server-service en selecteer Vervolgens Eigenschappen.

    Screenshot that shows SQL Server Configuration Manager.

  4. Ga naar het tabblad Opstartparameters. Voer -T1800 in Geef een opstartparameter op en selecteer Toevoegen om de opstartparameter toe te voegen. Typ -T9567 en selecteer Toevoegen om de andere traceringsvlag toe te voegen. Selecteer Toepassen om uw wijzigingen op te slaan.

    Screenshot that shows startup parameter properties.

  5. Selecteer OK om het venster Eigenschappen te sluiten.

Zie de syntaxis voor het inschakelen van traceringsvlagmen voor meer informatie.

START SQL Server opnieuw op en valideer de configuratie

Nadat u ervoor hebt gezorgd dat u een ondersteunde versie van SQL Server gebruikt, de functie AlwaysOn-beschikbaarheidsgroepen hebt ingeschakeld en uw opstarttraceringsvlagmen hebt toegevoegd, start u uw SQL Server-exemplaar opnieuw op om al deze wijzigingen toe te passen:

  1. Open SQL Server Configuration Manager.

  2. Selecteer SQL Server Services in het linkerdeelvenster.

  3. Klik met de rechtermuisknop op de SQL Server-service en selecteer Opnieuw opstarten.

    Screenshot that shows the SQL Server restart command call.

Voer na het opnieuw opstarten het volgende T-SQL-script uit op SQL Server om de configuratie van uw SQL Server-exemplaar te valideren:

-- 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;

Uw SQL Server-versie moet een van de ondersteunde versies zijn die worden toegepast met de juiste service-updates, de functie AlwaysOn-beschikbaarheidsgroepen moet zijn ingeschakeld en u moet de traceringsvlagken -T1800 hebben ingeschakeld en -T9567 ingeschakeld. De volgende schermopname is een voorbeeld van het verwachte resultaat voor een SQL Server-exemplaar dat correct is geconfigureerd:

Screenshot that shows the expected outcome in S S M S.

Netwerkconnectiviteit configureren

Voordat de koppeling werkt, moet u een netwerkverbinding hebben tussen SQL Server en SQL Managed Instance. De netwerkoptie die u kiest, is afhankelijk van of uw SQL Server-exemplaar al dan niet in een Azure-netwerk staat.

SQL Server op virtuele machines in Azure

Het implementeren van SQL Server op Azure Virtual Machines in hetzelfde virtuele Azure-netwerk dat als host fungeert voor SQL Managed Instance, is de eenvoudigste methode, omdat de netwerkverbinding automatisch bestaat tussen de twee exemplaren. Zie quickstart: Een Virtuele Azure-machine configureren om verbinding te maken met Azure SQL Managed Instance voor meer informatie.

Als uw EXEMPLAAR van SQL Server op Azure Virtual Machines zich in een ander virtueel netwerk bevindt dan uw beheerde exemplaar, moet u een verbinding maken tussen beide virtuele netwerken. De virtuele netwerken hoeven niet deel uit te maken van hetzelfde abonnement om dit scenario te laten werken.

Er zijn twee opties voor het verbinden van virtuele netwerken:

Peering verdient de voorkeur omdat het gebruikmaakt van het Microsoft backbone-netwerk, dus vanuit het perspectief van de connectiviteit is er geen merkbaar verschil in latentie tussen virtuele machines in een gekoppeld virtueel netwerk en in hetzelfde virtuele netwerk. Peering van virtuele netwerken wordt ondersteund tussen de netwerken in dezelfde regio. Wereldwijde peering van virtuele netwerken wordt ondersteund voor exemplaren die worden gehost in subnetten die na 22 september 2020 zijn gemaakt. Zie Veelgestelde vragen (FAQ) voor meer informatie.

SQL Server buiten Azure

Als uw SQL Server-exemplaar buiten Azure wordt gehost, maakt u een VPN-verbinding tussen SQL Server en SQL Managed Instance met behulp van een van de volgende opties:

Tip

We raden ExpressRoute aan voor de beste netwerkprestaties wanneer u gegevens repliceert. Richt een gateway in met voldoende bandbreedte voor uw use-case.

Netwerkpoorten tussen de omgevingen

Ongeacht het connectiviteitsmechanisme zijn er vereisten waaraan moet worden voldaan om het netwerkverkeer tussen de omgevingen te laten stromen:

De NSG-regels (Network Security Group) op het subnet dat als host fungeert voor het beheerde exemplaar, moeten het volgende toestaan:

  • Binnenkomende poort 5022 en poortbereik 11000-11999 voor het ontvangen van verkeer van het BRON-IP-adres van SQL Server
  • Uitgaande poort 5022 voor het verzenden van verkeer naar het DOEL-IP-adres van SQL Server

Alle firewalls op het netwerk waarop SQL Server wordt gehost en het host-besturingssysteem moet het volgende toestaan:

  • Binnenkomende poort 5022 geopend om verkeer te ontvangen van het bron-IP-bereik van het MI-subnet /24 (bijvoorbeeld 10.0.0.0/24)
  • Uitgaande poorten 5022 en poortbereik 11000-11999 geopend om verkeer naar het DOEL-IP-bereik van het MI-subnet te verzenden (bijvoorbeeld 10.0.0.0/24)

Diagram showing network requirements to set up the link between SQL Server and managed instance.

In de volgende tabel worden poortacties voor elke omgeving beschreven:

Omgeving Wat u moet doen
SQL Server (in Azure) Open zowel inkomend als uitgaand verkeer op poort 5022 voor de netwerkfirewall naar het volledige IP-adresbereik van SQL Managed Instance. Voer indien nodig hetzelfde uit op de FIREWALL van het SQL Server-hostbesturingssystem (Windows/Linux). Als u communicatie op poort 5022 wilt toestaan, maakt u een netwerkbeveiligingsgroepregel (NSG) in het virtuele netwerk waarop de VIRTUELE machine wordt gehost.
SQL Server (buiten Azure) Open zowel inkomend als uitgaand verkeer op poort 5022 voor de netwerkfirewall naar het volledige IP-adresbereik van SQL Managed Instance. Voer indien nodig hetzelfde uit op de FIREWALL van het SQL Server-hostbesturingssystem (Windows/Linux).
SQL Managed Instance Maak een NSG-regel in Azure Portal om inkomend en uitgaand verkeer van het IP-adres en het netwerk dat als host fungeert voor SQL Server op poort 5022 en poortbereik 11000-11999 toe te staan.

Gebruik het volgende PowerShell-script in het Windows-host-besturingssysteem van het SQL Server-exemplaar om poorten in Windows Firewall te openen:

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

In het volgende diagram ziet u een voorbeeld van een on-premises netwerkomgeving die aangeeft dat alle firewalls in de omgeving open poorten moeten hebben, waaronder de firewall van het besturingssysteem die als host fungeert voor de SQL Server, en eventuele bedrijfsfirewalls en/of gateways:

Diagram showing network infrastructure to set up the link between SQL Server and managed instance.

Belangrijk

  • Poorten moeten zijn geopend in elke firewall in de netwerkomgeving, met inbegrip van de hostserver, evenals eventuele bedrijfsfirewalls of gateways in het netwerk. In bedrijfsomgevingen moet u uw netwerkbeheerder mogelijk de informatie in deze sectie laten zien om extra poorten in de bedrijfsnetwerklaag te kunnen openen.
  • Hoewel u ervoor kunt kiezen om het eindpunt aan de zijde van SQL Server aan te passen, kunnen poortnummers voor SQL Managed Instance niet worden gewijzigd of aangepast.
  • IP-adresbereiken van subnetten die beheerde exemplaren hosten en SQL Server mag niet overlappen.

URL's toevoegen aan acceptatielijst

Afhankelijk van uw netwerkbeveiligingsinstellingen kan het nodig zijn om URL's toe te voegen voor de FQDN van SQL Managed Instance en enkele resourcebeheer-eindpunten die door Azure worden gebruikt voor uw acceptatielijst.

Hieronder ziet u de resources die moeten worden toegevoegd aan uw acceptatielijst:

  • De FQDN (Fully Qualified Domain Name) van uw SQL Managed Instance. Bijvoorbeeld: managedinstance1.6d710bcf372b.database.windows.net.
  • Microsoft Entra Authority
  • Resource-id van Microsoft Entra-eindpunt
  • Resource Manager-eindpunt
  • Service-eindpunt

Volg de stappen in de sectie SSMS configureren voor overheidsclouds voor toegang tot de interface Tools in SQL Server Management Studio (SSMS) en identificeer de specifieke URL's voor de resources in uw cloud die u aan uw acceptatielijst moet toevoegen.

Netwerkconnectiviteit testen

Bidirectionele netwerkconnectiviteit tussen SQL Server en SQL Managed Instance is nodig om de koppeling te laten werken. Nadat u poorten aan de zijde van SQL Server hebt geopend en een NSG-regel aan de zijde van SQL Managed Instance hebt geconfigureerd, test u de connectiviteit met behulp van SQL Server Management Studio (SSMS) of Transact-SQL.

Voer de volgende stappen uit om de netwerkverbinding tussen SQL Server en SQL Managed Instance in SSMS te testen:

  1. Verbinding maken naar het exemplaar dat de primaire replica in SSMS is.

  2. Vouw in Objectverkenner databases uit en klik met de rechtermuisknop op de database die u aan de secundaire database wilt koppelen. Selecteer De koppeling>Taken>van Azure SQL Managed Instance testen Verbinding maken ion om de wizard Netwerkcontrole te openen:

    Screenshot of object explorer in S S M S, with test connection selected in the database link right-click menu.

  3. Selecteer Volgende op de introductiepagina van de wizard Netwerkcontrole .

  4. Als aan alle vereisten wordt voldaan op de pagina Vereisten , selecteert u Volgende. Los eventuele niet-uitgevoerde vereisten anders op en selecteer Validatie opnieuw uitvoeren.

  5. Selecteer op de aanmeldingspagina Aanmelden om verbinding te maken met het andere exemplaar dat de secundaire replica is. Selecteer Volgende.

  6. Controleer de details op de pagina Netwerkopties opgeven en geef indien nodig een IP-adres op. Selecteer Volgende.

  7. Controleer op de pagina Samenvatting de acties die de wizard uitvoert en selecteer vervolgens Voltooien om de verbinding tussen de twee replica's te testen.

  8. Controleer de pagina Resultaten om te controleren of de connectiviteit tussen de twee replica's bestaat en selecteer vervolgens Sluiten om te voltooien.

Let op

Ga alleen verder met de volgende stappen als u de netwerkverbinding tussen uw bron- en doelomgevingen hebt gevalideerd. Los anders problemen met de netwerkverbinding op voordat u doorgaat.

Een certificaat van een met TDE beveiligde database migreren (optioneel)

Als u een SQL Server-database koppelt die wordt beveiligd door Transparent Data Encryption (TDE) aan een beheerd exemplaar, moet u het bijbehorende versleutelingscertificaat migreren van het on-premises exemplaar of azure VM SQL Server-exemplaar naar het beheerde exemplaar voordat u de koppeling gebruikt. Zie Een certificaat van een met TDE beveiligde database migreren naar Azure SQL Managed Instance voor gedetailleerde stappen.

SQL Managed Instance-databases die zijn versleuteld met door de service beheerde TDE-sleutels kunnen niet worden gekoppeld aan SQL Server. U kunt een versleutelde database alleen koppelen aan SQL Server als deze is versleuteld met een door de klant beheerde sleutel en de doelserver toegang heeft tot dezelfde sleutel die wordt gebruikt om de database te versleutelen. Zie SQL Server TDE instellen met Azure Key Vault voor meer informatie.

SSMS installeren

SQL Server Management Studio (SSMS) is de eenvoudigste manier om de koppeling beheerd exemplaar te gebruiken. Download SSMS versie 19.0 of hoger en installeer deze op uw clientcomputer.

Nadat de installatie is voltooid, opent u SSMS en maakt u verbinding met uw ondersteunde SQL Server-exemplaar. Klik met de rechtermuisknop op een gebruikersdatabase en controleer of de koppelingsoptie azure SQL Managed Instance wordt weergegeven in het menu.

Screenshot that shows the Azure SQL Managed Instance link option on the context menu.

SSMS configureren voor overheidsclouds

Als u uw SQL Managed Instance wilt implementeren in een overheidscloud, moet u de SSMS-instellingen (SQL Server Management Studio) wijzigen om de juiste cloud te gebruiken. Als u uw met SQL beheerde exemplaar niet implementeert in een overheidscloud, slaat u deze stap over.

Voer de volgende stappen uit om uw SSMS-instellingen bij te werken:

  1. Open SQL Server Management Studio.
  2. Selecteer Extra in het menu en kies Opties.
  3. Vouw Azure-services uit en selecteer Azure Cloud.
  4. Gebruik onder Een Azure Cloud selecteren de vervolgkeuzelijst om AzureUSGovernment of een andere overheidscloud te kiezen, zoals AzureChinaCloud:

Screenshot of SSMS UI, options page, Azure services, with Azure cloud highlighted.

Als u terug wilt gaan naar de openbare cloud, kiest u AzureCloud in de vervolgkeuzelijst.