SQL Server-databasmigrering till Azure SQL DatabaseSQL Server database migration to Azure SQL Database

gäller för: Azure SQL Database

I den här artikeln får du lära dig om de primära metoderna för att migrera en SQL Server 2005-databas eller senare till Azure SQL Database.In this article, you learn about the primary methods for migrating a SQL Server 2005 or later database to Azure SQL Database. Information om hur du migrerar till en Azure SQL-hanterad instans finns i Migrera en SQL Server instans till en Azure SQL-hanterad instans.For information on migrating to Azure SQL Managed Instance, see Migrate a SQL Server instance to Azure SQL Managed Instance. Vägledning om hur du väljer alternativ för migrering och verktyg för att migrera till Azure SQL finns i migrera till Azure SQLFor guidance on choosing migration options and tools to migrate to Azure SQL, see Migrate to Azure SQL

Migrera till en enskild databas eller en databas i poolenMigrate to a single database or a pooled database

Det finns två primära metoder för att migrera en SQL Server 2005-databas eller senare till Azure SQL Database.There are two primary methods for migrating a SQL Server 2005 or later database to Azure SQL Database. Den första metoden är enklare, men kräver viss till omfattande stilleståndstid under migreringen.The first method is simpler but requires some, possibly substantial, downtime during the migration. Den andra metoden är mer komplicerad, men kräver mycket kortare stilleståndstid under migreringen.The second method is more complex, but substantially eliminates downtime during the migration.

I båda fallen måste du se till att käll databasen är kompatibel med Azure SQL Database med hjälp av 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). SQL Database närmar sig funktions paritet med SQL Server, förutom problem som rör åtgärder på server nivå och mellan databaser.SQL Database is approaching feature parity with SQL Server, other than issues related to server-level and cross-database operations. Databaser och program som förlitar sig på funktioner som delvis eller inte stöds behöver viss omkonstruktion för att åtgärda dessa inkompatibiliteter innan SQL Server-databasen kan migreras.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.

Anteckning

För att migrera en icke-SQL Server-databas, inklusive Microsoft Access, Sybase, MySQL Oracle och DB2 till Azure SQL Database, se SQL Server-migreringsassistent.To migrate a non-SQL Server database, including Microsoft Access, Sybase, MySQL Oracle, and DB2 to Azure SQL Database, see SQL Server Migration Assistant.

Metod 1: Migrering med stilleståndstid under migreringenMethod 1: Migration with downtime during the migration

Använd den här metoden om du vill migrera till en enskild databas eller en databas i poolen om du har ett visst avbrott eller om du utför en testmigrering av en produktions databas för senare migrering.Use this method to migrate to a single or a pooled database if you can afford some downtime or you're performing a test migration of a production database for later migration. En själv studie kurs finns i Migrera en SQL Server databas.For a tutorial, see Migrate a SQL Server database.

Följande lista innehåller det allmänna arbets flödet för en SQL Server Database-migrering av en eller flera databaser i en pool med den här metoden.The following list contains the general workflow for a SQL Server database migration of a single or a pooled database using this method. För migrering till SQL-hanterad instans, se migrering till SQL-hanterad instans.For migration to SQL Managed Instance, see Migration to SQL Managed Instance.

VSSSDT-migreringsdiagram

  1. Utvärdera databasen för kompatibilitet med hjälp av den senaste versionen av Data Migration Assistant (DMA).Assess the database for compatibility by using the latest version of the Data Migration Assistant (DMA).
  2. Förbered nödvändiga korrigeringar som Transact-SQL-skript.Prepare any necessary fixes as Transact-SQL scripts.
  3. Gör en transaktions konsekvent kopia av käll databasen som migreras eller stoppa nya transaktioner från det som inträffar i käll databasen medan migreringen sker.Make a transactionally consistent copy of the source database being migrated or halt new transactions from occurring in the source database while migration is occurring. Metoder för att göra detta senare alternativ är att inaktivera klient anslutning eller att skapa en databas ögonblicks bild.Methods to accomplish this latter option include disabling client connectivity or creating a database snapshot. Efter migreringen kan du använda Transaktionsreplikering för att uppdatera de migrerade databaserna med ändringar som inträffar efter den sista punkten för migreringen.After migration, you may be able to use transactional replication to update the migrated databases with changes that occur after the cutoff point for the migration. Se migrera med hjälp av transaktionell migrering.See Migrate using Transactional Migration.
  4. Distribuera Transact-SQL-skripten för att tillämpa korrigeringar på databaskopian.Deploy the Transact-SQL scripts to apply the fixes to the database copy.
  5. Migrera databas kopian till en ny databas i Azure SQL Database med hjälp av data migration assistant.Migrate the database copy to a new database in Azure SQL Database by using the Data Migration Assistant.

Anteckning

I stället för att använda DMA kan du också använda en BACPAC-fil.Rather than using DMA, you can also use a BACPAC file. Mer information finns i Importera en BACPAC-fil till en ny databas i Azure SQL Database.See Import a BACPAC file to a new database in Azure SQL Database.

Optimera prestanda för dataöverföring under migreringenOptimizing data transfer performance during migration

Följande lista innehåller rekommendationer för bästa prestanda under importen.The following list contains recommendations for best performance during the import process.

  • Välj den högsta tjänst nivån och den beräknings storlek som din budget tillåter för att maximera överförings prestandan.Choose the highest service tier and compute size that your budget allows to maximize the transfer performance. Du kan spara pengar genom att skala ned när migreringen är klar.You can scale down after the migration completes to save money.
  • Minimera avståndet mellan BACPAC-filen och mål data centret.Minimize the distance between your BACPAC file and the destination data center.
  • Inaktivera autostatistik under migreringDisable autostatistics during migration
  • Partitionstabeller och indexPartition tables and indexes
  • Ta bort indexerade vyer och återskapa dem när de är klaraDrop indexed views, and recreate them once finished
  • Ta bort sällan efterfrågade historiska data till en annan databas och migrera dessa historiska data till en separat databas i Azure SQL Database.Remove rarely queried historical data to another database and migrate this historical data to a separate database in Azure SQL Database. Du kan sedan söka i historiska data med elastiska frågor.You can then query this historical data using elastic queries.

Optimera prestanda när migreringen är klarOptimize performance after the migration completes

Uppdatera statistik med fullständig sökning när migreringen har slutförts.Update statistics with full scan after the migration is completed.

Metod 2: Använd transaktionsreplikeringMethod 2: Use Transactional Replication

När du inte har råd att ta bort din SQL Server databas från produktionen medan migreringen sker, kan du använda Transaktionsreplikering för SQL Server som migrerings lösning.When you can't 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. För att kunna använda den här metoden måste källdatabasen uppfylla kraven för transaktionsreplikering och vara kompatibel med Azure SQL Database.To use this method, the source database must meet the requirements for transactional replication and be compatible for Azure SQL Database. Information om SQL-replikering med Always on finns i Konfigurera replikering för Always on Availability groups (SQL Server).For information about SQL replication with Always On, see Configure Replication for Always On Availability Groups (SQL Server).

Om du vill använda den här lösningen konfigurerar du databasen i Azure SQL Database som prenumerant på den SQL Server-instans som du vill migrera.To use this solution, you configure your database in Azure SQL Database as a subscriber to the SQL Server instance that you wish to migrate. Distributören av transaktionsreplikeringen synkroniserar de data som ska synkroniseras från databasen (utgivaren) medan nya transaktioner fortsätter att göras.The transactional replication distributor synchronizes data from the database to be synchronized (the publisher) while new transactions continue occur.

Med transaktionell replikering visas alla ändringar i dina data eller schema i databasen i Azure SQL Database.With transactional replication, all changes to your data or schema show up in your database in Azure SQL Database. När synkroniseringen är klar och du är redo att migrera, ändrar du anslutnings strängen för dina program så att de pekar på databasen.Once the synchronization is complete and you're ready to migrate, change the connection string of your applications to point them to your database. När transaktionsreplikeringen tömt alla ändringar som finns kvar i källdatabasen och alla program pekar på Azure DB kan du avinstallera transaktionsreplikeringen.Once transactional replication drains any changes left on your source database and all your applications point to Azure DB, you can uninstall transactional replication. Din databas i Azure SQL Database är nu ditt produktions system.Your database in Azure SQL Database is now your production system.

SeedCloudTR-diagram

Tips

Du kan också använda transaktionsreplikering till att migrera en del av din källdatabas.You can also use transactional replication to migrate a subset of your source database. Den publikation som du replikerar till Azure SQL Database kan begränsas till en del av tabellerna i databasen som replikeras.The publication that you replicate to Azure SQL Database can be limited to a subset of the tables in the database being replicated. Du kan begränsa data till en del av raderna och/eller en del av kolumnerna för varje tabell som replikeras.For each table being replicated, you can limit the data to a subset of the rows and/or a subset of the columns.

Migrera till SQL Database med arbetsflödet för transaktionsreplikeringMigration to SQL Database using Transaction Replication workflow

Viktigt

Använd den senaste versionen av SQL Server Management Studio om du fortfarande vill synkronisera med uppdateringar till Azure och SQL Database.Use the latest version of SQL Server Management Studio to remain synchronized with updates to Azure and SQL Database. Äldre versioner av SQL Server Management Studio kan inte konfigurera SQL Database som en prenumerant.Older versions of SQL Server Management Studio cannot set up SQL Database as a subscriber. Uppdatera SQL Server Management Studio.Update SQL Server Management Studio.

  1. Konfigurera distributionSet up Distribution

  2. Skapa publikationCreate Publication

  3. Skapa en prenumerationCreate Subscription

Tips och skillnader vid migrering till SQL DatabaseSome tips and differences for migrating to SQL Database

  • Använda en lokal distributörUse a local distributor
    • Detta leder till en prestanda påverkan på servern.Doing so causes a performance impact on the server.
    • Om denna påverkan inte är acceptabel kan du använda en annan server men det innebär en mer komplicerad hantering och administration.If the performance impact is unacceptable, you can use another server but it adds complexity in management and administration.
  • När du väljer en mapp för ögonblicksbilder måste du se till att mappen är tillräckligt stor för att innehålla en BCP för varje tabell som du vill replikera.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.
  • Skapandet av ögonblicks bilder låser de associerade tabellerna tills den har slutförts, så Schemalägg din ögonblicks bild på lämpligt sätt.Snapshot creation locks the associated tables until it's complete, so schedule your snapshot appropriately.
  • Endast push-prenumerationer stöds i Azure SQL Database.Only push subscriptions are supported in Azure SQL Database. Du kan bara lägga till prenumeranter från källdatabasen.You can only add subscribers from the source database.

Åtgärda kompatibilitetsproblem vid databasmigreringResolving database migration compatibility issues

Det finns många olika kompatibilitetsproblem som du kan stöta på, beroende på vilken version av SQL Server i käll databasen och hur komplex databasen som du migrerar.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're migrating. Äldre versioner av SQL Server har fler kompatibilitetsproblem.Older versions of SQL Server have more compatibility issues. Använd följande resurser, utöver en riktad Internetsökning med hjälp av sökmotor:Use the following resources, in addition to a targeted Internet search using your search engine of choices:

Förutom att söka på Internet och använda dessa resurser använder du sidan Microsoft Q&en fråga för Azure SQL Database eller StackOverflow.In addition to searching the Internet and using these resources, use the Microsoft Q&A question page for Azure SQL Database or StackOverflow.

Viktigt

Med Azure SQL Managed instance kan du migrera en befintlig SQL Server-instans och dess databaser med minimalt antal kompatibilitetsproblem.Azure SQL Managed Instance enables you to migrate an existing SQL Server instance and its databases with minimal to no compatibility issues. Se Vad är en hanterad instans.See What is a managed instance.

Nästa stegNext steps