Condividi tramite


Informazioni generali sul collegamento a Istanza gestita

Si applica a: Istanza gestita di SQL di Azure SQL

Questo articolo offre una panoramica del collegamento Istanza gestita, che consente la replica dei dati quasi in tempo reale tra SQL Server e Istanza gestita di SQL di Azure. Il collegamento offre flessibilità ibrida e mobilità dei database perché sblocca diversi scenari, ad esempio il ridimensionamento di carichi di lavoro di sola lettura, l’offload di analisi e la creazione di analisi & report in Azure e la migrazione ad Azure. Con SQL Server 2022, inoltre, il collegamento consente il ripristino di emergenza online con failback in SQL Server, nonché la configurazione del collegamento da Istanza gestita di SQL a SQL Server 2022.

Per iniziare, vedere Preparare l'ambiente per il collegamento.

Panoramica

Il collegamento a Istanza gestita usa gruppi di disponibilità distribuiti per estendere il patrimonio di dati in modo sicuro, replicando i dati near real-time da SQL Server ospitati ovunque si trovino a Istanza gestita di SQL di Azure o da Istanza gestita di SQL di Azure in SQL Server 2022 ospitato ovunque.

Il collegamento supporta istanze di SQL Server a nodo singolo e a più nodi, con o senza gruppi di disponibilità esistenti. Tramite il collegamento è possibile usare i vantaggi di Azure senza eseguire la migrazione del patrimonio di dati di SQL Server al cloud.

Anche se il collegamento supporta la replica di un solo database per collegamento, è possibile replicare più database da una singola istanza di SQL Server a una o più istanze gestite di SQL oppure replicare lo stesso database in più istanze gestite di SQL configurando più collegamenti, vale a dire un collegamento per ogni database alla coppia di istanze gestite.

Il collegamento offre attualmente le funzionalità seguenti:

  • Replica unidirezionale da SQL Server versioni 2016 e 2019: usare la funzionalità di collegamento per replicare i dati in modo unidirezionale dall’istanza di SQL a Istanza gestita di SQL di Azure. Anche se è possibile effettuare manualmente il failover nell’istanza gestita in caso di emergenza, in questo modo si interrompe il collegamento e il failback non è supportato.
  • Ripristino di emergenza (SQL Server 2022): usare la funzionalità di collegamento per replicare i dati tra SQL Server 2022 e Istanza gestita di SQL, effettuare manualmente il failover nel database secondario durante un’emergenza ed eseguire il failback nel database primario dopo aver risolto l’emergenza. Il database primario iniziale può essere uno tra SQL Server o Istanza gestita di SQL.

È possibile continuare a eseguire il collegamento per tutto il tempo necessario, mesi e persino anni alla volta. Per il percorso di modernizzazione, se o quando si è pronti per la migrazione ad Azure, il collegamento consente un’esperienza di migrazione notevolmente migliorata. La migrazione tramite il collegamento offre tempi inattivi minimi rispetto a tutte le altre opzioni di migrazione disponibili, fornendo una vera migrazione online a Istanza gestita di SQL.

I database replicati tramite il collegamento tra SQL Server e Istanza gestita di SQL di Azure possono essere usati per diversi scenari. Eccone alcuni:

  • Ripristino di emergenza
  • Uso dei servizi di Azure senza eseguire la migrazione al cloud
  • Offload dei carichi di lavoro di sola lettura in Azure
  • Migrazione ad Azure
  • Copia dei dati in locale

Diagramma che illustra lo scenario principale del collegamento di un'istanza gestita.

Supporto delle versioni

Il collegamento a Istanza gestita è supportato a livello di servizio Utilizzo generico e Business Critical di Istanza gestita di SQL di Azure. Il collegamento funziona con le edizioni Enterprise, Developer e Standard di SQL Server.

Nella tabella seguente sono elencate le funzionalità del collegamento e le versioni minime supportate di SQL Server:

Versione primaria iniziale Sistema operativo Replica unidirezionale Opzioni per il ripristino di emergenza Requisito di aggiornamento della manutenzione
Istanza gestita di SQL di Azure Windows Server e Linux Generalmente disponibile Bidirezionale - SQL Server 2022 CU10 (KB5031778): Creazione di un collegamento da Istanza gestita di SQL di Azure a SQL Server 2022 1
- SQL Server 2022 CU13 (KB5036432): failover del collegamento tramite Transact-SQL
- La configurazione di un collegamento da Istanza gestita di SQL di Azure a SQL Server 2022 è supportata solo dalle istanze configurate con i criteri di aggiornamento di SQL Server 2022
SQL Server 2022 (16.x) Windows Server e Linux Generalmente disponibile Bidirezionale SQL Server 2022 RTM
SQL Server 2019 (15.x) Solo Windows Server Generalmente disponibile Solo da SQL Server a Istanza gestita di SQL SQL Server 2019 CU20 (KB5024276)
SQL Server 2017 (14.x) N/D N/D N/D SQL Server 2017 non è attualmente supportato.
SQL Server 2016 (13.x) Solo Windows Server Generalmente disponibile Solo da SQL Server a Istanza gestita di SQL Build di SQL Server 2016 SP3 più recente e build corrispondente di SQL Server 2016 Azure Connect Pack
SQL Server 2014 (12.x) e versioni precedenti N/D N/D N/D Le versioni precedenti a SQL Server 2016 non sono supportate.

1 La creazione di un collegamento con SQL Server 2022 come database primario iniziale è supportata a partire dalla versione RTM di SQL Server 2022, mentre la creazione di un collegamento con Istanza gestita di SQL di Azure come database primario iniziale è supportata solo a partire da SQL Server 2022 CU10. Se si crea il collegamento da una Istanza gestita di SQL come database primario iniziale, il downgrade di SQL Server inferiore a CU10 non è supportato mentre il collegamento è attivo perché può causare problemi dopo il failover in entrambe le direzioni.

Le versioni di SQL Server precedenti a SQL Server 2016 (SQL Server 2008 - 2014) non sono supportate, perché la funzionalità di collegamento si basa sulla tecnologia del gruppo di disponibilità distribuito, introdotta in SQL Server 2016.

Altri requisiti, oltre alla versione supportata di SQL Server:

  • Connessione di rete tra l’istanza di SQL Server e l’istanza gestita. Se SQL Server è in esecuzione in locale, usare un collegamento VPN o Azure ExpressRoute. Se SQL Server è in esecuzione in una macchina virtuale di Azure, distribuire la macchina virtuale nella stessa rete virtuale dell’istanza gestita o usare il peering di reti virtuali per connettere le due subnet separate.
  • Distribuzione di Istanza gestita di SQL di Azure di cui è stato effettuato il provisioning in qualsiasi livello di servizio.

Sono necessari anche gli strumenti seguenti:

Strumento Note
SSMS 20.2 o versioni successive SQL Server Management Studio (SSMS) è il modo più semplice per usare il collegamento a Istanza gestita, poiché fornisce procedure guidate che automatizzano l’installazione dei collegamenti.
Az.SQL 3.9.0 o versioni successive Per i passaggi della configurazione manuale è necessario un modulo di PowerShell.

Nota

La funzionalità di collegamento a Istanza gestita è disponibile in tutte le aree di Azure pubbliche e nei cloud nazionali o di enti pubblici.

La tecnologia sottostante al collegamento per Istanza gestita di SQL si basa sulla creazione di un gruppo di disponibilità distribuito tra SQL Server e Istanza gestita di SQL di Azure. La soluzione supporta sistemi a nodo singolo con o senza gruppi di disponibilità esistenti oppure sistemi a più nodi con gruppi di disponibilità esistenti.

Diagramma che mostra il funzionamento della funzionalità di collegamento per Istanza gestita di SQL utilizzando la tecnologia dei gruppi di disponibilità distribuiti.

La connessione privata, come una VPN o Azure ExpressRoute, viene usata tra una rete locale e Azure. Se SQL Server è ospitato in una VM di Azure, il backbone di Azure interno può essere usato tra la VM e l’istanza gestita, ad esempio il peering di reti virtuali. L’attendibilità tra i due sistemi viene stabilita usando l’autenticazione basata su certificati, in cui SQL Server e Istanza gestita di SQL scambiano chiavi pubbliche dei rispettivi certificati.

Istanza gestita di SQL di Azure supporta più collegamenti dalla stessa o da varie origini di SQL Server a un'unica istanza gestita di SQL di Azure, con l'unica limitazione del numero di database che possono essere ospitati contemporaneamente su un'istanza gestita: fino a 100 collegamenti per i livelli di servizio Utilizzo generico e Business Critical e 500 per l'aggiornamento del livello di servizio Utilizzo generico di nuova generazione. Analogamente, una singola istanza di SQL Server può stabilire più collegamenti di sincronizzazione del database paralleli con diverse istanze gestite in aree di Azure diverse in una relazione uno-a-uno tra un database e un’istanza gestita.

Per configurare l’ambiente iniziale, consultare la guida per allestire l’ambiente SQL Server da usare con la funzionalità di collegamento per Istanza gestita di SQL:

Dopo aver verificato che i prerequisiti dell’ambiente iniziale siano stati soddisfatti, è possibile creare il collegamento usando la procedura guidata automatizzata in SQL Server Management Studio (SSMS) oppure scegliere di configurare il collegamento manualmente usando gli script.

Dopo aver creato il collegamento, attenersi alle procedure consigliate per la sua gestione:

Ripristino di emergenza

Il collegamento a Istanza gestita consente il ripristino di emergenza laddove, in caso di emergenza, è possibile effettuare manualmente il failover del carico di lavoro dal database primario al database secondario. Per iniziare, vedere Ripristino di emergenza con il collegamento all'istanza gestita.

Con SQL Server 2016 e SQL Server 2019, il database primario è sempre SQL Server e il failover nell’istanza gestita secondaria è unidirezionale. Il failback in SQL Server non è supportato. Tuttavia, è possibile ripristinare i dati in SQL Server usando opzioni di spostamento dei dati, ad esempio la replica transazionale o l’esportazione di un file bacpac.

Con SQL Server 2022, il database primario iniziale può essere uno tra SQL Server o Istanza gestita di SQL ed è possibile stabilire il collegamento da SQL Server o Istanza gestita di SQL. È possibile eseguire il failback dei carichi di lavoro tra il database primario e quello secondario, ottenendo così un vero ripristino di emergenza bidirezionale.

Quando si esegue il failback in SQL Server, è possibile scegliere di eseguirlo:

Diagramma che mostra lo scenario di ripristino di emergenza.

Usare i servizi di Azure

Usare il collegamento per sfruttare i vantaggi dei servizi di Azure con i dati di SQL Server senza eseguirne la migrazione al cloud. Ad esempio, la creazione di report, l’analisi, i backup, l’apprendimento automatico e altri processi che inviano dati ad Azure.

Offload dei carichi di lavoro in Azure

È anche possibile usare la funzionalità di collegamento per eseguire l’offload dei carichi di lavoro in Azure. Ad esempio, un’applicazione può usare SQL Server per carichi di lavoro di lettura/scrittura, mentre esegue l’offload dei carichi di lavoro di sola lettura per le distribuzioni di Istanza gestita di SQL in qualsiasi area di Azure in tutto il mondo. Dopo aver stabilito il collegamento, il database primario in SQL Server è accessibile in lettura/scrittura, mentre i dati replicati nell’istanza gestita in Azure sono accessibili in sola lettura. Questa disposizione consente diversi scenari in cui i database replicati nell’istanza gestita possono essere usati per la scalabilità orizzontale in lettura e l’offload dei carichi di lavoro di sola lettura in Azure. L’istanza gestita, in parallelo, può anche ospitare database di lettura/scrittura indipendenti. Ciò consente di copiare il database replicato in un altro database di lettura/scrittura nella stessa istanza gestita per un’ulteriore elaborazione dei dati.

Il collegamento è con ambito database (un collegamento per ogni database), il che consente il consolidamento e il deconsolidamento dei carichi di lavoro in Azure. Ad esempio, è possibile replicare i database da più istanze di SQL Server a una singola distribuzione di Istanza gestita di SQL in Azure (consolidamento) oppure replicare i database da una singola istanza di SQL Server a più istanze gestite tramite una relazione uno-a-uno tra un database e un’istanza gestita in qualsiasi area di Azure in tutto il mondo (deconsolidamento). Quest’ultima opzione offre un modo efficiente per avvicinare rapidamente i carichi di lavoro ai clienti in qualsiasi area in tutto il mondo, che è possibile usare come repliche di sola lettura.

Eseguire la migrazione ad Azure

Il collegamento facilita anche la migrazione da SQL Server a Istanza gestita di SQL, che abilita:

  • Migrazione con tempi di inattività più efficienti e minimi rispetto a tutte le altre soluzioni attualmente disponibili.
  • Migrazione online reale a Istanza gestita di SQL in qualsiasi livello di servizio.

Poiché la funzionalità di collegamento consente una migrazione con tempi di inattività minimi, è possibile eseguire la migrazione all'istanza gestita man mano che si gestisce il carico di lavoro primario online. Sebbene sia attualmente possibile ottenere migrazioni online al livello di servizio General Purpose con altre soluzioni, la funzionalità di collegamento è l’unica soluzione che consente migrazioni online reali al livello Business Critical.

Copiare dati in locale

Con SQL Server 2022 è possibile stabilire il collegamento da Istanza gestita di SQL a SQL Server, sbloccare scenari aggiuntivi, ad esempio creare una replica di database near real-time all’esterno di Azure, testare i piani di continuità aziendale e soddisfare i requisiti di conformità.

Backup automatizzati

Dopo aver configurato un collegamento con Istanza gestita di SQL di Azure, viene eseguito automaticamente il backup dei database nell'istanza gestita in Archiviazione di Azure indipendentemente dal fatto che Istanza gestita di SQL sia primario. I backup automatizzati con il collegamento eseguono backup completi e del log delle transazioni, ma non backup differenziali, che possono causare tempi di ripristino più lunghi.

È possibile ridurre i costi di gestione e funzionamento locali sfruttando al contempo l’affidabilità dei backup di Azure per i database replicati. È quindi possibile eseguire un ripristino temporizzato del database replicato in qualsiasi distribuzione di Istanza gestita di SQL nella stessa area, come con qualsiasi altro backup automatizzato.

Replica di ripristino di emergenza passiva senza licenza

È possibile risparmiare sui costi di licenza vCore se si attiva il vantaggio di failover ibrido per il ripristino di emergenza passivo secondario solo per le istanze gestite di SQL che non hanno carichi di lavoro.

Per iniziare, vedere Replica passiva senza licenza.

Vantaggi economici

Se si designa una replica di istanza gestita solo per il ripristino di emergenza, Microsoft non addebita costi di licenza di SQL Server per i vCore usati dall’istanza secondaria. Tenere presente che l’istanza viene fatturata a una granularità oraria e si potrebbero comunque pagare costi di licenza per un’ora intera se si aggiorna il vantaggio di licenza durante l’ora.

Il vantaggio riflette in modo diverso il modello di fatturazione con pagamento in base al consumo e Vantaggio Azure Hybrid. Per un modello di fatturazione con pagamento in base al consumo, i vCore vengono scontati nella fattura. Se si usa Vantaggio Azure Hybrid per la replica passiva, il numero di vCore usati dalla replica secondaria viene restituito al pool di licenze.

Ad esempio, come cliente con pagamento in base al consumo, se sono stati assegnati 16 vCore all’istanza secondaria, viene visualizzato uno sconto per 16 vCore nella fattura se si designa l’istanza secondaria per il failover ibrido.

In un altro esempio, se si dispone di 16 licenze Vantaggio Azure Hybrid e l’istanza gestita di SQL secondaria usa 8 vCore, dopo aver designato l’istanza secondaria per il failover ibrido, vengono restituiti 8 vCore al pool di licenze da usare con altre distribuzioni SQL di Azure.

Per termini e condizioni precisi del vantaggio dei diritti di failover ibrido, vedere le condizioni di licenza di SQL Server online nella sezione “SQL Server – Diritti di failover”.

Limiti

Quando si usa il collegamento, prendere in considerazione le seguenti limitazioni.

Le limitazioni di supporto delle versioni includono:

  • Non è possibile usare i client Windows 10 e 11 per ospitare l’istanza di SQL Server, perché non è possibile abilitare la funzionalità del gruppo di disponibilità AlwaysOn necessaria per il collegamento. Le istanze di SQL Server devono essere ospitate in Windows Server 2012 o versioni successive.
  • Le versioni di SQL Server 2008 a 2014 non sono supportate dalla funzionalità di collegamento, perché il motore SQL di queste versioni non dispone del supporto predefinito per i gruppi di disponibilità distribuiti necessari per il collegamento. Eseguire l’aggiornamento a una versione più recente di SQL Server.
  • La replica dei dati e il failover da Istanza gestita di SQL a SQL Server 2022 non sono supportati dalle istanze configurate con i criteri di aggiornamento sempre aggiornati. L'istanza deve essere configurata con i criteri di aggiornamento di SQL Server 2022 per eseguire le seguenti operazioni:
    • Creare un collegamento da Istanza gestita di SQL a SQL Server.
    • Effettuare il failover da istanza gestita di SQL a SQL Server 2022.
  • Sebbene sia possibile stabilire un collegamento da SQL Server 2022 a un'istanza gestita di SQL configurata con i criteri di aggiornamento sempre aggiornati, dopo il failover a Istanza gestita di SQL non sarà più possibile replicare i dati o eseguire il failback su SQL Server 2022.

Ecco alcune limitazioni della replica dei dati:

  • È possibile replicare solo i database utente. La replica del database di sistema non è supportata.
  • La soluzione non replica gli oggetti a livello di server, i processi dell’agente o gli account di accesso utente da SQL Server a Istanza gestita di SQL.
  • Per SQL Server versioni 2016 e 2019, la replica di database utente da istanze di SQL Server a distribuzioni di Istanza gestita di SQL è unidirezionale. I database utente delle distribuzioni di Istanza gestita di SQL non possono essere replicati nelle istanze di SQL Server. La replica bidirezionale con failback in un’istanza di SQL Server è disponibile solo per SQL Server 2022.
  • La configurazione di un collegamento da Istanza gestita di SQL a SQL Server in un database non è supportata per i database di Istanza gestita di SQL già collegati.

Le limitazioni di configurazione possibili sono:

  • Se in un server sono presenti più istanze di SQL Server, è possibile configurare un collegamento con ciascuna istanza, ma ogni istanza deve essere configurata per usare un endpoint di mirroring del database separato, con una porta dedicata per ogni istanza. Solo l’istanza predefinita deve usare la porta 5022 per l’endpoint del mirroring del database.
  • È possibile inserire un solo database in un singolo gruppo di disponibilità per un collegamento di Istanza gestita. È tuttavia possibile replicare più database in una singola Istanza di SQL Server stabilendo più collegamenti.
  • Un’istanza gestita singola supporta fino a 100 collegamenti da più istanze di SQL Server.
  • Un collegamento a Istanza gestita può replicare un database di qualsiasi dimensione se rientra nelle dimensioni di archiviazione scelte della distribuzione dell’Istanza gestita di SQL di destinazione.
  • L’autenticazione dei collegamenti di Istanza gestita tra SQL Server e Istanza gestita di SQL è basata su certificati e disponibile solo tramite uno scambio di certificati. L’uso di autenticazione di Windows per stabilire il collegamento tra l’istanza di SQL Server e l’istanza gestita non è supportato.
  • Per stabilire un collegamento con Istanza gestita di SQL è supportato solo l’endpoint locale della rete virtuale.
  • Non è possibile usare endpoint pubblici o endpoint privati per stabilire il collegamento con l’istanza gestita.
  • I database con più file di log non possono essere replicati, perché Istanza gestita di SQL non supporta più file di log.

Le limitazioni delle caratteristiche includono:

  • I gruppi di failover non sono supportati con le istanze che usano la funzionalità di collegamento. Non è possibile stabilire un collegamento in un’istanza gestita che fa parte di un gruppo di failover e viceversa non è possibile configurare un gruppo di failover in un’istanza con un collegamento stabilito.
  • Se si usa Change Data Capture (CDC), il log shipping o un service broker con database replicati nell’istanza di SQL Server, quando viene eseguita la migrazione del database a una distribuzione di Istanza gestita di SQL, durante un failover in Azure, i client devono connettersi usando il nome dell’istanza della replica primaria globale corrente. Queste impostazioni devono essere riconfigurate manualmente.
  • Se si usa la replica transazionale con un database in un’istanza di SQL Server in uno scenario di migrazione, durante il failover in Azure, la replica transazionale nella distribuzione di Istanza gestita di SQL ha esito negativo e deve essere riconfigurata manualmente.
  • Se si usano transazioni distribuite con un database replicato dall’istanza di SQL Server e, in uno scenario di migrazione, nel cutover nel cloud, le funzionalità distributed Transaction Coordinator non verranno trasferite. Non è possibile che il database migrato venga coinvolto nelle transazioni distribuite con l’istanza di SQL Server, perché la distribuzione di Istanza gestita di SQL non supporta transazioni distribuite con SQL Server in questo momento. Come riferimento, Istanza gestita di SQL attualmente supporta transazioni distribuite solo tra altre istanze gestite. Per altre informazioni, vedere Transazioni distribuite in database cloud.
  • Se si usa Transparent Data Encryption (TDE) per crittografare i database di SQL Server, è necessario esportare e caricare la chiave di crittografia del database da SQL Server in Azure Key Vault e configurare anche l’opzione TDE BYOK in Istanza gestita di SQL prima di creare il collegamento.
  • I database di Istanza gestita di SQL che sono crittografati con chiavi TDE gestite dal servizio non possono essere collegati a SQL Server. È possibile collegare un database crittografato in 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 ulteriori informazioni, vedere Configurare TDE di SQL Server con Azure Key Vault.
  • Non è possibile stabilire un collegamento tra SQL Server e Istanza gestita di SQL se la funzionalità usata nell’istanza di SQL Server non è supportata nell’istanza gestita. Ad esempio:
    • I database con tabelle e flussi di file non possono essere replicati, perché Istanza gestita di SQL non supporta tabelle di file né flussi di file.
    • I database che usano OLTP in memoria possono essere replicati solo in Istanza gestita di SQL nel livello di servizio Business Critical, perché il livello di servizio Utilizzo generico non supporta OLTP in memoria. I database contenenti più file OLTP in memoria non sono supportati da Istanza gestita di SQL e non possono essere replicati.

Tentativo di aggiungere una funzionalità non supportata a un database replicato in:

  • SQL Server 2019 e 2022 restituiscono un errore.
  • SQL Server 2016 causa l’interruzione del collegamento, che dovrà quindi essere eliminato e ricreato.

Per l’elenco completo delle differenze tra SQL Server Agent in SQL Server e in Istanza gestita di SQL di Azure, vedere Differenze di T-SQL tra SQL Server e Istanza gestita di SQL di Azure.

Per usare il collegamento:

Per altre informazioni sul collegamento:

Per altri scenari di replica e migrazione, prendere in considerazione: