Migrazione di un database SQL Server al database SQL nel cloudSQL Server database migration to SQL Database in the cloud

Questo articolo illustra i due metodi principali per eseguire la migrazione di un database SQL Server 2005 o versione successiva a un database SQL di Azure.In this article, you learn about the two primary methods for migrating a SQL Server 2005 or later database to Azure SQL Database. Il primo metodo è più semplice, ma comporta tempi di inattività anche lunghi durante la migrazione.The first method is simpler but requires some, possibly substantial, downtime during the migration. Il secondo metodo è più complesso, ma elimina quasi completamente i tempi di inattività durante la migrazione.The second method is more complex, but substantially eliminates downtime during the migration.

In entrambi i casi, è necessario assicurarsi che il database di origine sia compatibile con database SQL di Azure, tramite Data Migration Assistant (DMA).In both cases, you need to ensure that the source database is compatible with Azure SQL Database using the Data Migration Assistant (DMA). Con la versione 12 del database SQL si sta raggiungendo la parità di funzionalità con SQL Server, a eccezione dei problemi legati alle operazioni a livello di server e tra database.SQL Database V12 is approaching feature parity with SQL Server, other than issues related to server-level and cross-database operations. 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.Databases and applications that rely on partially supported or unsupported functions need some re-engineering to fix these incompatibilities before the SQL Server database can be migrated.

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.To migrate a non-SQL Server database, including Microsoft Access, Sybase, MySQL Oracle, and DB2 to Azure SQL Database, see SQL Server Migration Assistant.

Metodo 1: Migrazione con tempi di inattività durante la migrazioneMethod 1: Migration with downtime during the migration

Usare questo metodo se si è disposti a tollerare tempi di inattività o se si esegue una migrazione di prova di un database di produzione per una migrazione successiva.Use this method if you can afford some downtime or you are performing a test migration of a production database for later migration. Per un'esercitazione, vedere Eseguire la migrazione di un database SQL Server.For a tutorial, see Migrate a SQL Server database.

L'elenco seguente illustra un flusso di lavoro generico per la migrazione di un database SQL Server con questo metodo.The following list contains the general workflow for a SQL Server database migration using this method.

Diagramma di migrazione di VSSSDT

  1. Valutare la compatibilità del database usando la versione più recente di Data Migration Assistant (DMA).Assess the database for compatibility by using the latest version of the Data Migration Assistant (DMA).
  2. Preparare eventuali correzioni necessarie come script Transact-SQL.Prepare any necessary fixes as Transact-SQL scripts.
  3. Creare una copia del database di origine coerente a livello di transazione e assicurarsi che non vengano apportate ulteriori modifiche al database di origine. In alternativa, è possibile applicare manualmente le eventuali modifiche al termine della migrazione.Make a transactionally consistent copy of the source database being migrated - and ensure that no further changes are being made to the source database (or you can manually apply any such changes after the migration completes). Per disattivare un database sono disponibili vari metodi, dalla disabilitazione della connettività client alla creazione di uno snapshot del database.There are many methods to quiesce a database, from disabling client connectivity to creating a database snapshot.
  4. Distribuire gli script Transact-SQL per applicare le correzioni alla copia del database.Deploy the Transact-SQL scripts to apply the fixes to the database copy.
  5. Eseguire la migrazione della copia del database in un nuovo database SQL di Microsoft Azure tramite Data Migration Assistant.Migrate the database copy to a new Azure SQL Database by using the Data Migration Assistant.

Ottimizzazione delle prestazioni di trasferimento dei dati durante la migrazioneOptimizing data transfer performance during migration

L'elenco seguente contiene indicazioni che permettono di ottimizzare le prestazioni durante il processo di importazione.The following list contains recommendations for best performance during the import process.

  • Scegliere il livello di prestazioni e di servizio più elevato consentito dal budget per ottimizzare le prestazioni di trasferimento.Choose the highest service level and performance tier that your budget allows to maximize the transfer performance. Per risparmiare, è possibile ridurre le prestazioni al termine della migrazione.You can scale down after the migration completes to save money.
  • Ridurre al minimo la distanza tra il file BACPAC e il data center di destinazione.Minimize the distance between your BACPAC file and the destination data center.
  • Disabilitare le statistiche automatiche durante la migrazione.Disable auto-statistics during migration
  • Partizionare tabelle e indici.Partition tables and indexes
  • Eliminare le viste indicizzate e ricrearle al termine della migrazione.Drop indexed views, and recreate them once finished
  • Rimuovere i dati cronologici raramente sottoposti a query in un altro database ed eseguire la migrazione di tali dati in un database SQL di Azure separato.Remove rarely queried historical data to another database and migrate this historical data to a separate Azure SQL database. Sarà quindi possibile eseguire query sui dati cronologici usando query elastiche.You can then query this historical data using elastic queries.

Ottimizzare le prestazioni al termine della migrazioneOptimize performance after the migration completes

Aggiornare le statistiche con un'analisi completa dopo aver completato la migrazione.Update statistics with full scan after the migration is completed.

Metodo 2: Usare la replica transazionaleMethod 2: Use Transactional Replication

Quando non è possibile rimuovere il database SQL Server dalla produzione durante la migrazione, è possibile usare la replica transazionale di SQL Server come soluzione di migrazione.When you cannot afford to remove your SQL Server database from production while the migration is occurring, you can use SQL Server transactional replication as your migration solution. 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.To use this method, the source database must meet the requirements for transactional replication and be compatible for Azure SQL Database. Per informazioni sulla replica di SQL con AlwaysOn, vedere Configurare la replica per i gruppi di disponibilità AlwaysOn (SQL Server).For information about SQL replication with AlwaysOn, see Configure Replication for Always On Availability Groups (SQL Server).

Per usare questa soluzione, è necessario configurare il database SQL di Azure come sottoscrittore dell'istanza di SQL Server di cui si vuole eseguire la migrazione.To use this solution, you configure your Azure SQL Database as a subscriber to the SQL Server instance that you wish to migrate. 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.The transactional replication distributor synchronizes data from the database to be synchronized (the publisher) while new transactions continue occur.

Con la replica transazionale, tutte le modifiche ai dati o allo schema vengono visualizzate nel database SQL di Azure.With transactional replication, all changes to your data or schema show up in your Azure SQL Database. Quando la sincronizzazione è completata e si è pronti a eseguire la migrazione, è sufficiente modificare la stringa di connessione delle applicazioni in modo che puntino al database SQL di Azure.Once the synchronization is complete and you are ready to migrate, change the connection string of your applications to point them to your Azure SQL 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.Once transactional replication drains any changes left on your source database and all your applications point to Azure DB, you can uninstall transactional replication. Il database SQL di Azure è ora il sistema di produzione.Your Azure SQL Database is now your production system.

Diagramma di SeedCloudTR

Suggerimento

È anche possibile usare la replica transazionale per eseguire la migrazione di un subset del database di origine.You can also use transactional replication to migrate a subset of your source database. La pubblicazione di cui si esegue la replica nel database SQL di Azure può essere limitata a un subset delle tabelle nel database replicato.The publication that you replicate to Azure SQL Database can be limited to a subset of the tables in the database being replicated. Per ogni tabella replicata, è possibile limitare i dati a un subset di righe e/o di colonne.For each table being replicated, you can limit the data to a subset of the rows and/or a subset of the columns.

Migrazione al database SQL tramite il flusso di lavoro della replica transazionaleMigration to SQL Database using Transaction Replication workflow

Importante

Usare sempre la versione più aggiornata di SQL Server Management Studio per restare sincronizzati con gli aggiornamenti di Microsoft Azure e del database SQL.Use the latest version of SQL Server Management Studio to remain synchronized with updates to Microsoft Azure and SQL Database. Le versioni precedenti di SQL Server Management Studio non sono in grado di impostare il database SQL come sottoscrittore.Older versions of SQL Server Management Studio cannot set up SQL Database as a subscriber. Aggiornare SQL Server Management Studio.Update SQL Server Management Studio.

  1. Configurare la distribuzioneSet up Distribution
  2. Creare la pubblicazioneCreate Publication
  3. Creare la sottoscrizioneCreate Subscription

Suggerimenti e differenze per la migrazione al database SQLSome tips and differences for migrating to SQL Database

  1. Usare un server di distribuzione locale.Use a local distributor
    • Questo influisce sulle prestazioni del server.Doing so causes a performance impact on the server.
    • Se l'impatto sulle prestazioni non è accettabile, è possibile usare un altro server, facendo però aumentare la complessità delle operazioni di gestione e amministrazione.If the performance impact is unacceptable, you can use another server but it adds complexity in management and administration.
  2. Quando si seleziona una cartella snapshot, assicurarsi che le dimensioni della cartella selezionata siano sufficienti a contenere un BCP di ogni tabella da replicare.When selecting a snapshot folder, make sure the folder you select is large enough to hold a BCP of every table you want to replicate.
  3. La creazione di snapshot consente di bloccare le tabelle associate fino al completamento, è quindi consigliabile pianificare lo snapshot in modo appropriato.Snapshot creation locks the associated tables until it is complete, so schedule your snapshot appropriately.
  4. Nel database SQL di Azure sono supportate solo le sottoscrizioni push.Only push subscriptions are supported in Azure SQL Database. È possibile aggiungere sottoscrittori unicamente dal database di origine.You can only add subscribers from the source database.

Risoluzione dei problemi di compatibilità della migrazione di databaseResolving database migration compatibility issues

Esiste una vasta gamma di problemi di compatibilità che possono verificarsi, a seconda della versione del server SQL del database di origine e della complessità del database verso cui si esegue la migrazione.There are a wide variety of compatibility issues that you might encounter, depending both on the version of SQL Server in the source database and the complexity of the database you are migrating. Le versioni precedenti di SQL Server presentano più problemi di compatibilità.Older versions of SQL Server have more compatibility issues. Oltre a una ricerca mirata su Internet tramite i propri motori di ricerca preferiti, si consiglia di usare le risorse seguenti:Use the following resources, in addition to a targeted Internet search using your search engine of choices:

Oltre a ricerche su Internet e all'uso di queste risorse, usare il forum della community MSDN SQL Server o StackOverflow.In addition to searching the Internet and using these resources, use the MSDN SQL Server community forums or StackOverflow.

Passaggi successiviNext steps