Migrazione di un database SQL Server al database SQL di Azure

Si applica a: Database SQL di Azure

In questo articolo vengono illustrati i metodi principali per la migrazione di un database SQL Server 2005 o versione successiva a Azure SQL Database. Per informazioni sulla migrazione a Istanza gestita di SQL di Azure, vedere Eseguire la migrazione di un'istanza di SQL Server a Istanza gestita di SQL di Azure. Per indicazioni sulla scelta di opzioni e strumenti di migrazione da migrare a Azure SQL, vedere Eseguire la migrazione a Azure SQL

Eseguire la migrazione a un database singolo o in pool

Esistono due metodi principali per eseguire la migrazione di un database SQL Server 2005 o versione successiva a Azure SQL Database. Il primo metodo è più semplice, ma comporta tempi di inattività anche lunghi durante la migrazione. Il secondo metodo è più complesso, ma elimina quasi completamente i tempi di inattività durante la migrazione.

In entrambi i casi, è necessario assicurarsi che il database di origine sia compatibile con database SQL di Azure, tramite Data Migration Assistant (DMA). database SQL sta avvicinando la parità delle funzionalità con SQL Server, ad eccezione dei problemi relativi alle operazioni a livello di server e tra database. I database e le applicazioni basati su funzionalità non supportate o supportate parzialmente devono essere riprogettati per risolvere tali incompatibilità prima della migrazione del database SQL Server.

Nota

Per eseguire la migrazione di database diversi dai database di SQL Server, inclusi Microsoft Access, Sybase, MySQL Oracle e DB2 nel database SQL di Azure, vedere il post di blog su SQL Server Migration Assistant.

Metodo 1: Migrazione con tempi di inattività durante la migrazione

Usare questo metodo per eseguire la migrazione a un database singolo o in pool se è possibile ottenere tempi di inattività o eseguire una migrazione di test di un database di produzione per una successiva migrazione. Per un'esercitazione, vedere Eseguire la migrazione di un database SQL Server.

L'elenco seguente illustra un flusso di lavoro generico per eseguire la migrazione di un database SQL Server singolo o in pool usando questo metodo. Per la migrazione a Istanza gestita di SQL, vedere SQL Server guida a Istanza gestita di SQL di Azure.

Diagramma di migrazione di VSSSDT

  1. Valutare la compatibilità del database usando la versione più recente di Data Migration Assistant (DMA).
  2. Preparare eventuali correzioni necessarie come script Transact-SQL.
  3. Creare una copia coerente a livello di transazione del database di origine di cui si esegue la migrazione o interrompere le nuove transazioni nel database di origine mentre è in corso la migrazione. Per questa seconda opzione è possibile disabilitare la connettività client o creare uno snapshot del database. Dopo la migrazione, è possibile usare la replica transazionale per aggiornare i database migrati con le modifiche apportate dopo il punto limite definito per la migrazione. Vedere Usare la replica transazionale.
  4. Distribuire gli script Transact-SQL per applicare le correzioni alla copia del database.
  5. Eseguire la migrazione della copia del database in un nuovo database in Azure SQL Database usando il Data Migration Assistant.

Nota

Anziché Data Migration Assistant, è possibile usare un file BACPAC. Vedere Importare un file BACPAC in un nuovo database in Azure SQL Database.

Ottimizzazione delle prestazioni di trasferimento dei dati durante la migrazione

L'elenco seguente contiene indicazioni che permettono di ottimizzare le prestazioni durante il processo di importazione.

  • Scegliere il livello di servizio e le dimensioni di calcolo più elevati consentiti dal budget per ottimizzare le prestazioni di trasferimento. Per risparmiare, è possibile ridurre le prestazioni al termine della migrazione.
  • Ridurre al minimo la distanza tra il file BACPAC e il data center di destinazione.
  • Disabilitare le statistiche automatiche durante la migrazione
  • Partizionare tabelle e indici
  • Eliminare le viste indicizzate e ricrearle al termine della migrazione.
  • Rimuovere raramente i dati cronologici sottoposti a query in un altro database ed eseguire la migrazione di questi dati cronologici a un database separato in Azure SQL Database. È quindi possibile eseguire query su questi dati cronologici usando query elastiche.

Ottimizzare le prestazioni al termine della migrazione

Aggiornare le statistiche con un'analisi completa dopo aver completato la migrazione.

Metodo 2: Usare la replica transazionale

Quando non è possibile permettersi di rimuovere il database SQL Server dall'ambiente di produzione mentre si sta verificando la migrazione, è possibile usare SQL Server replica transazionale come soluzione di migrazione. Per poter usare questo metodo, il database di origine deve soddisfare i requisiti per la replica transazionale ed essere compatibile con il database SQL di Azure. Per informazioni sulla replica di SQL con AlwaysOn, vedere Configurare la replica per i gruppi di disponibilità AlwaysOn (SQL Server).

Per usare questa soluzione, configurare il database in Azure SQL Database come sottoscrittore dell'istanza di SQL Server di cui si vuole eseguire la migrazione. Il server di distribuzione della replica transazionale sincronizza i dati dal database da sincronizzare, ovvero il server di pubblicazione, mentre continua l'esecuzione di transazioni.

Con la replica transazionale, tutte le modifiche apportate ai dati o allo schema vengono visualizzate nel database in Azure SQL Database. Al termine della sincronizzazione e si è pronti per la migrazione, modificare la stringa di connessione delle applicazioni in modo che puntino al database. Al termine dello svuotamento delle eventuali modifiche rimaste nel database di origine da parte della replica transazionale, quando tutte le applicazioni puntano al database di Azure è possibile disinstallare la replica transazionale. Il database in Azure SQL Database è ora il sistema di produzione.

Diagramma di SeedCloudTR

Suggerimento

È anche possibile usare la replica transazionale per eseguire la migrazione di un subset del database di origine. La pubblicazione di cui si esegue la replica nel database SQL di Azure può essere limitata a un subset delle tabelle nel database replicato. Per ogni tabella replicata, è possibile limitare i dati a un subset di righe e/o di colonne.

Migrazione al database SQL tramite il flusso di lavoro della replica transazionale

Importante

Usare la versione più recente di SQL Server Management Studio per rimanere sincronizzati con gli aggiornamenti di Azure e database SQL. Le versioni precedenti di SQL Server Management Studio non sono in grado di impostare il database SQL come sottoscrittore. Aggiornare SQL Server Management Studio.

  1. Configurare la distribuzione

  2. Creare la pubblicazione

  3. Creazione di sottoscrizioni

Suggerimenti e differenze per la migrazione al database SQL

  • Usare un server di distribuzione locale.
    • Questo influisce sulle prestazioni del server.
    • Se l'impatto sulle prestazioni non è accettabile, è possibile usare un altro server, facendo però aumentare la complessità delle operazioni di gestione e amministrazione.
  • Quando si seleziona una cartella snapshot, assicurarsi che le dimensioni della cartella selezionata siano sufficienti a contenere un BCP di ogni tabella da replicare.
  • La creazione di snapshot blocca le tabelle associate fino al completamento, quindi pianificare lo snapshot in modo appropriato.
  • Nel database SQL di Azure sono supportate solo le sottoscrizioni push. È possibile aggiungere sottoscrittori unicamente dal database di origine.

Risoluzione dei problemi di compatibilità della migrazione di database

È possibile riscontrare un'ampia gamma di problemi di compatibilità, a seconda della versione di SQL Server nel database di origine e della complessità del database di cui si sta eseguendo la migrazione. Le versioni precedenti di SQL Server presentano più problemi di compatibilità. Oltre a una ricerca mirata su Internet tramite i propri motori di ricerca preferiti, si consiglia di usare le risorse seguenti:

Oltre a cercare Internet e usare queste risorse, usare la pagina delle domande di Microsoft Q&A per Azure SQL Database o StackOverflow.

Importante

Istanza gestita di SQL di Azure consente di eseguire la migrazione di un'istanza di SQL Server esistente e dei relativi database con problemi minimi di compatibilità. Vedere Informazioni su un'istanza gestita.

Passaggi successivi