Panoramica della migrazione: da SQL Server al database SQL di Azure

Si applica a:Database SQL di Azure

Informazioni sulle opzioni e sulle considerazioni per la migrazione dei database di SQL Server al database SQL di Azure.

È possibile eseguire la migrazione di database di SQL Server in esecuzione preesistenti in:

  • SQL Server in macchine virtuali
  • Amazon EC2 (Elastic Compute Cloud)
  • Amazon RDS (Relational Database Service) per SQL Server
  • Google Compute Engine
  • Cloud SQL per SQL Server - GCP (Google Cloud Platform)

Per altre guide alla migrazione, vedere Migrazione dei database.

Panoramica

Database SQL di Azure è un'opzione di destinazione consigliata per i carichi di lavoro di SQL Server che richiedono una piattaforma distribuita come servizio (PaaS) completamente gestita. Il database SQL gestisce la maggior parte delle funzioni di gestione del database. Offre anche funzionalità predefinite per la disponibilità elevata, l'elaborazione intelligente delle query, la scalabilità e le prestazioni per soddisfare molti tipi di applicazioni.

Il database SQL offre flessibilità con più modelli di distribuzione e livelli di servizio che soddisfano diversi tipi di applicazioni o carichi di lavoro.

Uno dei principali vantaggi della migrazione a database SQL è la possibilità di modernizzare l'applicazione usando le funzionalità PaaS. Ciò consente di eliminare le dipendenze dai componenti tecnici con ambito a livello di istanza, ad esempio processi di SQL Agent.

È anche possibile risparmiare sui costi usando Azure Hybrid Benefit per SQL Server per eseguire la migrazione delle licenze locali di SQL Server a database SQL di Azure. Questa opzione è disponibile se si sceglie il modello di acquisto basato su vCore.

Assicurarsi di esaminare le funzionalità del motore di database di SQL Server disponibile in Database SQL di Azure per convalidare la supportabilità della destinazione di migrazione.

Considerazioni

I fattori chiave da considerare durante la valutazione delle opzioni di migrazione sono:

  • Numero di server e database
  • Dimensioni del database
  • Tempi di inattività aziendali accettabili durante il processo di migrazione

Le opzioni di migrazione elencate in questa guida prendono in considerazione i seguenti fattori. Per la migrazione dei dati logici su database SQL di Azure, il tempo di migrazione può dipendere sia dal numero di oggetti presenti in un database sia dalle dimensioni del database.

Gli strumenti sono disponibili per vari carichi di lavoro e preferenze utente. Alcuni strumenti possono essere usati per eseguire una migrazione rapida di un singolo database tramite uno strumento basato sull'interfaccia utente. Altri strumenti possono automatizzare la migrazione di più database per gestire le migrazioni su larga scala.

Scegliere una destinazione appropriata

Seguire le linee guida per scegliere il modello di distribuzione e il livello di servizio corretti per il database SQL di Azure. È possibile scegliere risorse di calcolo e archiviazione durante la distribuzione, quindi modificarle in seguito usando il portale di Azure senza incorrere in tempi di inattività nell'applicazione.

Modelli di distribuzione: comprendere il carico di lavoro dell'applicazione e il modello di utilizzo per decidere tra un singolo database o un pool elastico.

  • Un database singolo rappresenta un database completamente gestito adatto per la maggior parte di microservizi e applicazioni cloud moderni.
  • Un pool elastico è una raccolta di database SQL singoli con un set condiviso di risorse, ad esempio CPU o memoria. È adatto per combinare i database in un pool con modelli di utilizzo prevedibili che possono condividere efficacemente lo stesso set di risorse.

Modelli di acquisto: scegliere tra vCore, unità di transazione di database (DTU) o modelli di acquisto serverless.

  • Il modello vCore consente di scegliere il numero di vCore per database SQL di Azure, quindi è la scelta più semplice quando si esegue la conversione da SQL Server locale. Questa opzione consente di risparmiare sui costi di licenza grazie ad Azure Hybrid Benefit.
  • Il modello DTU astrae le risorse di calcolo, memoria e I/O sottostanti per fornire una DTU combinata.
  • Il modello serverless è destinato ai carichi di lavoro che richiedono la scalabilità su richiesta automatica con le risorse di calcolo fatturate in base al secondo di utilizzo. Nei casi in cui viene fatturata solo l'archiviazione, il livello di calcolo serverless sospende automaticamente i database durante i periodi di inattività. Il database viene riattivato automaticamente quando riprende l'attività.

Livelli di servizio: scegliere tra tre livelli di servizio progettati per diversi tipi di applicazioni.

  • Il livello di servizio General Purpose/Standard offre un'opzione bilanciata orientata al budget con risorse di calcolo e archiviazione adatte per la distribuzione di applicazioni nei livelli intermedi e inferiori. La ridondanza è incorporata a livello di archiviazione per il ripristino da errori. È progettato per la maggior parte dei carichi di lavoro del database.
  • Il livello Business Critical/Premium è destinato ad applicazioni di livello elevato che richiedono velocità delle transazioni elevata, I/O a bassa latenza e un livello elevato di resilienza. Sono disponibili le repliche secondarie per il failover e per l'offload dei carichi di lavoro di lettura.
  • Il livello di servizio Hyperscale è destinato a tutti i clienti che richiedono prestazioni e disponibilità più elevate, backup e ripristino rapidi e/o scalabilità di calcolo e archiviazione veloci. Sono inclusi i clienti che stanno passando al cloud per modernizzare le loro applicazioni e i clienti che usano già altri livelli di servizio nel database SQL di Azure. Il livello di servizio Hyperscale supporta un'ampia gamma di carichi di lavoro di database, da OLTP puro ad analisi pura. È ottimizzato per carichi di lavoro OLTP e di elaborazione analitica (HTAP) ibridi e transazioni.

Importante

La frequenza dei log delle transazioni è regolamentata in database SQL di Azure per limitare le frequenze di inserimento elevate. Di conseguenza, durante la migrazione, potrebbe essere necessario ridimensionare le risorse del database di destinazione (vCore o DTU) per ridurre l'utilizzo della CPU o della velocità effettiva. Scegliere il database di destinazione con dimensioni appropriate pianificando l'aumento delle risorse per la migrazione, se necessario.

Alternativa alla macchina virtuale di SQL Server

L'azienda potrebbe avere requisiti che rendono SQL Server in VM Azure una destinazione più adatta rispetto a database SQL di Azure.

Se una delle condizioni seguenti si applica all'azienda, prendere in considerazione la possibilità di passare a una macchina virtuale (VM) di SQL Server:

  • È necessario l'accesso diretto al sistema operativo o al file system, ad esempio per installare agenti personalizzati o di terze parti nella stessa macchina virtuale con SQL Server.
  • È presente una stretta dipendenza da funzionalità non ancora supportate, come FileStream/FileTable, PolyBase e le transazioni tra istanze.
  • È assolutamente necessario mantenere una versione specifica di SQL Server (ad esempio, 2012).
  • I requisiti di calcolo sono nettamente inferiori rispetto a quanto offerto dall'istanza gestita (ad esempio, un vCore) e il consolidamento di database non è un'opzione accettabile.

Strumenti di migrazione

È consigliabile usare gli strumenti di migrazione seguenti:

Tecnologia Descrizione
Azure Migrate Questo servizio di Azure consente di individuare e valutare il patrimonio di dati SQL su larga scala in VMware. Fornisce raccomandazioni sulla distribuzione, sul dimensionamento della destinazione e stime mensili di Azure SQL.
Estensione di migrazione SQL di Azure per Azure Data Studio Basata su Azure Database Migration Service, l'estensione di migrazione SQL di Azure per Azure Data Studio consente di valutare i requisiti del database per comprendere l'idoneità per la migrazione, ottenere le raccomandazioni per lo SKU di dimensioni appropriate per le risorse di Azure ed eseguire la migrazione del database di SQL Server ad Azure. È possibile migrare i singoli database o ridimensionarli con PowerShell e l'interfaccia della riga di comando di Azure.

La tabella seguente elenca gli strumenti di migrazione alternativi:

Tecnologia Descrizione
Replica transazionale Replicare i dati dalle tabelle di database di SQL Server di origine a database SQL di Azure fornendo un'opzione di migrazione dei tipi di sottoscrittore del server di pubblicazione mantenendo al tempo stesso la coerenza transazionale. Le modifiche ai dati incrementali vengono propagate ai sottoscrittori man mano che si verificano nei server di pubblicazione.
Servizio di importazione/esportazione/BACPAC Un BACPAC è un file di Windows con estensione bacpac che incapsula lo schema e i dati di un database. È possibile usare BACPAC per esportare i dati da un'origine di SQL Server e importare nuovamente i dati in database SQL di Azure. È possibile importare un file BACPAC in un nuovo database SQL tramite il portale di Azure.

Per scalabilità e prestazioni con database di grandi dimensioni o un numero elevato di database, è consigliabile usare lo strumento da riga di comando SqlPackage per esportare e importare database.
Copia in massa Lo strumento di copia in massa (bcp) copia i dati da un'istanza di SQL Server in un file di dati. Usare lo strumento per esportare i dati dall'origine e importare il file di dati nel database SQL di destinazione.

Per le operazioni di copia in massa ad alta velocità per spostare i dati in database SQL di Azure, è possibile usare lo strumento Smart Bulk Copy per ottimizzare la velocità di trasferimento sfruttando le attività di copia parallele.
Azure Data Factory L'attività Copia in Azure Data Factory esegue la migrazione dei dati dai database SQL Server di origine a database SQL di Azure usando connettori predefiniti e un runtime di integrazione.

Data Factory supporta un'ampia gamma di connettori per spostare i dati dalle origini di SQL Server al database SQL di Azure.
Sincronizzazione dati SQL La sincronizzazione dati SQL è un servizio basato sul database SQL di Azure che consente di sincronizzare i dati selezionati in modo bidirezionale tra più database, in locale e nel cloud.
La sincronizzazione dei dati è utile nei casi in cui i dati devono essere aggiornati su più database in database SQL di Azure o SQL Server.

Confrontare le opzioni di migrazione

Confrontare le opzioni di migrazione per scegliere l'opzione adatta alle esigenze aziendali.

La tabella seguente confronta le opzioni di migrazione consigliate:

Opzione di migrazione Quando utilizzare Considerazioni
Azure Migrate - Individuazione e valutazione di database singoli o su larga scala da ambienti diversi. - Tutti i passaggi di pre-migrazione, ad esempio individuazione, valutazioni e dimensionamento corretto delle risorse locali, sono inclusi per infrastruttura, dati e applicazioni.
Estensione di migrazione SQL di Azure per Azure Data Studio - Esegui la migrazione dei database su larga scala.
- Solo modalità offline.

Origini supportate:
- SQL Server (2008 e versioni successive) locale o in VM Azure
- SQL Server in Amazon EC2
- Amazon RDS per SQL Server
- SQL Server in Google Compute Engine
Le migrazioni su larga scala possono essere automatizzate tramite PowerShell o CLI di Azure.

- Il tempo di migrazione di un database dipende dal numero di oggetti in un database e dalle dimensioni del database.

- Azure Data Studio è necessario quando non si usa PowerShell o l'interfaccia della riga di comando di Azure.

Nella tabella seguente vengono confrontate le opzioni di migrazione alternative:

Metodo o tecnologia Quando utilizzare Considerazioni
Replica transazionale - Eseguire la migrazione pubblicando continuamente le modifiche dalle tabelle del database di origine alle tabelle del database di destinazione di SQL.
- Eseguire migrazioni complete o parziali del database delle tabelle selezionate (subset di un database).

Origini supportate:
- SQL Server (da 2016 a 2019) con alcune limitazioni
- AWS EC2
- VM di calcolo di SQL Server GCP
- Il programma di installazione è relativamente complesso rispetto ad altre opzioni di migrazione.
- Offre un'opzione di replica continua per eseguire la migrazione dei dati (senza portare offline i database).
- La replica transazionale presenta limitazioni da considerare quando si configura il server di pubblicazione nell'istanza di SQL Server di origine. Per altre informazioni, vedere Limitazioni per la pubblicazione di oggetti.
- È possibile monitorare l'attività di replica.
Servizio di importazione/esportazione/BACPAC - Eseguire la migrazione di singoli database di applicazioni line-of-business.
- Adatto per database di piccole dimensioni.
- Non richiede un servizio o uno strumento di migrazione separato.

Origini supportate:
- SQL Server (da 2005 a 2019) in locale o su VM Azure
- AWS EC2
- AWS RDS
- VM di calcolo di SQL Server GCP
- Richiede tempi di inattività perché i dati devono essere esportati nell'origine e importati nella destinazione.
- I formati di file e i tipi di dati usati nell'esportazione o nell'importazione devono essere coerenti con gli schemi delle tabelle per evitare errori di troncamento o di mancata corrispondenza dei dati.
- Il tempo necessario per esportare un database con un numero elevato di oggetti può essere significativamente superiore.
Copia in massa - È possibile eseguire migrazioni di dati complete o parziali.
- È possibile contenere i tempi di inattività.

Origini supportate:
- SQL Server (da 2005 a 2019) in locale o su VM Azure
- AWS EC2
- AWS RDS
- VM di calcolo di SQL Server GCP
- Richiede tempi di inattività per l'esportazione dei dati dall'origine e l'importazione nella destinazione.
- I formati di file e i tipi di dati usati nell'esportazione o nell'importazione devono essere coerenti con gli schemi delle tabelle.
Azure Data Factory - Eseguire la migrazione e trasformare i dati dai database di SQL Server di origine.
- L'unione di dati da più origini di dati a database SQL di Azure è in genere per i carichi di lavoro di Business Intelligence (BI).
- Richiede la creazione di pipeline di spostamento dei dati in Data Factory per spostare i dati dall'origine alla destinazione. Il
- costo è una considerazione importante e si basa su fattori come trigger della pipeline, esecuzioni di attività e durata dello spostamento dei dati.
Sincronizzazione dati SQL - Sincronizzare i dati tra database di origine e di destinazione.
- Adatto per eseguire la sincronizzazione continua tra database SQL di Azure e SQL Server locale in un flusso bidirezionale.
- Database SQL di Azure deve essere il database hub per la sincronizzazione con un database di SQL Server locale come database membro.
- Rispetto alla replica transazionale, sincronizzazione dati SQL supporta la sincronizzazione dei dati bidirezionali tra l'ambiente locale e database SQL di Azure.
- Può avere un impatto più elevato sulle prestazioni, a seconda del carico di lavoro.

Interoperabilità delle funzionalità

Quando si esegue la migrazione di carichi di lavoro che si basano su altre funzionalità di SQL Server, è necessario tenere presenti altre considerazioni.

SQL Server Integration Services

Eseguire la migrazione di pacchetti di SQL Server Integration Services (SSIS) ad Azure ridistribuendo i pacchetti al runtime Azure-SSIS in Azure Data Factory. Azure Data Factory supporta la migrazione dei pacchetti SSIS fornendo un runtime compilato per eseguire pacchetti SSIS in Azure. In alternativa, è possibile riscrivere la logica SSIS ETL (estrazione, trasformazione, caricamento) in modo nativo in Azure Data Factory usando flussi di dati.

SQL Server Reporting Services

Migrazione di report di SQL Server Reporting Services (SSRS) a report impaginati in Power BI. Usare lo strumento di migrazione RDL per preparare ed eseguire la migrazione dei report. Microsoft ha sviluppato questo strumento per consentire ai clienti di eseguire la migrazione di report RDL (Report Definition Language) dai server SSRS a Power BI. È disponibile in GitHub e documenta una procedura dettagliata end-to-end dello scenario di migrazione.

Disponibilità elevata

La configurazione manuale delle funzionalità a disponibilità elevata di SQL Server, ad esempio le istanze del cluster di failover Always On e i gruppi di disponibilità Always On, diventano obsoleti nel database SQL di destinazione. L'architettura a disponibilità elevata è già incorporata nei livelli di servizio General Purpose (modello di disponibilità standard) e Business Critical (modello di disponibilità Premium) per database SQL di Azure. Il livello di servizio Business Critical/Premium offre anche scalabilità in lettura che consente la connessione a uno dei nodi secondari per scopi di sola lettura.

Oltre all'architettura a disponibilità elevata inclusa in database SQL di Azure, la funzionalità gruppi di failover consente di gestire la replica e il failover dei database in un server in un'altra area.

Account di accesso e gruppi

Gli account di accesso di Windows non sono supportati in database SQL di Azure; creare invece un account di accesso da Microsoft Entra ID (in precedenza Azure Active Directory). Ricreare manualmente tutti gli account di accesso SQL.

Processi di SQL Agent

I processi di SQL Agent non sono supportati direttamente in database SQL di Azure e devono essere distribuiti nei processi di database elastici (anteprima).

Database di sistema

Per database SQL di Azure, gli unici database di sistema applicabili sono master e tempdb. Per altre informazioni vedere Tempdb in database SQL di Azure.

Funzionalità avanzate

Assicurarsi di sfruttare le funzionalità avanzate basate sul cloud in database SQL. Ad esempio, non è necessario preoccuparsi di gestire i backup perché il servizio lo esegue per l'utente. È possibile ripristinare un database in un punto nel tempo entro il periodo di conservazione.

Per rafforzare la sicurezza, è consigliabile usare autenticazione di Microsoft Entra, controllo, rilevamento delle minacce, sicurezza a livello di riga e mascheramento dinamico dei dati.

Oltre alle funzionalità avanzate di gestione e sicurezza, database SQL offre strumenti che consentono di monitorare e ottimizzare il carico di lavoro. Azure SQL Analytics (anteprima) è una soluzione avanzata per il monitoraggio delle prestazioni di tutti i database in database SQL di Azure su larga scala e tra più sottoscrizioni in un'unica visualizzazione. Azure SQL Analytics raccoglie e visualizza importanti metriche sulle prestazioni con funzionalità di intelligence integrata per la risoluzione dei problemi.

L'ottimizzazione automatica monitora continuamente le prestazioni del piano di esecuzione SQL e corregge automaticamente i problemi di prestazioni identificati.

Risorse per la migrazione

Per altre informazioni, vedere le risorse seguenti sviluppate per i progetti di migrazione reali.

Risorsa Descrizione
Strumento e modello di valutazione dei carichi di lavoro dei dati Questo strumento indica le piattaforme di destinazione "più idonee" suggerite, la preparazione per il cloud e il livello di correzione di applicazioni/database per un determinato carico di lavoro. Offre funzionalità semplici e accessibili con un solo clic per l'esecuzione di calcoli e la generazione di report, che consentono di accelerare le valutazioni in ambienti estesi grazie a un processo decisionale automatizzato e uniforme per la piattaforma di destinazione.
Creazione di database in blocco con PowerShell È possibile usare un set di tre script di PowerShell che creano un gruppo di risorse (create_rg.ps1), il server logico in Azure (create_sqlserver.ps1) e un database SQL (create_sqldb.ps1). Gli script includono funzionalità del ciclo in modo da poter scorrere e creare tutti i server e i database necessari.
Distribuzione dello schema in blocco con MSSQL-Scripter e PowerShell Questo asset crea un gruppo di risorse, crea uno o più server logici in Azure per ospitare database SQL di Azure, esporta ogni schema da un'istanza di SQL Server locale (o più istanze di SQL Server 2005+) e importa gli schemi in database SQL di Azure.
Convertire processi di SQL Server Agent in processi di database elastici Questo script esegue la migrazione dei processi di SQL Server Agent di origine ai processi di database elastici.
Utilità per spostare gli account di accesso di SQL Server locali in database SQL di Azure Uno script di PowerShell può creare uno script di comando T-SQL per ricreare gli account di accesso e selezionare gli utenti da SQL Server locale a database SQL di Azure. Lo strumento consente il mapping automatico degli account di Active Directory di Windows Server agli account Microsoft Entra, insieme alla migrazione facoltativa degli account di accesso nativi di SQL Server.
Automatizzazione della raccolta dati Perfmon tramite Logman È possibile usare lo strumento Logman per raccogliere i dati Perfmon (per comprendere le prestazioni di base) e ottenere raccomandazioni sulla destinazione della migrazione. Questo strumento usa logman.exe per creare il comando che creerà, avvierà, arresta ed elimina i contatori delle prestazioni impostati in un'istanza remota di SQL Server.

Queste risorse sono state progettate dal team di progettazione dei dati di SQL. L'obiettivo principale di questo team consiste nello sbloccare e accelerare la modernizzazione complessa per i progetti di migrazione della piattaforma dati alla piattaforma dati di Microsoft Azure.

Passaggi successivi