Eseguire la migrazione di un database di SQL Server a SQL Server in una macchina virtuale di AzureMigrate a SQL Server database to SQL Server in an Azure VM

Esistono diversi metodi per eseguire la migrazione di un database utente di SQL Server locale a SQL Server in una macchina virtuale di Azure.There are a number of methods to migrate an on-premises SQL Server user database to SQL Server in an Azure VM. Questo articolo illustra brevemente vari metodi e consiglia quello più adatto ai diversi scenari.This article will briefly discuss various methods and recommend the best method for various scenarios.

Nota

Azure offre due modelli di distribuzione per creare e usare le risorse: Gestione risorse e la distribuzione classica.Azure has two different deployment models for creating and working with resources: Resource Manager and classic. 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.This article covers using both models, but Microsoft recommends that most new deployments use the Resource Manager model.

Quali sono i metodi di migrazione principali?What are the primary migration methods?

I metodi di migrazione principali sono:The primary migration methods are:

  • Esecuzione del backup locale tramite la compressione e copia manuale del file di backup nella macchina virtuale di AzurePerform on-premises backup using compression and manually copy the backup file into the Azure virtual machine
  • Esecuzione di un backup nell’URL e ripristino nella macchina virtuale di Azure dall'URLPerform a backup to URL and restore into the Azure virtual machine from the 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'URLDetach and then copy the data and log files to Azure blob storage and then attach to SQL Server in Azure VM from 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 caricatoConvert on-premises physical machine to Hyper-V VHD, upload to Azure Blob storage, and then deploy as new VM using uploaded VHD
  • Spedizione del disco rigido tramite il servizio di Importazione/Esportazione di WindowsShip hard drive using Windows Import/Export Service
  • 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 AzureIf you have an AlwaysOn deployment on-premises, use the Add Azure Replica Wizard to create a replica in Azure and then failover, pointing users to the Azure database instance
  • 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 AzureUse SQL Server transactional replication to configure the Azure SQL Server instance as a subscriber and then disable replication, pointing users to the Azure database instance

Suggerimento

È possibile anche usare queste tecniche per spostare database tra diverse macchine virtuali di SQL Server in Azure.You can also use these same techniques to move databases between SQL Server VMs 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.For example, there is no supported way to upgrade a SQL Server gallery-image VM from one version/edition to another. 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.In this case, you should create a new SQL Server VM with the new version/edition, and then use one of the migration techniques in this article to move your databases.

Scelta del metodo di migrazioneChoosing your migration method

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.For optimum data transfer performance, migrate the database files into the Azure VM using a compressed backup file.

Per ridurre al minimo il tempo di inattività durante il processo di migrazione del database, usare l'opzione AlwaysOn o la replica transazionale.To minimize downtime during the database migration process, use either the AlwaysOn option or the transactional replication option.

Se non è possibile usare i metodi sopra indicati, eseguire manualmente la migrazione del database.If it is not possible to use the above methods, manually migrate your 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.Using this method, you will generally start with a database backup followed by a copy of the database backup into Azure and then perform a database restore. In alternativa, è possibile copiare i file del database in Azure e collegarli.You can also copy the database files themselves into Azure and then attach them. Esistono diversi metodi che consentono di eseguire questo processo di migrazione manuale di un database in una macchina virtuale di Azure.There are several methods by which you can accomplish this manual process of migrating a database into an Azure VM.

Nota

Durante l'aggiornamento a SQL Server 2014 o SQL Server 2016 da versioni precedenti di SQL Server, è necessario considerare se sono necessarie modifiche.When you upgrade to SQL Server 2014 or SQL Server 2016 from older versions of SQL Server, you should consider whether changes are needed. È consigliabile prendere in considerazione tutte le dipendenze sulle funzionalità non supportate dalla nuova versione di SQL Server come parte del progetto di migrazione.We recommend that you address all dependencies on features not supported by the new version of SQL Server as part of your migration project. Per altre informazioni sulle edizioni e sugli scenari supportati, vedere Aggiornamento a SQL Server.For more information on the supported editions and scenarios, see Upgrade to SQL Server.

Nella tabella seguente sono elencati tutti i principali metodi di migrazione e viene illustrato quando l'utilizzo di ciascun metodo è più appropriato.The following table lists each of the primary migration methods and discusses when the use of each method is most appropriate.

MetodoMethod Versione del database di origineSource database version Versione del database di destinazioneDestination database version Vincolo di dimensioni del backup del database di origineSource database backup size constraint NoteNotes
Esecuzione del backup locale tramite la compressione e copia manuale del file di backup nella macchina virtuale di AzurePerform on-premises backup using compression and manually copy the backup file into the Azure virtual machine SQL Server 2005 o versione successivaSQL Server 2005 or greater SQL Server 2005 o versione successivaSQL Server 2005 or greater Limite di archiviazione della macchina virtuale di AzureAzure VM storage limit È una tecnica molto semplice e ben collaudata per spostare i database tra più computer.This is a very simple and well-tested technique for moving databases across machines.
Esecuzione di un backup nell’URL e ripristino nella macchina virtuale di Azure dall'URLPerform a backup to URL and restore into the Azure virtual machine from the URL SQL Server 2012 SP1 CU2 o versione successivaSQL Server 2012 SP1 CU2 or greater SQL Server 2012 SP1 CU2 o versione successivaSQL Server 2012 SP1 CU2 or greater < 12.8 TB per SQL Server 2016, in caso contrario < 1 TB< 12.8 TB for SQL Server 2016, otherwise < 1 TB Questo è un altro metodo per spostare il file di backup nella macchina virtuale usando l'archiviazione di Azure.This method is just another way to move the backup file to the VM using Azure storage.
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'URLDetach and then copy the data and log files to Azure blob storage and then attach to SQL Server in Azure virtual machine from URL SQL Server 2005 o versione successivaSQL Server 2005 or greater SQL Server 2014 o versione successivaSQL Server 2014 or greater Limite di archiviazione della macchina virtuale di AzureAzure VM storage limit 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.Use this method when you plan to store these files using the Azure Blob storage service and attach them to SQL Server running in an Azure VM, particularly with very large databases
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 caricatoConvert on-premises machine to Hyper-V VHDs, upload to Azure Blob storage, and then deploy a new virtual machine using uploaded VHD SQL Server 2005 o versione successivaSQL Server 2005 or greater SQL Server 2005 o versione successivaSQL Server 2005 or greater Limite di archiviazione della macchina virtuale di AzureAzure VM storage limit 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.Use when bringing your own SQL Server license, when migrating a database that you will run on an older version of SQL Server, or when migrating system and user databases together as part of the migration of database dependent on other user databases and/or system databases.
Spedizione del disco rigido tramite il servizio di Importazione/Esportazione di WindowsShip hard drive using Windows Import/Export Service SQL Server 2005 o versione successivaSQL Server 2005 or greater SQL Server 2005 o versione successivaSQL Server 2005 or greater Limite di archiviazione della macchina virtuale di AzureAzure VM storage limit Usare il servizio di importazione/esportazione di Windows quando il metodo della copia manuale è troppo lento, ad esempio con database di grandi dimensioniUse the Windows Import/Export Service when manual copy method is too slow, such as with very large databases
Uso della procedura guidata per l'aggiunta della replica di AzureUse the Add Azure Replica Wizard SQL Server 2012 o versione successivaSQL Server 2012 or greater SQL Server 2012 o versione successivaSQL Server 2012 or greater Limite di archiviazione della macchina virtuale di AzureAzure VM storage limit Riduce al minimo il tempo di inattività; da usare quando si ha una distribuzione locale di AlwaysOnMinimizes downtime, use when you have an AlwaysOn on-premises deployment
Uso della replica transazionale di SQL ServerUse SQL Server transactional replication SQL Server 2005 o versione successivaSQL Server 2005 or greater SQL Server 2005 o versione successivaSQL Server 2005 or greater Limite di archiviazione della macchina virtuale di AzureAzure VM storage limit Da usare quando è necessario ridurre al minimo il tempo di inattività e si ha una distribuzione locale di AlwaysOnUse when you need to minimize downtime and do not have an AlwaysOn on-premises deployment

Backup e ripristinoBackup and restore

Eseguire il backup del database con la compressione, copiare il backup nella macchina virtuale e ripristinare il database.Back up your database with compression, copy the backup to the VM, and then restore the 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.If your backup file is larger than 1 TB, you must stripe it because the maximum size of a VM disk is 1 TB. Per eseguire la migrazione di un database utente tramite il metodo manuale, attenersi ai passaggi generali seguenti:Use the following general steps to migrate a user database using this manual method:

  1. Eseguire un backup completo del database su una posizione locale.Perform a full database backup to an on-premises location.
  2. Creare o caricare una macchina virtuale con la versione di SQL Server desiderata.Create or upload a virtual machine with the version of SQL Server desired.
  3. Configurare la connettività in base ai requisiti specifici.Setup connectivity based on your requirements. Vedere Connettersi a una macchina virtuale di SQL Server in Azure (Resource Manager).See Connect to a SQL Server Virtual Machine on 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.Copy your backup file(s) to your VM using remote desktop, Windows Explorer or the copy command from a command prompt.

Backup nell’URL e ripristinoBackup to URL and restore

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.Instead of backing up to a local file, you can use the backup to URL and then restore from URL to the VM. 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.With SQL Server 2016, striped backup sets are supported, are recommended for performance, and required to exceed the size limits per blob. Per i database di dimensioni molto grandi è consigliabile usare il servizio di importazione/esportazione di Windows .For very large databases, the use of the Windows Import/Export Service is recommended.

Rimuovere e allegare dall'URLDetach and attach from URL

Rimuovere il database e i file di log e trasferirli nell'archivio BLOB di Azure.Detach your database and log files and transfer them to Azure Blob storage. Allegare il database dall'URL nella macchina virtuale di Azure.Then attach the database from the URL on your Azure VM. Usare questa opzione se si desidera che i file del database fisico risiedano nell'archivio BLOB.Use this if you want the physical database files to reside in Blob storage. Ciò può risultare utile per i database di dimensioni molto grandi.This might be useful for very large databases. Per eseguire la migrazione di un database utente tramite il metodo manuale, attenersi ai passaggi generali seguenti:Use the following general steps to migrate a user database using this manual method:

  1. Scollegare i file del database dall'istanza del database locale.Detach the database files from the on-premises database instance.
  2. Copiare i file del database scollegati nell'archivio BLOB di Azure usando l' utilità della riga di comando AZCopy.Copy the detached database files into Azure blob storage using the AZCopy command-line utility.
  3. Collegare i file del database dall'URL di Azure all'istanza di SQL Server nella macchina virtuale di Azure.Attach the database files from the Azure URL to the SQL Server instance in the Azure VM.

Conversione alla macchina virtuale, caricamento nell’URL e distribuzione come nuova macchina virtualeConvert to VM and upload to URL and deploy as new VM

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.Use this method to migrate all system and user databases in an on-premises SQL Server instance to Azure virtual machine. Per eseguire la migrazione di un'intera istanza di SQL Server utilizzando il metodo manuale, attenersi ai passaggi generali seguenti:Use the following general steps to migrate an entire SQL Server instance using this manual method:

  1. Convertire le macchine fisiche o virtuali in dischi rigidi virtuali Hyper-V usando Microsoft Virtual Machine Converter.Convert physical or virtual machines to Hyper-V VHDs by using Microsoft Virtual Machine Converter.
  2. Caricare i file dei dischi rigidi virtuali su Archiviazione di Azure usando il cmdlet Add-AzureVHD.Upload VHD files to Azure Storage by using the Add-AzureVHD cmdlet.
  3. Distribuire una nuova macchina virtuale utilizzando il disco rigido virtuale caricato.Deploy a new virtual machine by using the uploaded VHD.

Nota

Per eseguire la migrazione di un'intera applicazione, è consigliabile usare Azure Site Recovery.To migrate an entire application, consider using Azure Site Recovery].

Spedizione del disco rigidoShip hard drive

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.Use the Windows Import/Export Service method to transfer large amounts of file data to Azure Blob storage in situations where uploading over the network is prohibitively expensive or not feasible. 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.With this service, you send one or more hard drives containing that data to an Azure data center, where your data will be uploaded to your storage account.

Passaggi successiviNext Steps

Per altre informazioni sull'esecuzione di SQL Server in Macchine virtuali di Azure, vedere Panoramica di SQL Server in Macchine virtuali di Azure.For more information about running SQL Server on Azure Virtual Machines, see SQL Server on Azure Virtual Machines overview.

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.For instructions on creating an Azure SQL Server Virtual Machine from a captured image, see Tips & Tricks on ‘cloning’ Azure SQL virtual machines from captured images on the CSS SQL Server Engineers blog.