Preparare l'ambiente per un collegamento - Istanza gestita di SQL di Azure

Si applica a:Istanza gestita di SQL di Azure

Questo articolo illustra come preparare l'ambiente per un collegamento Istanza gestita in modo da poter eseguire la replica tra SQL Server e Istanza gestita di SQL di Azure.

Nota

È possibile automatizzare la preparazione dell'ambiente per il collegamento Istanza gestita usando uno script scaricabile. Per altre informazioni, vedere il blog Sull'installazione automatica dei collegamenti.

Prerequisiti

Per creare un collegamento tra SQL Server e Istanza gestita di SQL di Azure, sono necessari i prerequisiti seguenti:

  • Una sottoscrizione di Azure attiva. Se non se ne ha una, creare un account gratuito.
  • Versione supportata di SQL Server con l'aggiornamento del servizio richiesto.
  • Istanza gestita di SQL di Azure. Iniziare se non è disponibile.
  • Decidere il server da cui si intende essere il server primario iniziale per determinare da dove creare il collegamento. La configurazione di un collegamento da Istanza gestita di SQL primario a quello secondario di SQL Server è supportata solo a partire da SQL Server 2022 CU10.

Attenzione

Quando si crea l'istanza gestita di SQL da usare con la funzionalità di collegamento, tenere conto dei requisiti di memoria per le funzionalità OLTP in memoria usate da SQL Server. Per altre informazioni, vedere Panoramica dei limiti delle risorse Istanza gestita di SQL di Azure.

Autorizzazioni

Per SQL Server è necessario disporre delle autorizzazioni sysadmin .

Per Istanza gestita di SQL di Azure, è necessario essere membri del collaboratore Istanza gestita di SQL oppure disporre delle autorizzazioni seguenti per un ruolo personalizzato:

Risorsa Microsoft.Sql/ Autorizzazioni necessarie
Microsoft.Sql/managedInstances /read, /write
Microsoft.Sql/managedInstances/hybridCertificate /azione
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 /read
Microsoft.Sql/managedInstances/hybridLink /read, /write, /delete
Microsoft.Sql/managedInstances/serverTrustCertificates /write, /delete, /read

Preparare l'istanza di SQL Server

Per preparare l'istanza di SQL Server, è necessario verificare che:

  • Si usa la versione minima supportata.
  • È stata abilitata la funzionalità dei gruppi di disponibilità.
  • Sono stati aggiunti i flag di traccia appropriati all'avvio.
  • I database si trovano nel modello di recupero con registrazione completa ed è stato eseguito il backup.

Per rendere effettive queste modifiche, è necessario riavviare SQL Server.

Installare gli aggiornamenti del servizio

Assicurarsi che la versione di SQL Server abbia installato l'aggiornamento di manutenzione appropriato, come indicato nella tabella di supporto delle versioni. Se è necessario installare eventuali aggiornamenti, è necessario riavviare l'istanza di SQL Server durante l'aggiornamento.

Per controllare la versione di SQL Server, eseguire lo script Transact-SQL (T-SQL) seguente in SQL Server:

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

Creare una chiave master del database nel master database

Creare la chiave master del master database nel database, se non ne è già presente una. Inserire la password al posto dello <strong_password> script seguente e mantenerla in un luogo riservato e sicuro. Eseguire questo script T-SQL in SQL Server:

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

Per assicurarsi di disporre della chiave master del database, usare lo script T-SQL seguente in SQL Server:

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

Abilitare i gruppi di disponibilità

La funzionalità di collegamento si basa sulla funzionalità Gruppi di disponibilità Always On, disabilitata per impostazione predefinita. Per altre informazioni, vedere Abilitare la funzionalità Gruppi di disponibilità AlwaysOn.

Per verificare che la funzionalità dei gruppi di disponibilità sia abilitata, eseguire lo script T-SQL seguente in 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'

Importante

Per SQL Server 2016 (13.x), se è necessario abilitare la funzionalità dei gruppi di disponibilità, è necessario completare passaggi aggiuntivi documentati in Preparare i prerequisiti di SQL Server 2016 - Istanza gestita di SQL di Azure collegamento. Questi passaggi aggiuntivi non sono necessari per SQL Server 2019 (15.x) e versioni successive supportate dal collegamento.

Se la funzionalità dei gruppi di disponibilità non è abilitata, seguire questa procedura per abilitarla:

  1. Aprire Gestione configurazione SQL Server.

  2. Selezionare SQL Server Services (Servizi SQL Server) nel riquadro sinistro.

  3. Fare clic con il pulsante destro del mouse sul servizio SQL Server e quindi scegliere Proprietà.

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

  4. Passare alla scheda Gruppi di disponibilità AlwaysOn.

  5. Selezionare la casella di controllo Abilita gruppi di disponibilità AlwaysOn e quindi selezionare OK.

    Screenshot that shows the properties for Always On availability groups.

  6. Selezionare OK nella finestra di dialogo.

  7. Riavviare il servizio SQL Server.

Abilitare i flag di traccia di avvio

Per ottimizzare le prestazioni del collegamento, è consigliabile abilitare i flag di traccia seguenti all'avvio:

  • -T1800: questo flag di traccia ottimizza le prestazioni quando i file di log per le repliche primarie e secondarie in un gruppo di disponibilità sono ospitati su dischi con dimensioni di settore diverse, ad esempio 512 byte e 4 KB. Se entrambe le repliche primarie e secondarie hanno dimensioni del settore del disco di 4 KB, questo flag di traccia non è obbligatorio. Per altre informazioni, vedere KB3009974.
  • -T9567: questo flag di traccia abilita la compressione del flusso di dati per i gruppi di disponibilità durante il seeding automatico. La compressione aumenta il carico sul processore, ma può ridurre significativamente il tempo di trasferimento durante il seeding.

Per abilitare questi flag di traccia all'avvio, seguire questa procedura:

  1. Aprire Gestione configurazione SQL Server.

  2. Selezionare SQL Server Services (Servizi SQL Server) nel riquadro sinistro.

  3. Fare clic con il pulsante destro del mouse sul servizio SQL Server e quindi scegliere Proprietà.

    Screenshot that shows SQL Server Configuration Manager.

  4. Passare alla scheda Parametri di avvio. In Specificare un parametro di avvio immettere -T1800 e selezionare Aggiungi per aggiungere il parametro di avvio. Quindi immettere -T9567 e selezionare Aggiungi per aggiungere l'altro flag di traccia. Seleziona Applica per salvare le modifiche.

    Screenshot that shows startup parameter properties.

  5. Selezionare OK per chiudere la finestra Proprietà .

Per altre informazioni, vedere la sintassi per abilitare i flag di traccia.

Riavviare SQL Server e convalidare la configurazione

Dopo aver verificato di essere in una versione supportata di SQL Server, aver abilitato la funzionalità Gruppi di disponibilità AlwaysOn e aggiunto i flag di traccia di avvio, riavviare l'istanza di SQL Server per applicare tutte queste modifiche:

  1. Aprire Gestione configurazione SQL Server.

  2. Selezionare SQL Server Services (Servizi SQL Server) nel riquadro sinistro.

  3. Fare clic con il pulsante destro del mouse sul servizio SQL Server e quindi scegliere Riavvia.

    Screenshot that shows the SQL Server restart command call.

Dopo il riavvio, eseguire lo script T-SQL seguente in SQL Server per convalidare la configurazione dell'istanza di SQL Server:

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

La versione di SQL Server deve essere una delle versioni supportate applicate con gli aggiornamenti del servizio appropriati, la funzionalità Gruppi di disponibilità AlwaysOn deve essere abilitata e devono essere abilitati i -T1800 flag di traccia.-T9567 Lo screenshot seguente è un esempio del risultato previsto per un'istanza di SQL Server configurata correttamente:

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

Configurare la connettività di rete

Per il funzionamento del collegamento, è necessario disporre della connettività di rete tra SQL Server e Istanza gestita di SQL. L'opzione di rete scelta dipende dal fatto che l'istanza di SQL Server si trovi in una rete di Azure.

SQL Server in Macchine virtuali di Azure

La distribuzione di SQL Server in Azure Macchine virtuali nella stessa rete virtuale di Azure che ospita Istanza gestita di SQL è il metodo più semplice, perché la connettività di rete esisterà automaticamente tra le due istanze. Per altre informazioni, vedere Avvio rapido: Configurare una macchina virtuale di Azure per la connessione a Istanza gestita di SQL di Azure.

Se l'istanza di SQL Server in Azure Macchine virtuali si trova in una rete virtuale diversa dall'istanza gestita, è necessario stabilire una connessione tra entrambe le reti virtuali. Non è necessario che le reti virtuali si trovino nella stessa sottoscrizione perché questo scenario funzioni.

Per connettere le reti virtuali esistono due opzioni:

Il peering è preferibile perché usa la rete backbone Microsoft, quindi dal punto di vista della connettività non esiste alcuna differenza evidente nella latenza tra le macchine virtuali in una rete virtuale con peering e nella stessa rete virtuale. Il peering di rete virtuale è supportato tra le reti nella stessa area. Il peering di rete virtuale globale è supportato per le istanze ospitate nelle subnet create dopo il 22 settembre 2020. Per altre informazioni, vedere Domande frequenti.

SQL Server all'esterno di Azure

Se l'istanza di SQL Server è ospitata all'esterno di Azure, stabilire una connessione VPN tra SQL Server e Istanza gestita di SQL usando una di queste opzioni:

Suggerimento

È consigliabile Usare ExpressRoute per ottenere prestazioni di rete ottimali durante la replica dei dati. Effettuare il provisioning di un gateway con larghezza di banda sufficiente per il caso d'uso.

Porte di rete tra gli ambienti

Indipendentemente dal meccanismo di connettività, è necessario soddisfare i requisiti per il flusso del traffico di rete tra gli ambienti:

Le regole del gruppo di sicurezza di rete (NSG) nella subnet che ospitano l'istanza gestita devono consentire:

  • Porta in ingresso 5022 e intervallo di porte 11000-11999 per ricevere traffico dall'INDIRIZZO IP di SQL Server di origine
  • Porta in uscita 5022 per inviare traffico all'indirizzo IP di SQL Server di destinazione

Tutti i firewall nella rete che ospitano SQL Server e il sistema operativo host deve consentire:

  • Porta in ingresso 5022 aperta per ricevere traffico dall'intervallo IP di origine della subnet MI /24 (ad esempio 10.0.0.0/24)
  • Porte in uscita 5022 e l'intervallo di porte 11000-11999 aperto per inviare il traffico all'intervallo IP di destinazione della subnet MI (ad esempio 10.0.0.0/24)

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

La tabella seguente descrive le azioni delle porte per ogni ambiente:

Ambiente Operazione da eseguire
SQL Server (in Azure) Aprire il traffico in ingresso e in uscita sulla porta 5022 per il firewall di rete per l'intero intervallo IP della subnet di Istanza gestita di SQL. Se necessario, eseguire la stessa operazione nel firewall del sistema operativo host di SQL Server (Windows/Linux). Per consentire la comunicazione sulla porta 5022, creare una regola del gruppo di sicurezza di rete (NSG) nella rete virtuale che ospita la macchina virtuale.
SQL Server (all'esterno di Azure) Aprire il traffico in ingresso e in uscita sulla porta 5022 per il firewall di rete per l'intero intervallo IP della subnet di Istanza gestita di SQL. Se necessario, eseguire la stessa operazione nel firewall del sistema operativo host di SQL Server (Windows/Linux).
Istanza gestita di SQL Creare una regola del gruppo di sicurezza di rete in portale di Azure per consentire il traffico in ingresso e in uscita dall'indirizzo IP e dalla rete che ospita SQL Server sulla porta 5022 e l'intervallo di porte 11000-11999.

Usare lo script di PowerShell seguente nel sistema operativo host Windows dell'istanza di SQL Server per aprire le porte in 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

Il diagramma seguente mostra un esempio di ambiente di rete locale, che indica che tutti i firewall nell'ambiente devono avere porte aperte, tra cui il firewall del sistema operativo che ospita SQL Server e tutti i firewall e/o i gateway aziendali:

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

Importante

  • Le porte devono essere aperte in ogni firewall nell'ambiente di rete, incluso il server host, nonché tutti i firewall o i gateway aziendali nella rete. Negli ambienti aziendali potrebbe essere necessario mostrare all'amministratore di rete le informazioni contenute in questa sezione per consentire l'apertura di porte aggiuntive nel livello di rete aziendale.
  • Anche se è possibile scegliere di personalizzare l'endpoint sul lato SQL Server, i numeri di porta per Istanza gestita di SQL non possono essere modificati o personalizzati.
  • Gli intervalli di indirizzi IP delle subnet che ospitano istanze gestite e SQL Server non devono sovrapporsi.

Aggiungere URL all'elenco elementi consentiti

A seconda delle impostazioni di sicurezza di rete, potrebbe essere necessario aggiungere URL per l'FQDN Istanza gestita di SQL e alcuni degli endpoint di Gestione risorse usati da Azure all'elenco elementi consentiti.

Di seguito sono elencate le risorse che devono essere aggiunte all'elenco elementi consentiti:

  • Nome di dominio completo (FQDN) del Istanza gestita di SQL. Ad esempio: managedinstance1.6d710bcf372b.database.windows.net.
  • Microsoft Entra Authority
  • ID risorsa endpoint Microsoft Entra
  • Endpoint Resource Manager
  • Endpoint servizio

Seguire la procedura descritta nella sezione Configurare SSMS per i cloud per enti pubblici per accedere all'interfaccia Strumenti in SQL Server Management Studio (SSMS) e identificare gli URL specifici per le risorse all'interno del cloud da aggiungere all'elenco elementi consentiti.

Testare la connettività di rete

La connettività di rete bidirezionale tra SQL Server e Istanza gestita di SQL è necessaria per il funzionamento del collegamento. Dopo aver aperto le porte sul lato SQL Server e aver configurato una regola del gruppo di sicurezza di rete sul lato Istanza gestita di SQL, testare la connettività usando SQL Server Management Studio (SSMS) o Transact-SQL.

Per testare la connettività di rete tra SQL Server e Istanza gestita di SQL in SSMS, seguire questa procedura:

  1. Connessione all'istanza che sarà la replica primaria in SSMS.

  2. In Esplora oggetti espandere i database e fare clic con il pulsante destro del mouse sul database che si intende collegare al database secondario. Selezionare Attività> Istanza gestita di SQL di Azure collegamento>Test Connessione ion per aprire la procedura guidata Controllo rete:

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

  3. Selezionare Avanti nella pagina Introduzione della procedura guidata Controllo rete.

  4. Se tutti i requisiti sono soddisfatti nella pagina Prerequisiti , selezionare Avanti. In caso contrario, risolvere eventuali prerequisiti non soddisfatti e quindi selezionare Esegui di nuovo convalida.

  5. Nella pagina Account di accesso selezionare Account di accesso per connettersi all'altra istanza che sarà la replica secondaria. Selezionare Avanti.

  6. Controllare i dettagli nella pagina Specifica opzioni di rete e specificare un indirizzo IP, se necessario. Selezionare Avanti.

  7. Nella pagina Riepilogo esaminare le azioni eseguite dalla procedura guidata e quindi selezionare Fine per testare la connessione tra le due repliche.

  8. Esaminare la pagina Risultati per convalidare l'esistenza della connettività tra le due repliche e quindi selezionare Chiudi per terminare.

Attenzione

Procedere con i passaggi successivi solo se è stata convalidata la connettività di rete tra gli ambienti di origine e di destinazione. In caso contrario, risolvere i problemi di connettività di rete prima di procedere.

Eseguire la migrazione di un certificato di un database protetto da TDE (facoltativo)

Se si collega un database di SQL Server protetto da Transparent Data Encryption (TDE) a un'istanza gestita, è necessario eseguire la migrazione del certificato di crittografia corrispondente dall'istanza di SQL Server locale o della macchina virtuale di Azure all'istanza gestita prima di usare il collegamento. Per informazioni dettagliate, vedere Eseguire la migrazione di un certificato di un database protetto da TDE a Istanza gestita di SQL di Azure.

Istanza gestita di SQL database crittografati con chiavi TDE gestite dal servizio non possono essere collegati a SQL Server. È possibile collegare un database crittografato a SQL Server solo se è stato crittografato con una chiave gestita dal cliente e il server di destinazione ha accesso alla stessa chiave usata per crittografare il database. Per altre informazioni, vedere Configurare TDE di SQL Server con Azure Key Vault.

Installare SSMS

SQL Server Management Studio (SSMS) è il modo più semplice per usare il collegamento Istanza gestita. Scaricare SSMS versione 19.0 o successiva e installarlo nel computer client.

Al termine dell'installazione, aprire SSMS e connettersi all'istanza di SQL Server supportata. Fare clic con il pulsante destro del mouse su un database utente e verificare che l'opzione di collegamento Istanza gestita di SQL di Azure sia visualizzata nel menu.

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

Configurare SSMS per i cloud per enti pubblici

Se si vuole distribuire il Istanza gestita di SQL in un cloud per enti pubblici, è necessario modificare le impostazioni di SQL Server Management Studio (SSMS) per usare il cloud corretto. Se non si distribuisce il Istanza gestita di SQL in un cloud per enti pubblici, ignorare questo passaggio.

Per aggiornare le impostazioni di SSMS, seguire questa procedura:

  1. Aprire SSMS.
  2. Dal menu selezionare Strumenti e quindi scegliere Opzioni.
  3. Espandere Servizi di Azure e selezionare Cloud di Azure.
  4. In Selezionare un cloud di Azure usare l'elenco a discesa per scegliere AzureUSGovernment o un altro cloud per enti pubblici, ad esempio AzureChinaCloud:

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

Se si vuole tornare al cloud pubblico, scegliere AzureCloud dall'elenco a discesa.