Eseguire la migrazione di un database di SQL Server a SQL Server in una macchina virtuale di Azure

Esistono diversi metodi per eseguire la migrazione di un database utente di SQL Server locale a SQL Server in una macchina virtuale di Azure. Questo articolo illustra brevemente vari metodi e consiglia quello più adatto ai diversi scenari.

Nota

Azure offre due modelli di distribuzione per creare e usare le risorse: Gestione risorse e la distribuzione classica. In questo articolo viene illustrato l'utilizzo di entrambi i modelli, ma Microsoft indica che le distribuzioni più nuove utilizzano il modello di gestione delle risorse.

Quali sono i metodi di migrazione principali?

I metodi di migrazione principali sono:

  • Esecuzione del backup locale tramite la compressione e copia manuale del file di backup nella macchina virtuale di Azure
  • Esecuzione di un backup nell’URL e ripristino nella macchina virtuale di Azure dall'URL
  • Scollegamento e successiva copia dei dati e dei file di log sull’archivio BLOB di Azure, quindi collegamento a SQL Server nella macchina virtuale di Azure dall'URL
  • Conversione della macchina fisica locale a disco rigido virtuale Hyper-V, caricamento sull'archivio BLOB di Azure e successiva distribuzione come nuova macchina virtuale tramite il disco rigido virtuale caricato
  • Spedizione del disco rigido tramite il servizio di Importazione/Esportazione di Windows
  • Se si ha una distribuzione locale di AlwaysOn, uso dell' aggiunta guidata di una replica di Azure per creare una replica in Azure e quindi eseguire il failover, indirizzando gli utenti all'istanza del database di Azure
  • Uso della replica transazionale di SQL Server per configurare l'istanza del server SQL di Azure come server di sottoscrizione e quindi disabilitare la replica, indirizzando gli utenti all'istanza del database di Azure

Suggerimento

È possibile anche usare queste tecniche per spostare database tra diverse macchine virtuali di SQL Server in Azure. Ad esempio, non esiste un modo supportato per aggiornare una macchina virtuale immagine della raccolta di SQL Server da una versione/edizione a un'altra. In questo caso si deve creare una nuova macchina virtuale di SQL Server con la nuova versione/edizione e usare una delle tecniche di migrazione descritte in questo articolo per spostare i database.

Scelta del metodo di migrazione

Per prestazioni ottimali di trasferimento dei dati, eseguire la migrazione dei file del database alla macchina virtuale di Azure usando un file di backup compresso.

Per ridurre al minimo il tempo di inattività durante il processo di migrazione del database, usare l'opzione AlwaysOn o la replica transazionale.

Se non è possibile usare i metodi sopra indicati, eseguire manualmente la migrazione del database. Se si adotta questo metodo, per prima cosa si esegue il backup del database, quindi si copia il backup del database in Azure e infine si esegue un ripristino del database. In alternativa, è possibile copiare i file del database in Azure e collegarli. Esistono diversi metodi che consentono di eseguire questo processo di migrazione manuale di un database in una macchina virtuale di Azure.

Nota

Durante l'aggiornamento a SQL Server 2014 o SQL Server 2016 da versioni precedenti di SQL Server, è necessario considerare se sono necessarie modifiche. È consigliabile prendere in considerazione tutte le dipendenze sulle funzionalità non supportate dalla nuova versione di SQL Server come parte del progetto di migrazione. Per altre informazioni sulle edizioni e sugli scenari supportati, vedere Aggiornamento a SQL Server.

Nella tabella seguente sono elencati tutti i principali metodi di migrazione e viene illustrato quando l'utilizzo di ciascun metodo è più appropriato.

Metodo Versione del database di origine Versione del database di destinazione Vincolo di dimensioni del backup del database di origine Note
Esecuzione del backup locale tramite la compressione e copia manuale del file di backup nella macchina virtuale di Azure SQL Server 2005 o versione successiva SQL Server 2005 o versione successiva Limite di archiviazione della macchina virtuale di Azure È una tecnica molto semplice e ben collaudata per spostare i database tra più computer.
Esecuzione di un backup nell’URL e ripristino nella macchina virtuale di Azure dall'URL SQL Server 2012 SP1 CU2 o versione successiva SQL Server 2012 SP1 CU2 o versione successiva < 12.8 TB per SQL Server 2016, in caso contrario < 1 TB Questo è un altro metodo per spostare il file di backup nella macchina virtuale usando l'archiviazione di Azure.
Scollegamento e successiva copia dei dati e dei file di log sull’archivio BLOB di Azure, quindi collegamento a SQL Server nella macchina virtuale di Azure dall'URL SQL Server 2005 o versione successiva SQL Server 2014 o versione successiva Limite di archiviazione della macchina virtuale di Azure Usare questo metodo quando si prevede di archiviare i file tramite il servizio di archiviazione BLOB di Azure e di collegarli a SQL Server in esecuzione su una macchina virtuale di Azure, in particolare con database di grandi dimensioni.
Conversione della macchina locale a dischi rigidi virtuali Hyper-V, caricamento sull'archivio BLOB di Azure e successiva distribuzione di una nuova macchina virtuale tramite il disco rigido virtuale caricato SQL Server 2005 o versione successiva SQL Server 2005 o versione successiva Limite di archiviazione della macchina virtuale di Azure Usare per la propria licenza di SQL Server, per la migrazione di un database che verrà eseguito su una versione precedente di SQL Server o per la migrazione combinata dei database di sistema e utente nell'ambito della migrazione di database dipendenti da altri database utente e/o di sistema.
Spedizione del disco rigido tramite il servizio di Importazione/Esportazione di Windows SQL Server 2005 o versione successiva SQL Server 2005 o versione successiva Limite di archiviazione della macchina virtuale di Azure Usare il servizio di importazione/esportazione di Windows quando il metodo della copia manuale è troppo lento, ad esempio con database di grandi dimensioni
Uso della procedura guidata per l'aggiunta della replica di Azure SQL Server 2012 o versione successiva SQL Server 2012 o versione successiva Limite di archiviazione della macchina virtuale di Azure Riduce al minimo il tempo di inattività; da usare quando si ha una distribuzione locale di AlwaysOn
Uso della replica transazionale di SQL Server SQL Server 2005 o versione successiva SQL Server 2005 o versione successiva Limite di archiviazione della macchina virtuale di Azure Da usare quando è necessario ridurre al minimo il tempo di inattività e si ha una distribuzione locale di AlwaysOn

Backup e ripristino

Eseguire il backup del database con la compressione, copiare il backup nella macchina virtuale e ripristinare il database. Se il file di backup è superiore a 1 TB, è necessario eseguirne lo striping perché le dimensioni massime del disco di una macchina virtuale sono pari a 1 TB. Per eseguire la migrazione di un database utente tramite il metodo manuale, attenersi ai passaggi generali seguenti:

  1. Eseguire un backup completo del database su una posizione locale.
  2. Creare o caricare una macchina virtuale con la versione di SQL Server desiderata.
  3. Configurare la connettività in base ai requisiti specifici. Vedere Connettersi a una macchina virtuale di SQL Server in Azure (Resource Manager).
  4. Copiare i file di backup sulla macchina virtuale utilizzando il desktop remoto, Esplora risorse o il comando di copia da un prompt dei comandi.

Backup nell’URL e ripristino

Invece di eseguire il backup in un file locale è possibile usare il backup nell'URL e quindi eseguire il ripristino dall'URL alla macchina virtuale. Con SQL Server 2016, i set di backup con striping sono supportati, sono consigliati per le prestazioni e necessari per superare i limiti di dimensione per BLOB. Per i database di dimensioni molto grandi è consigliabile usare il servizio di importazione/esportazione di Windows .

Rimuovere e allegare dall'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 questa opzione se si desidera che i file del database fisico risiedano nell'archivio BLOB. Ciò può risultare 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.

Conversione alla macchina virtuale, caricamento nell’URL e distribuzione come nuova macchina virtuale

Utilizzare questo metodo per eseguire la migrazione di tutti i database di sistema e utente in un'istanza di SQL Server locale alla macchina virtuale 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 usando Microsoft Virtual Machine Converter.
  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.

Spedizione del 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 datacenter di Azure, dove i dati verranno caricati sull'account di archiviazione.

Passaggi successivi

Per altre informazioni sull'esecuzione di SQL Server in Macchine virtuali di Azure, vedere Panoramica di SQL Server in Macchine virtuali di Azure.

Per istruzioni sulla creazione di una macchina virtuale di SQL Server di Azure da un'immagine acquisita, vedere Tips & Tricks on 'cloning' Azure SQL virtual machines from captured images (Suggerimenti per clonare macchine virtuali di SQL Server di Azure da immagini acquisite) nel blog dei tecnici di SQL Server CSS.