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, in quanto sblocca diversi scenari. Tra questi, il ridimensionamento dei carichi di lavoro di sola lettura, la devoluzione delle attività di analisi e reportistica ad Azure e la migrazione ad Azure. Con SQL Server 2022, inoltre, il collegamento consente il ripristino di emergenza online con ritorno a SQL Server, nonché la configurazione del collegamento dall'istanza SQL gestita a SQL Server 2022.

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

Panoramica

Il collegamento a Istanza gestita utilizza gruppi di disponibilità distribuiti per estendere il patrimonio di dati in modo sicuro, replicando i dati quasi in tempo reale da SQL Server ospitato ovunque a Istanza gestita di SQL di Azure, o da Istanza gestita di SQL di Azure a 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, 2017 e 2019: usare la funzionalità di collegamento per replicare i dati in un modo 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): utilizzare la funzionalità di collegamento per replicare i dati tra SQL Server 2022 e Istanza SQL gestita, eseguire manualmente il failover sul server secondario durante un'emergenza ed eseguire il failback sul server primario dopo averla risolta. Sia SQL Server che SQL Managed Instance possono essere il primario iniziale.

È 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 attraverso il collegamento offre un tempo di inattività minimo rispetto a tutte le altre opzioni di migrazione disponibili, fornendo una vera migrazione online a Istanza SQL gestita.

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
  • Scaricare i carichi di lavoro di sola lettura su 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 nell'Istanza Gestita è supportato nei livelli di servizio General Purpose e Business Critical di Azure SQL Managed Instance. 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 del servizio
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): Errore di 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: Creazione di un collegamento da SQL Server 2022 a Istanza gestita di SQL di Azure
- SQL Server 2022 CU13 (KB5036432): Failover del collegamento tramite Transact-SQL
SQL Server 2019 (15.x) Solo Windows Server Generalmente disponibile Solo da SQL Server a SQL MI SQL Server 2019 CU20 (KB5024276)
SQL Server 2017 (14.x)2 Solo Windows Server Generalmente disponibile Da SQL Server a SQL MI (Istanza gestita) Build SQL Server 2017 CU31 più recente e sql Server 2017 Azure Connect pack build
SQL Server 2016 (13.x) Solo Windows Server Generalmente disponibile Solo la migrazione da SQL Server a SQL MI (Istanza gestita) La build più recente di SQL Server 2016 SP3 e la build corrispondente di SQL Server 2016 Azure Connect pack
SQL Server 2014 (12.x) e versioni precedenti N/D N/D Non disponibile 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 a partire da un'Istanza gestita di SQL come istanza primaria iniziale, il downgrade di SQL Server a una versione inferiore alla CU10 non è supportato mentre il collegamento è attivo, poiché può causare problemi in caso di failover in entrambe le direzioni.
2 La creazione di un collegamento con SQL Server 2017 è attualmente supportata solo con l'Istanza gestita di SQL Azure con il criterio di aggiornamento di SQL Server 2022.

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 una istanza gestita di Azure SQL configurata per qualsiasi livello di servizio.

Sono necessari anche gli strumenti seguenti:

Strumento Note
L'ultima versione di SSMS 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.
L'ultima versione di Az.SQL o Azure CLI Per la configurazione dei collegamenti tramite script.

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, consultare Ripristino di emergenza con Managed Instance.

Con SQL Server 2016 a SQL Server 2019, il server primario è sempre SQL Server e il failover nell'istanza gestita secondaria è unidirezionale. Il ritorno a 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 su SQL Server, è possibile scegliere come 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.

Spostare i carichi di lavoro su 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 del mondo, che possono essere utilizzate 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 Azure SQL Managed Instance, i database sull'istanza gestita vengono automaticamente sottoposti a backup nell'archiviazione di Azure, indipendentemente dal fatto che l'istanza SQL gestita sia primaria. 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 passiva di Disaster Recovery senza obbligo di 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 su base oraria e potresti essere comunque addebitato dei costi di licenza per un'ora intera se aggiorni il beneficio della licenza durante quell'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 utilizza il Vantaggio di Azure Hybrid per la replica passiva, il numero di vCore utilizzati dalla replica passiva viene restituito al pool di licenze.

Ad esempio, come cliente pay-as-you-go, se hai 16 vCore assegnati all'istanza secondaria, sulla tua fattura apparirà uno sconto per 16 vCore se designi 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 per utilizzare il collegamento.
  • La replicazione dei dati e il failover da Istanza gestita di SQL a SQL Server 2022 non sono supportati dalle istanze configurate con la politica di aggiornamenti Always-up-to-date. L'istanza deve essere configurata con i criteri di aggiornamento di SQL Server 2022 per eseguire le seguenti operazioni:
    • Creare un collegamento da SQL Managed Instance a SQL Server.
    • Effettuare il failover dall'Istanze 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 le versioni di SQL Server 2016, 2017 e 2019, la replica dei database utente dalle istanze di SQL Server alle distribuzioni di Istanza gestita di SQL Server avviene in un'unica direzione. I database utente dalle distribuzioni di Istanza Gestita di SQL non possono essere replicati indietro alle istanze di SQL Server tramite il link. 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é SQL Managed Instance non supporta più file di log.
  • La creazione di un collegamento con SQL Server 2017 è attualmente supportata solo con Istanza gestita di Azure SQL con il criterio di aggiornamento di SQL Server 2022.

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 utilizzi Change Data Capture (CDC), il log shipping o un service broker con database replicati nell'istanza di SQL Server, quando il database viene migrato a una distribuzione di Istanza Gestita SQL, durante un failover verso Azure, i client devono connettersi utilizzando il nome dell'istanza della replica primaria globale attuale. Queste impostazioni devono essere riconfigurate manualmente.
  • Se si utilizza la replica transazionale con un database su un'istanza di SQL Server in uno scenario di migrazione, durante il failover su Azure, la replica transazionale nella distribuzione di SQL Managed Instance non riuscirà e dovrà essere riconfigurata manualmente.
  • Se state usando transazioni distribuite con un database replicato dall'istanza di SQL Server e, in uno scenario di migrazione, al passaggio al cloud, le funzionalità del Coordinatore di Transazioni Distribuite non saranno 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 2017, 2019 e 2022 non riesce con 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 e 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: