Esporta (0) Stampa
Espandi tutto
Questo argomento non è stato ancora valutato - Valuta questo argomento

Migrazione a SQL Server in una macchina virtuale di Windows Azure

Aggiornamento: marzo 2014

A partire dalla versione Windows Azure 2012, è possibile eseguire facilmente la migrazione delle applicazioni SQL Server esistenti compilate nella piattaforma Windows Server alle Macchine virtuali di Windows Azure. In questo argomento viene fornita una panoramica della modalità di migrazione dei database di SQL Server locali al cloud tramite SQL Server nelle macchine virtuali di Windows Azure. Nell'argomento è inoltre incluso 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 di SQL Server esistente al database SQL di Windows 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 Windows Azure. Per la migrazione di applicazioni SQL Server esistenti alle macchine virtuali di Windows 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 utilizzare gli stessi strumenti di sviluppo e amministrazione disponibili in locale.

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

Sezioni dell'articolo

Situazioni in cui utilizzare SQL Server in una macchina virtuale di Windows Azure

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

  • Sviluppo e test rapidi di applicazioni: sviluppare un'applicazione di database per la quale viene richiesta la convalida in un ambiente come quello di produzione. Anziché acquistare un nuovo hardware per eseguire la convalida o il test della nuova applicazione, utilizzare SQL Server in una macchina virtuale. È sufficiente creare una macchina virtuale utilizzando l'immagine della piattaforma contenente SQL Server o caricare la propria immagine in Windows 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 locale in Windows Azure. Anziché acquistare un nuovo hardware per eseguire il numero sempre maggiore di applicazioni breadth aziendali nella propria piattaforma di virtualizzazione locale, spostare queste applicazioni in Windows Azure utilizzando l'infrastruttura di SQL Server in una macchina virtuale di Windows Azure.

  • Scala su richiesta rapida: utilizzare un computer aggiuntivo, un archivio 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, utilizzare l'infrastruttura di SQL Server nelle macchine virtuali di Windows Azure.

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

Scelta tra SQL Server nella macchina virtuale di Windows Azure e il database SQL di Windows Azure

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

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

    • Se il database SQL supporta tutte le funzionalità richieste, eseguire il provisioning di una nuova istanza del database SQL in Windows Azure. Sviluppare la nuova applicazione di database utilizzando Windows Azure SDK e i plug-in per Visual Studio 2010, Java, PHP o Node.js. Distribuire l'applicazione in Windows 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 nel database dell'applicazione, effettuare il provisioning di una nuova macchina virtuale con l'immagine della piattaforma SQL Server disponibile nel nuovo 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 Windows 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 nel Servizio di archiviazione Windows Azure tramite lo strumento della riga di comando CSUpload. 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 Windows Azure. Creare un pacchetto di distribuzione del database tramite SQL Server Data Tools e SQL Server Management Studio. Eseguire la migrazione al livello applicazione esistente al progetto Windows Azure tramite Windows Azure SDK e i plug-in per Visual Studio 2010, Java, PHP o Node.js. Distribuire un livello applicazione in Windows Azure e accedere ai dati nel cloud.

Migrazione dei dati e dello schema del database a SQL Server in una macchina virtuale di Windows Azure

Durante la migrazione del database e dei dati a SQL Server in una macchina virtuale di Windows Azure, effettuare i passaggi seguenti 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 ulteriori informazione, vedere Modalità di preparazione dello schema e dei dati locali e relativo caricamento in un'istanza di SQL Server in una macchina virtuale di seguito.

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

  3. Trasmettere i file di log, di dati e di schema del database in Windows Azure. Se si utilizza lo strumento CSUpload, inserire innanzitutto i file in un'unità disco rigido virtuale (VHD), quindi caricare quest'ultima in Windows Azure. Per ulteriori informazioni, vedere Modalità di spostamento del file di dati e di schema del database in una macchina virtuale di Windows Azure di seguito.

  4. Caricare il file di dati e di schema del database in SQL Server in una macchina virtuale di Windows Azure. Per ulteriori informazione, vedere Modalità di preparazione dello schema e dei dati locali e relativo caricamento in un'istanza di SQL Server in una macchina virtuale di seguito.

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

Modalità di preparazione dello schema e dei dati locali e relativo caricamento in un'istanza di SQL Server in una macchina virtuale

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:

Opzione 1: File BACPAC o DACPAC di applicazioni livello dati

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

  • File 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 ulteriori 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 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 utilizzato per aggiornare i database esistenti. Per ulteriori 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 di database: Server Management Studio e l'API DACFx. Per ulteriori 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 Windows 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 Windows 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 utilizzando un account che dispone dell'autorizzazione ALTER ANY LOGIN e utilizzare 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.

Opzione 2: Backup e ripristino

Per spostare un database in un'altra istanza di SQL Server o in un altro server, è possibile utilizzare 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 ulteriori 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 ulteriori informazioni, vedere Compressione backup.

  • È possibile utilizzare 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 ulteriori informazioni, vedere Gestione dei metadati quando si rende disponibile un database in un'altra istanza del server.

Opzione 3: Funzionalità di scollegamento e collegamento

Per spostare un database in un'altra istanza di SQL Server o in un altro server, è possibile utilizzare 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 ulteriori 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 condizioni seguenti:

    • 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 operazioni di scollegamento e collegamento del database, è possibile utilizzare la funzionalità Compressione dei dati per comprimere i dati in un database e ridurre le dimensioni del database. Inoltre, è possibile utilizzare strumenti di decompressione e compressione separati sui file scollegati.

  • Quando si collega un database a un'altra istanza del server, per garantire un utilizzo 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 ulteriori informazioni, vedere Gestione dei metadati quando si rende disponibile un database in un'altra istanza del server.

Opzione 4: Altre tecniche di SQL Server

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

  • È possibile utilizzare 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 ulteriori informazioni, vedere Utilizzo di Copia guidata database.

  • 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 ulteriori 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 utilizzare Copia guidata database.

  • È possibile utilizzare 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 utilizzare 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 ulteriori informazioni, vedere Procedura guidata Genera e pubblica script.

  • È possibile utilizzare la classe Transfer della libreria SMO (SQL Server Management Objects). Per ulteriori 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 Windows Azure in un passaggio separato. Lo svantaggio di SMO è che si utilizzerebbe una connessione client al database su entrambi i lati in cui verrebbe utilizzato 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.

Modalità di spostamento del file di dati e di schema del database in una macchina virtuale di Windows Azure

È possibile copiare file di piccole dimensioni (file di backup di database, BACPAC o DACPAC) nella macchina virtuale utilizzando le operazioni di copia/incolla mentre si è connessi tramite il desktop remoto. Per trasferire file di grandi dimensioni, scegliere una delle opzioni seguenti:

  • Utilizzare lo strumento della riga di comando CSUpload (CSUpload.exe) per caricare file VHD in Windows Azure. In un file VHD può essere incluso un database. Per ulteriori 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. Per ulteriori informazioni, vedere la pagina relativa alle informazioni sull'archiviazione del cloud.

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

  • Trasferisca il file tramite FTP. Per ulteriori informazioni sul protocollo FTP, vedere la pagina relativa al servizio di pubblicazione FTP.

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

Nella tabella seguente vengono descritti alcuni metodi di trasferimento comuni utilizzabili quando si desidera spostare file in una macchina virtuale di Windows Azure. Nella tabella sono inoltre spiegati i vantaggi e gli svantaggi di ogni metodo.

 

Metodo di trasferimento Vantaggi Svantaggi

Copia del file VHD nell'archiviazione BLOB di Windows Azure tramite lo strumento CsUpload

  • Veloce, ottimizzato per Windows Azure

  • Strumenti tramite cui è possibile gestire connessioni non affidabili

  • Trasferimento sicuro

  • Microsoft offre lo strumento CSUpload. Se è richiesta un'interfaccia utente grafica, è possibile utilizzare attualmente gli strumenti di terze parti.

  • Prima di utilizzare lo strumento CSUpload per caricare un file VHD in Windows 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 Windows Azure come disco dei dati.

Copia di file nella condivisione della macchina virtuale

  • Facile da utilizzare

  • 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.

Trasferimento file tramite FTP

  • Facile da utilizzare

  • Disponibilità di più strumenti client

  • File inserito direttamente nella macchina virtuale

Difficoltà nell'ottenere un trasferimento sicuro.

Per informazioni sull'impostazione, sulla configurazione e sulla distribuzione di SQL Server in una macchina virtuale, vedere la pagina relativa all'esercitazione sul provisioning di una macchina virtuale con SQL Server in Windows Azure. In questa esercitazione viene illustrato come utilizzare il portale di gestione di Windows Azure per selezionare e installare una macchina virtuale dalla raccolta. Inoltre, viene descritto come connettersi alla macchina virtuale utilizzando il desktop remoto, nonché come connettersi a SQL Server nella macchina virtuale utilizzando SQL Server Management Studio.

Per informazioni complete, vedere Getting Ready to Migrate to SQL Server in Windows Azure Virtual Machines e SQL Server Deployment in Windows Azure Virtual Machines.

Disponibilità elevata e ripristino di emergenza in caso di utilizzo di SQL Server in una macchina virtuale di Windows Azure

Vedere anche

Il documento è risultato utile?
(1500 caratteri rimanenti)
Grazie per i commenti inviati.

Aggiunte alla community

AGGIUNGI
Mostra:
© 2014 Microsoft. Tutti i diritti riservati.