Guida alla migrazione: da server SQL a SQL Server in VM Azure

Si applica a:SQL Server su VM Azure

In questa guida si apprenderà come individuare, valutare ed eseguire la migrazione dei database utente da SQL Server a un'istanza di SQL Server in VM Azure da strumenti e tecniche in base alle esigenze.

È possibile eseguire la migrazione di SQL Server in esecuzione in locale o in:

  • SQL Server in macchine virtuali
  • Amazon Web Services (AWS) EC2.
  • Amazon Relational Database Service (AWS RDS).
  • Compute Engine (Google Cloud Platform [GCP]).

Per informazioni sulle strategie di migrazione aggiuntive, vedere la panoramica della migrazione delle macchine virtuali di SQL Server. Per altre guide alla migrazione, vedere Guide alla migrazione del database di Azure.

Diagram that shows a migration process flow.

Prerequisiti

La migrazione a SQL Server in VM Azure richiede le risorse seguenti:

Pre-migrazione

Prima di iniziare la migrazione, è necessario individuare la topologia dell'ambiente SQL e valutare la fattibilità della migrazione prevista.

Rilevazione

Il servizio valuta l'idoneità per la migrazione degli asset locali, esegue il dimensionamento in base alle prestazioni e offre stime dei costi per l'esecuzione degli asset locali in Azure. Per pianificare la migrazione, usare Azure Migrate per identificare le origini dati esistenti e i dettagli sulle funzionalità usate dalle istanze di SQL Server. Questo processo prevede un'analisi della rete finalizzata a identificare tutte le istanze SQL dell'organizzazione insieme alla versione e alle funzionalità in uso.

Importante

Quando si sceglie una macchina virtuale di Azure di destinazione per l'istanza di SQL Server, assicurarsi di prendere in considerazione le linee guida sulle prestazioni per SQL Server in VM Azure.

Per gli strumenti ri rilevamento vedere Servizi e strumenti disponibili per gli scenari di migrazione dei dati.

Valutazione

Quando si esegue la migrazione da SQL Server locale a SQL Server in VM Azure, è improbabile che si verifichino problemi di compatibilità o parità delle funzionalità se le versioni di SQL Server di origine e destinazione sono le stesse. Se non si aggiorna la versione di SQL Server, ignorare questo passaggio e passare a Esegui migrazione.

Prima della migrazione, è comunque consigliabile eseguire una valutazione dei database di SQL Server per identificare i blocchi di migrazione (se presenti) e l'estensione di migrazione SQL di Azure per Azure Data Studio esegue questa operazione prima della migrazione.

Nota

Se si valuta l'intero patrimonio di dati SQL Server su larga scala in VMWare, usare Azure Migrate per ottenere raccomandazioni per la distribuzione di Azure SQL, il ridimensionamento delle entità di destinazione e le stime mensili.

Valutazione dei database utente

L'estensione di migrazione SQL di Azure per Azure Data Studio offre un'esperienza semplice basata su procedura guidata per valutare, ottenere consigli su Azure ed eseguire la migrazione dei database di SQL Server in locale a SQL Server in VM Azure. Inoltre, evidenziando eventuali blocchi o avvisi di migrazione, l'estensione include anche un'opzione per le raccomandazioni di Azure per raccogliere i dati sulle prestazioni dei database per consigliare un'istanza corretta di SQL Server in VM Azure per soddisfare le esigenze di prestazioni del carico di lavoro (con il prezzo minimo).

Per altre informazioni sulle raccomandazioni di Azure, vedere Consigli di Azure di dimensioni appropriate per i database di SQL Server locali.

Importante

Per valutare i database usando l'estensione di migrazione SQL di Azure, assicurarsi che gli account di accesso usati per connettere l'istanza di SQL Server di origine siano membri del ruolo del server sysadmin o disporre dell'autorizzazione CONTROL SERVER.

Per un aggiornamento della versione, usare Data Migration Assistant per valutare le istanze di SQL Server locali se si esegue l'aggiornamento a un'istanza di SQL Server in VM Azure con una versione successiva per comprendere le lacune tra le versioni di origine e di destinazione.

Valutare le applicazioni

In genere, un livello applicazione accede ai database utente per rendere persistenti e modificare i dati. Data Migration Assistant può valutare il livello di accesso ai dati di un'applicazione in due modi:

  • Usando gli eventi estesi acquisiti o le tracce di SQL Server Profiler dei database utente. È anche possibile usare Database Experimentation Assistant per creare un log di traccia che può essere usato anche per i test A/B.
  • Usando Data Access Migration Toolkit (anteprima) che fornisce l'individuazione e la valutazione delle query SQL all'interno del codice e viene usato per eseguire la migrazione del codice sorgente dell'applicazione da una piattaforma di database a un'altra. Questo strumento supporta tipi di file comuni, ad esempio C#, Java, XML e testo normale. Per una guida su come eseguire una valutazione di Data Access Migration Toolkit, vedere il post di blog Usare Data Migration Assistant.

Durante la valutazione dei database utente, usare Data Migration Assistant per importare file di traccia acquisiti o file di Data Access Migration Toolkit.

Valutazioni su larga scala

Se si dispone di più server che richiedono la valutazione dell'idoneità di Azure, è possibile automatizzare il processo usando gli script usando una delle opzioni seguenti. Per altre informazioni sull'uso degli script, vedere Eseguire la migrazione di database su larga scala usando l'automazione.

Per la creazione di report di riepilogo in grandi aree è possibile consolidare le valutazioni di Data Migration Assistant in Azure Migrate.

Valutare un database con Data Migration Assistant

Per lo scenario di aggiornamento, potrebbe essere disponibile una serie di raccomandazioni per garantire che i database utente funzionino correttamente dopo l'aggiornamento. Data Migration Assistant fornisce informazioni dettagliate sugli oggetti e le risorse interessati per risolvere ogni problema. Assicurarsi di risolvere tutte le modifiche di rilievo e il comportamento prima di avviare l'aggiornamento di produzione.

Per le funzionalità deprecate, è possibile scegliere di eseguire i database utente nella modalità di compatibilità originale se si desidera evitare di apportare queste modifiche e velocizzare la migrazione. Questa azione impedirà di aggiornare la compatibilità del database fino a quando non vengono risolti gli elementi deprecati.

Attenzione

Non tutte le versioni di SQL Server supportano tutte le modalità di compatibilità. Verificare che la versione di SQL Server di destinazione supporti la compatibilità del database scelta. Ad esempio, SQL Server 2019 non supporta i database con compatibilità di livello 90 ,ovvero SQL Server 2005. Questi database richiederebbero almeno un aggiornamento al livello di compatibilità 100.

Migrazione

Dopo aver completato i passaggi di pre-migrazione, è possibile eseguire la migrazione dei database utente e dei componenti. Eseguire la migrazione dei database usando il metodo di migrazione preferito.

Le sezioni seguenti forniscono opzioni per l'esecuzione di una migrazione in ordine di preferenza:

Eseguire la migrazione usando l'estensione di migrazione SQL di Azure per Azure Data Studio (tempi di inattività minimi)

Per eseguire una migrazione con tempi di inattività minimi con Azure Data Studio, seguire questa procedura dettagliata. Per un'esercitazione dettagliata vedere Eseguire la migrazione online di SQL Server a SQL Server su Azure Virtual Machines in Azure Data Studio:

  1. Scaricare e installare Azure Data Studio e l'estensione di Migrazione SQL di Azure.
  2. Eseguire la migrazione usando l'estensione di Azure SQL per Azure Data Studio.
  3. Selezionare i database per la valutazione e visualizzare i problemi di idoneità o di preparazione della migrazione (se presenti). Inoltre, raccogliere i dati sulle prestazioni e ottenere consigli di Azure appropriati.
  4. Selezionare l'account Azure e l'istanza di SQL Server di destinazione in Azure Machine dalla sottoscrizione.
  5. Selezionare il percorso dei backup del database. I backup del database possono trovarsi in una condivisione di rete locale o in Archiviazione BLOB di Una serie Azure contenitore.
  6. Creare un nuovo Servizio Migrazione del database di Azure usando la procedura guidata in Azure Data Studio. Se in precedenza è stato creato un Servizio Migrazione del database di Azure usando Azure Data Studio, è possibile riutilizzare lo stesso, se necessario.
  7. Facoltativo: è necessario scaricare e installare il runtime di integrazione self-hosted in una macchina con accesso all'istanza di SQL Server di origine e alla posizione contenente i file di backup se i backup si trovano in una condivisione di rete locale.
  8. Dopo aver avviato la migrazione del database, è possibile monitorare lo stato di avanzamento in Azure Data Studio. È anche possibile tenere traccia dello stato di avanzamento nel portale di Azure nella risorsa del servizio Migrazione del database di Azure.
  9. Completare il cutover.
    1. Arrestare tutte le transazioni in ingresso nel database di origine.
    2. Apportare le modifiche alla configurazione dell'applicazione per puntare al database di destinazione in SQL Server in Macchine virtuali di Azure.
    3. Eseguire un backup del log finale del database di origine nella posizione di backup specificata.
    4. Assicurarsi che tutti i backup del database abbiano lo stato Ripristinato nella pagina dei dettagli del monitoraggio.
    5. Selezionare Completare cutover nella pagina dei dettagli del monitoraggio.

Backup e ripristino

Per eseguire una migrazione standard usando il backup e il ripristino:

  1. Configurare la connettività a SQL Server in VM Azure in base alle esigenze. Per altre informazioni, vedere Connettersi a una macchina virtuale di SQL Server in Azure (Resource Manager).
  2. Sospendere o arrestare tutte le applicazioni che usano database destinati alla migrazione.
  3. Verificare che i database utente siano inattivi usando la modalità utente singolo.
  4. Eseguire un backup completo del database su una posizione locale.
  5. Copiare i file di backup locali nella macchina virtuale usando un desktop remoto, Azure Data Explorer o l'utilità della riga di comando AzCopy. È consigliabile eseguire backup superiori a 2 TB.
  6. Si prevede di eseguire la migrazione del database a SQL Server in Macchine virtuali di Azure.

Rimuovere e allegare da un URL

Rimuovere il database e i file di log e trasferirli nell'archivio BLOB di Azure. Allegare il database dall'URL nella macchina virtuale di Azure. Usare questo metodo se si desidera che i file di database fisici risiedano nell'archivio BLOB, che potrebbe essere utile per i database di dimensioni molto grandi. Per eseguire la migrazione di un database utente tramite il metodo manuale, attenersi ai passaggi generali seguenti:

  1. Scollegare i file del database dall'istanza del database locale.
  2. Copiare i file del database scollegati nell'archivio BLOB di Azure usando l'utilità della riga di comando AZCopy.
  3. Collegare i file del database dall'URL di Azure all'istanza di SQL Server nella macchina virtuale di Azure.

Convertire in una macchina virtuale, caricare in un URL e distribuire come nuova macchina virtuale

Usare questo metodo per eseguire la migrazione di tutti i database di sistema e utente in un'istanza di SQL Server locale a una macchina virtuale di Azure. Per eseguire la migrazione di un'intera istanza di SQL Server utilizzando il metodo manuale, attenersi ai passaggi generali seguenti:

  1. Convertire le macchine fisiche o virtuali in dischi rigidi virtuali Hyper-V.
  2. Caricare i file dei dischi rigidi virtuali su Archiviazione di Azure usando il cmdlet Add-AzureVHD.
  3. Distribuire una nuova macchina virtuale utilizzando il disco rigido virtuale caricato.

Nota

Per eseguire la migrazione di un'intera applicazione, è consigliabile usare Azure Site Recovery.

Log shipping

Il log shipping replica i file di log transazionali dall'ambiente locale a un'istanza di SQL Server in una macchina virtuale di Azure. Ciò garantisce tempi di inattività minimi durante il failover e ha un sovraccarico di configurazione inferiore rispetto alla configurazione di un gruppo di disponibilità Always On.

Per altre informazioni, vedere Compilazione nativa di tabelle e stored procedure.

Spedire un disco rigido

Usare il metodo del servizio di importazione/esportazione di Windows per trasferire grandi quantità di dati di file sull'archivio BLOB di Azure in situazioni in cui il caricamento in rete è eccessivamente costoso o non è possibile. Con questo servizio, è possibile inviare uno o più dischi rigidi contenenti tali dati a un data center di Azure, dove i dati verranno caricati nell'account di archiviazione.

Eseguire la migrazione di oggetti esterni ai database utente

Potrebbero essere necessari altri oggetti di SQL Server per il funzionamento senza problemi dei database utente dopo la migrazione.

La tabella seguente fornisce un elenco di componenti e metodi di migrazione consigliati che possono essere completati prima o dopo la migrazione dei database utente.

Funzionalità Componente Metodi di migrazione
Database Modello Invio di query con SQL Server Management Studio.
Il database tempdb Pianificare lo spostamento tempdb nel disco temporaneo della macchina virtuale di Azure (SSD) per ottenere prestazioni ottimali. Assicurarsi di selezionare una dimensione di macchina virtuale con un'unità SSD locale sufficiente per supportare tempdb.
Database utente con FileStream Usare i metodi di backup e ripristino per la migrazione. Data Migration Assistant non supporta i database con FileStream.
Sicurezza SQL Server e account di accesso di Windows Usare Data Migration Assistant per eseguire la migrazione degli account di accesso utente.
Ruoli SQL Server Invio di query con SQL Server Management Studio.
Provider del servizio di crittografia È consigliabile eseguire la conversione per usare Azure Key Vault. Questa procedura usa il provider di risorse della macchina virtuale SQL.
Oggetti server Dispositivi di backup Sostituire con il backup del database usando Backup di Azure o scrivere backup in Archiviazione di Azure (SQL Server 2012 SP1 CU2 +). Questa procedura usa il provider di risorse della macchina virtuale SQL.
Server collegati Invio di query con SQL Server Management Studio.
Trigger server Invio di query con SQL Server Management Studio.
Replica Pubblicazioni locali Invio di query con SQL Server Management Studio.
Sottoscrittori locali Invio di query con SQL Server Management Studio.
PolyBase PolyBase Invio di query con SQL Server Management Studio.
Gestione Posta elettronica database Invio di query con SQL Server Management Studio.
SQL Server Agent Processi Invio di query con SQL Server Management Studio.
Avvisi Invio di query con SQL Server Management Studio.
Operatori Invio di query con SQL Server Management Studio.
Proxy Invio di query con SQL Server Management Studio.
Sistema operativo File e condivisione file Prendere nota di tutti gli altri file o condivisioni file usati dai server SQL e di replicare nella destinazione Macchine virtuali di Azure.

Dopo la migrazione

Dopo aver completato la fase di migrazione, è necessario completare una serie di attività post-migrazione per assicurarsi che tutto funzioni nel modo più corretto ed efficiente possibile.

Correggere le applicazioni

Dopo la migrazione dei dati nell'ambiente di destinazione, tutte le applicazioni che in precedenza usavano l'origine devono iniziare a usare la destinazione. Per completare questa attività, in alcuni casi sarà necessario apportare modifiche alle applicazioni.

Applicare eventuali correzioni consigliate da Data Migration Assistant ai database utente. È necessario creare uno script per queste correzioni per garantire la coerenza e consentire l'automazione.

Eseguire test

L'approccio di test per la migrazione del database prevede le attività seguenti:

  1. Sviluppare i test di convalida: per testare la migrazione del database, è necessario usare query SQL. È necessario creare le query di convalida da eseguire sia sul database di origine che su quello di destinazione. Le query di convalida devono essere estese all'ambito definito.
  2. Configurare un ambiente di test: l'ambiente di test deve contenere una copia del database di origine e del database di destinazione. Assicurarsi di isolare l'ambiente di test.
  3. Eseguire i test di convalida: eseguire i test di convalida sull'origine e sulla destinazione, quindi analizzare i risultati.
  4. Eseguire test delle prestazioni: eseguire test delle prestazioni sull'origine e sulla destinazione, quindi analizzare e confrontare i risultati.

Suggerimento

Usare Database Experimentation Assistant per facilitare la valutazione delle prestazioni di SQL Server di destinazione.

Ottimizzazione

La fase di post-migrazione è fondamentale per risolvere eventuali problemi di accuratezza dei dati e verificarne la completezza, nonché per risolvere possibili problemi di prestazioni con il carico di lavoro.

Per altre informazioni su questi problemi e sui passaggi per attenuarli, vedere:

Passaggi successivi

Per verificare la disponibilità dei servizi applicabili a SQL Server, vedere il Centro infrastruttura globale di Azure.

Per la matrice dei servizi e degli strumenti di Microsoft e di terze parti disponibili per agevolare diversi scenari di migrazione di database e dati, nonché per attività speciali, vedere Strumenti e servizi per la migrazione dei dati.

Per altre informazioni su Azure SQL, vedere:

Per altre informazioni sul framework e sul ciclo di adozione per le migrazioni cloud, vedere:

Per informazioni sulle licenze, vedere:

Per valutare il livello di accesso all'applicazione, vedere Data Access Migration Toolkit (anteprima).

Per informazioni su come eseguire test A/B a livello di accesso ai dati, vedere Panoramica Database Experimentation Assistant.