Esporta (0) Stampa
Espandi tutto

Migrazione a SQL Server in una macchina virtuale di Azure

Aggiornamento: novembre 2014

Questo argomento fornisce informazioni su come eseguire la migrazione di un database di SQL Server locale esistente basato sulla piattaforma Windows Server in SQL Server nelle macchine virtuali di Azure. Questo argomento include anche un flusso di lavoro decisionale per stabilire quando eseguire l'applicazione SQL Server in una macchina virtuale nel cloud o quando eseguire la migrazione del database esistente di SQL Server nel database SQL di Azure (database SQL).

Tramite SQL Server in una macchina virtuale è possibile ridurre il costo totale della proprietà di una distribuzione, gestione e manutenzione di applicazioni breadth aziendali eseguendo facilmente la migrazione di queste applicazioni a Azure. Per la migrazione di applicazioni SQL Server esistenti alle macchine virtuali di Azure sono richieste poche operazioni o addirittura nessuna modifica al codice. Con SQL Server in una macchina virtuale, gli amministratori e gli sviluppatori possono ancora usare gli stessi strumenti di sviluppo e amministrazione disponibili in locale.

Autori: Selcin Turkarslan
Revisori: Evgeny Krivosheev, Paolo Salvatori, Lindsey Allen, Steve Howard

Sezioni dell'articolo

Usando SQL Server in una macchina virtuale di Azure è possibile abilitare molti degli scenari locali nel cloud:

  • Possibilità di sviluppare e testare rapidamente le applicazioni: sviluppare un'applicazione di database che richiede una convalida in un ambiente simile a un ambiente di produzione. Anziché acquistare un nuovo hardware per eseguire la convalida o il test della nuova applicazione, usare SQL Server in una macchina virtuale. È sufficiente creare una macchina virtuale usando l'immagine della piattaforma contenente SQL Server o caricare la propria immagine in Azure. Successivamente, connettersi alla nuova macchina, spostare i dati, impostare l'applicazione, eseguire test ed effettuare correzioni.

  • Costo totale di proprietà della piattaforma di virtualizzazione: spostare la piattaforma di virtualizzazione esistente locale in Azure. Anziché acquistare nuovo hardware per eseguire il numero sempre maggiore di applicazioni aziendali nella propria piattaforma di virtualizzazione locale, spostare queste applicazioni in Azure usando l'infrastruttura di SQL Server in una macchina virtuale di Azure.

  • Possibilità di implementare rapidamente la scalabilità su richiesta: aggiungere computer, spazio di archiviazione e risorse di rete per gestire i picchi stagionali di utilizzo dell'applicazione. Anziché acquistare solo un hardware aggiuntivo necessario per un periodo di tempo specifico, usare l'infrastruttura di SQL Server nelle macchine virtuali di Azure.

  • Disponibilità e mobilità dei dati: tramite l'hosting di database di SQL Server nelle macchine virtuali di Azure è possibile rendere disponibili i database sia nelle applicazioni locali sia in quelle cloud.

Nel seguente flusso di lavoro decisionale viene spiegato quando scegliere SQL Server in una macchina virtuale e quando invece il database SQL di Azure:

  • In caso di nuove applicazioni di database, usare il database SQL di Azure (database SQL) o SQL Server in una macchina virtuale in Azure:

    • Se il database SQL supporta tutte le funzionalità richieste, eseguire il provisioning di una nuova istanza del database SQL in Azure. Sviluppare la nuova applicazione di database usando Azure SDK e i plug-in per Visual Studio, Java, PHP o Node.js. Distribuire l'applicazione in Azure e creare le tabelle nel database SQL.

    • Se il database SQL non supporta tutte le funzionalità richieste e non si desidera investire in modifiche di riprogettazione del database dell'applicazione, effettuare il provisioning di una nuova macchina virtuale con l'immagine della piattaforma SQL Server disponibile nel portale di gestione. Creare un pacchetto di distribuzione del database tramite SQL Server Data Tools. Distribuire questo pacchetto di database in SQL Server in una macchina virtuale. È possibile gestire, aggiornare e monitorare il database tramite gli strumenti amministrativi tradizionali, ad esempio SQL Server Management Studio.

  • In caso di applicazioni di database esistenti, identificare innanzitutto i database di cui si desidera eseguire la migrazione a SQL Server nelle macchine virtuali di Azure. Successivamente, scegliere una di queste due opzioni:

    • Convertire le macchine virtuali o fisiche in file VHD Hyper-V tramite la procedura guidata di conversione della macchina da fisica a virtuale (P2V) o da virtuale a virtuale (V2V) di System Center 2012 Virtual Machine Manager. Caricare i file VHD in Archiviazione di Azure tramite il cmdlet Add-AzureVHD. Successivamente, è possibile distribuire una nuova macchina virtuale tramite il file VHD caricato. È possibile gestire, aggiornare e monitorare il database tramite gli strumenti amministrativi tradizionali, ad esempio SQL Server Management Studio.

    • Eseguire il provisioning di una nuova macchina virtuale con l'immagine della piattaforma SQL Server, nonché delle risorse di calcolo di un cloud a livello applicazione nel portale di gestione di Azure. Creare un pacchetto di distribuzione del database tramite SQL Server Data Tools e SQL Server Management Studio. Eseguire la migrazione del livello applicazione esistente nel progetto Azure usando Azure SDK e i plug-in per Visual Studio, Java, PHP o Node.js. Distribuire un livello applicazione in Azure e accedere ai dati nel cloud.

Nota importante: per altre informazioni su queste due opzioni di SQL e per vedere le motivazioni aziendali più comuni che possono avere effetto sulla scelta effettuata, si consiglia inoltre di leggere l'articolo relativo al database SQL di Azure e SQL Server nelle macchine virtuali di Azure.

Durante la migrazione del database e dei dati a SQL Server in una macchina virtuale di Azure, effettuare i seguenti passaggi nell'ordine specificato:

  1. Preparare il file di dati e di schema del database locale tramite un'applicazione livello dati, un backup o un'operazione di scollegamento. Per altre informazioni, vedere Modalità di preparazione dello schema e dei dati locali e relativo caricamento in un'istanza di SQL Server in una macchina virtuale più avanti.

  2. Facoltativamente, comprimere e crittografare i file prima di trasmetterli a Azure.

  3. Trasmettere i file di log, di dati e di schema del database in Azure. Se si usa il cmdlet Add-AzureVHD, copiare innanzitutto i file in un'unità disco rigido virtuale (VHD), quindi caricare l'unità in Azure. Per altre informazioni, vedere Modalità di spostamento del file di dati e di schema del database in una macchina virtuale di Azure più avanti.

  4. Caricare il file di dati e di schema del database in SQL Server in una macchina virtuale di Azure. Per altre informazioni, vedere Modalità di preparazione dello schema e dei dati locali e relativo caricamento in un'istanza di SQL Server in una macchina virtuale più avanti.

  5. Ricreare tutti i metadati che non possono essere creati con gli strumenti di migrazione in SQL Server nella macchina virtuale di Azure.

A partire da SQL Server 2014, è anche possibile usare la distribuzione guidata di un database di SQL Server in una macchina virtuale di Azure in SQL Server Management Studio per distribuire un database da un'istanza del motore di database a SQL Server in una macchina virtuale di Azure. Per altre informazioni, vedere Distribuire un database di SQL Server a una macchina virtuale di Azure.

In questa sezione viene descritto come preparare i file di dati e di schema del database locali. Vi sono diverse opzioni tra cui poter scegliere a seconda delle proprie esigenze:

È possibile usare un'applicazione livello dati per preparare il file di dati e di schema del database da trasmettere dall'istanza locale a Azure:

  • File con estensione DACPAC: in un file con estensione DACPAC sono contenute le definizioni di tutti gli oggetti SQL Server, quali tabelle, viste e oggetti istanza, associati al database di un utente. Tramite un file DACPAC è possibile eseguire l'acquisizione e la distribuzione dello schema del database, compreso l'aggiornamento di un database esistente. Per altre informazioni sull'estrazione di un pacchetto di applicazione livello dati da un database di SQL Server esistente, vedere Estrarre un'applicazione livello dati da un database.

  • File con estensione BACPAC: in un file con estensione BACPAC sono contenuti lo schema del database e i dati archiviati nel database. Tramite un file BACPAC viene eseguita l'acquisizione dello schema e dei dati. È l'equivalente logico di un backup di database e non può essere usato per aggiornare i database esistenti. Per altre informazioni sulla creazione di un file con estensione bacpac, vedere Esportazione di un'applicazione livello dati.

È possibile esportare lo schema e i dati di un database in un file BACPAC. Successivamente, è possibile importare lo schema e i dati in un nuovo database nel server host. Entrambe queste funzionalità sono supportate dagli strumenti di gestione del database Server Management Studio e API DACFx. Per altre informazioni, vedere Importare un file BACPAC per creare un nuovo database utente e Spazio dei nomi Microsoft.SqlServer.Dac in MSDN Library.

Note:

  • Tramite l'operazione dell'applicazione livello dati i file BACPAC o DACPAC non vengono crittografati automaticamente. È consigliabile assicurarsi che la comunicazione tra l'istanza locale e Azure sia sicura. Inoltre, è possibile crittografare il file BACPAC o DACPAC separatamente per ottenere una protezione aggiuntiva qualora il file rimanga nell'archiviazione BLOB di Azure o nell'archiviazione su disco locale.

  • L'applicazione livello dati non supporta i cataloghi full-text.

  • Per migliorare la sicurezza, gli account di accesso dell'autenticazione di SQL Server vengono archiviati in un pacchetto di applicazione livello dati senza password. Quando il pacchetto viene distribuito o aggiornato, l'account di accesso viene creato come account disabilitato con una password generata. Per abilitare gli account di accesso, è necessario accedere usando un account che dispone dell'autorizzazione ALTER ANY LOGIN e usare ALTER LOGIN per abilitare l'account di accesso e assegnare una nuova password che può essere comunicata all'utente. Questa operazione non è necessaria per gli account di accesso dell'autenticazione di Windows, in quanto le relative password non sono gestite da SQL Server.

Per spostare un database in un'altra istanza di SQL Server o in un altro server, è possibile usare le operazioni di backup e ripristino. Se la versione di SQL Server locale e di SQL Server in una macchina virtuale è la stessa, è possibile copiare un file di backup del database nella macchina virtuale e successivamente ripristinare il database. Per altre informazioni, vedere Backup e ripristino di database SQL Server.

Note:

  • L'operazione di backup e ripristino è più veloce dell'applicazione livello dati.

  • È possibile creare un backup compresso dei dati. Per altre informazioni, vedere Compressione backup.

  • È possibile usare gli strumenti noti ed esistenti quale il Backup guidato SQL Server Management Studio, nonché strumenti di terze parti.

  • Quando il database viene spostato in un'altra istanza del server, è necessario ricreare tutti i metadati delle entità e degli oggetti dipendenti nei database master e msdb nell'istanza del server di destinazione. Per altre informazioni, vedere Gestione dei metadati quando si rende disponibile un database in un'altra istanza del server.

Per spostare un database in un'altra istanza di SQL Server o in un altro server, è possibile usare le operazioni di scollegamento e collegamento. Copiare i file di dati (con estensione mdf, ndf) e quelli di log (con estensione ldf) in una cartella locale della macchina virtuale e, successivamente, scollegare il database. Per altre informazioni, vedere Spostamento di un database tramite la funzionalità di scollegamento e collegamento.

Note:

  • Lo scollegamento di un database ne determina la rimozione dall'istanza di SQL Server, mentre viene mantenuto all'interno dei relativi file di dati e dei file del log delle transazioni. Per questa operazione è necessario che il database di origine sia offline. È la soluzione ottimale per l'aggiornamento dei database o lo spostamento di database di dimensioni molto estese.

  • Non è possibile scollegare un database quando si verifica una delle seguenti condizioni:

    • Il database è replicato e pubblicato.

    • Uno snapshot del database esiste nel database.

    • È in corso il mirroring del database in una sessione di mirroring.

    • Il database è sospetto.

    • Il database è un database di sistema.

  • Si consiglia di eseguire un nuovo backup completo e di riavviare i backup differenziali prima dello scollegamento.

  • Quando si eseguono le operazioni di collegamento e scollegamento del database, è possibile usare la funzionalità Compressione dei dati per comprimere i dati all'interno di un database e ridurre le dimensioni di quest'ultimo. È inoltre possibile usare strumenti di compressione e decompressione separati sui file scollegati.

  • Quando si collega un database a un'altra istanza del server, per garantire un uso coerente a utenti e applicazioni, potrebbe essere necessario ricreare alcuni o tutti i metadati per il database, ad esempio account di accesso e processi, nell'altra istanza del server. Per altre informazioni, vedere Gestione dei metadati quando si rende disponibile un database in un'altra istanza del server.

È possibile usare le seguenti tecniche aggiuntive per copiare o spostare database tra server:

  • È possibile usare Copia guidata database in SQL Server Management Studio per copiare o spostare database tra server o per aggiornare un database di SQL Server a una versione successiva. Per altre informazioni, vedere Utilizzo di Copia guidata database. Se si desidera usare questo strumento per copiare database da risorse locali a Azure, è necessario configurare Rete virtuale di Azure per la connessione ibrida.

  • Importazione/Esportazione guidata SQL Server offre un metodo per la copia di dati tra origini dati e per la creazione di pacchetti di base. Per altre informazioni sulla procedura guidata, vedere Importazione ed esportazione guidata di SQL Server. Lo scopo di Importazione/Esportazione guidata SQL Server è la copia di dati da un'origine a una destinazione. La procedura guidata può inoltre creare automaticamente un database di destinazione e le tabelle di destinazione. Se è invece necessario copiare più database o tabelle, o altri tipi di oggetti di database, è consigliabile usare Copia guidata database. Se si desidera usare Importazione/Esportazione guidata SQL Server per copiare database da risorse locali a Azure, è necessario configurare Rete virtuale di Azure per la connessione ibrida.

  • È possibile usare la procedura guidata Genera e pubblica script per creare script per il trasferimento di un database tra le istanze del motore di database di SQL Server. Gli script generati possono essere eseguiti in un'altra istanza del motore di database. È inoltre possibile usare la procedura guidata per pubblicare direttamente il contenuto di un database in un servizio Web creato tramite Database Publishing Services. È possibile creare script per un intero database o limitare la creazione a oggetti specifici. Per altre informazioni, vedere Procedura guidata Genera e pubblica script.

  • È possibile usare la classe Transfer della libreria SMO (SQL Server Management Objects). Per altre informazioni, vedere Trasferimento di dati. Tramite SMO è possibile far rimanere online i database di origine e di destinazione e non richiedere lo spostamento dei file di database alla o dall'archiviazione BLOB di Azure in un passaggio separato. Lo svantaggio di SMO è che si userebbe una connessione client al database su entrambi i lati in cui verrebbe usato un flusso TDS e ciò risulterebbe inefficiente per set di dati di grandi dimensioni.

  • Tramite l'attività Trasferisci database è possibile copiare o spostare un database di SQL Server tra due istanze di SQL Server. Il database può essere trasferito in modalità online o offline. Nella modalità online il database rimane collegato e viene trasferito tramite SQL Management Object (SMO) per la copia degli oggetti di database. Nella modalità offline il database viene scollegato, i corrispondenti file vengono copiati o spostati e il database viene quindi collegato alla destinazione dopo essere stato trasferito correttamente.

È possibile copiare file di piccole dimensioni (file di backup di database, BACPAC o DACPAC) nella macchina virtuale usando le operazioni di copia/incolla mentre si è connessi tramite il desktop remoto.

Per trasferire file di grandi dimensioni, scegliere una delle seguenti opzioni:

  • Usare il cmdlet Add-AzureVhd per caricare i file VHD in Azure. In un file VHD può essere incluso un database. Per altre informazioni, vedere la pagina relativa alla creazione e al caricamento di un disco rigido virtuale contenente il sistema operativo Windows Server.

  • Caricare il file nell'archiviazione BLOB nello stesso data center della macchina virtuale e, successivamente, il desktop remoto nella macchina virtuale, quindi scaricare il file dall'archiviazione BLOB.

  • Copiare i file di dati e di schema in una cartella condivisa nella macchina virtuale.

  • Usare un Web browser per scaricare un database da Internet. Ad esempio, è possibile scaricare il database AdventureWorks da CodePlex

La tabella seguente descrive alcuni metodi di trasferimento comuni utilizzabili quando si desidera spostare file in una macchina virtuale di Azure. La tabella spiega inoltre i vantaggi e gli svantaggi di ogni metodo.

 

Metodo di trasferimento Vantaggi Svantaggi

Copia del file VHD nell'archiviazione BLOB di Azure tramite il cmdlet add-AzureVhd

  • Veloce, ottimizzato per Azure

  • Strumenti tramite cui è possibile gestire connessioni non affidabili

  • Trasferimento sicuro

  • Microsoft fornisce il cmdlet Add-AzureVhd. Se è richiesta un'interfaccia utente grafica, è possibile usare attualmente gli strumenti di terze parti.

  • Prima di usare il cmdlet Add-AzureVhd per caricare un file VHD in Azure, è necessario preparare un file di questo tipo e creare e caricare un certificato di gestione nel portale.

  • È necessario collegare il file VHD caricato a una macchina virtuale di Azure come disco dati.

Copia di file nella condivisione della macchina virtuale

  • Facile da usare

  • Disponibilità di più strumenti client

  • File inserito direttamente nella macchina virtuale

  • È richiesta una connessione VPN.

  • Solo pochi strumenti di copia di file supportano il riavvio e la ripresa.

Per informazioni su come installare, configurare e distribuire SQL Server in una macchina virtuale, vedere la pagina relativa all'esercitazione per il provisioning di una macchina virtuale di SQL Server in Azure. In questa esercitazione viene illustrato come usare il portale di gestione di Azure per selezionare e installare una macchina virtuale dalla raccolta. Inoltre, viene descritto come connettersi alla macchina virtuale usando il desktop remoto, nonché come connettersi a SQL Server nella macchina virtuale usando SQL Server Management Studio.

Per informazioni complete, vedere Preparazione della migrazione a SQL Server in Macchine virtuali di Azure e SQL Server Deployment in Azure Virtual Machines.

Vedere anche

Mostra:
© 2015 Microsoft