Självstudie: Migrera SQL Server till Azure SQL Database med DMS

Du kan använda Azure Database Migration Service för att migrera databaserna från en SQL Server-instans till Azure SQL Database. I den här självstudien migrerar du adventureworks2016-databasen som återställts till en lokal instans av SQL Server 2016 (eller senare) till en enskild databas eller pooldatabas i Azure SQL Database med hjälp av Azure Database Migration Service.

Du lär dig hur du:

  • Utvärdera och utvärdera din lokala databas för eventuella blockeringsproblem med hjälp av Data Migration Assistant.
  • Använd Data Migration Assistant för att migrera databasexempelschemat.
  • Registrera Azure DataMigration-resursprovidern.
  • Skapa en instans av Azure Database Migration Service.
  • Skapa ett migreringsprojekt med hjälp av Azure Database Migration Service.
  • Köra migreringen.
  • Övervaka migreringen.

Förutsättningar

För att slutföra den här kursen behöver du:

  • Ladda ned och installera SQL Server 2016 eller senare.

  • Aktivera TCP/IP-protokollet, som är inaktiverat som standard under SQL Server Express-installation, genom att följa instruktionerna i artikeln om att aktivera eller inaktivera ett servernätverksprotokoll.

  • Återställ AdventureWorks2016-databasen till SQL Server-instansen.

  • Skapa en databas i Azure SQL Database, vilket du gör genom att följa informationen i artikeln Skapa en databas i Azure SQL Database med hjälp av Azure Portal. För den här självstudiekursen antas namnet på Azure SQL Database vara AdventureWorksAzure men du kan ange ett valfritt namn.

    Anteckning

    Om du använder SQL Server Integration Services (SSIS) och vill migrera katalogdatabasen för dina SSIS-projekt/-paket (SSISDB) från SQL Server till Azure SQL Database skapas och hanteras målet SSISDB och automatiskt åt dig när du etablerar SSIS i Azure Data Factory (ADF). Mer information om migrera SSIS-paket finns i artikeln Migrate SQL Server Integration Services packages to Azure (Migrera SQL Server Integration Services-paket till Azure).

  • Ladda ned och installera den senaste versionen av Data Migration Assistant.

  • Skapa en Microsoft Azure-Virtual Network för Azure Database Migration Service med hjälp av Azure Resource Manager-distributionsmodellen, som tillhandahåller plats-till-plats-anslutning till dina lokala källservrar med hjälp av antingen ExpressRoute eller VPN. Mer information om hur du skapar ett virtuellt nätverk finns i Virtual Network Dokumentation, och särskilt snabbstartsartiklarna med stegvis information.

    Anteckning

    Om du använder ExpressRoute med nätverkspeering till Microsoft under konfigurationen av virtuellt nätverk lägger du till följande tjänstslutpunkter i det undernät där tjänsten ska etableras:

    • Måldatabasslutpunkt (till exempel SQL-slutpunkt, Cosmos DB-slutpunkt och så vidare)
    • Lagringsslutpunkt
    • Service Bus-slutpunkt

    Den här konfigurationen är nödvändig eftersom Azure Database Migration Service saknar internetanslutning.

    Om du inte har plats-till-plats-anslutning mellan det lokala nätverket och Azure eller om det finns begränsad bandbredd för plats-till-plats-anslutning kan du överväga att använda Azure Database Migration Service i hybridläge (förhandsversion). Hybridläget utnyttjar en lokal migreringsarbetare tillsammans med en instans av Azure Database Migration Service som körs i molnet. Om du vill skapa en instans av Azure Database Migration Service i hybridläge läser du artikeln Skapa en instans av Azure Database Migration Service i hybridläge med hjälp av Azure Portal.

  • Se till att dina utgående säkerhetsregler för nätverkssäkerhetsgruppen inte blockerar utgående port 443 i ServiceTag för ServiceBus, Storage och AzureMonitor. Mer information om NSG-trafikfiltrering för virtuella Azure-nätverk finns i artikeln Filtrera nätverkstrafik med nätverkssäkerhetsgrupper.

  • Konfigurera din Windows-brandvägg för databasmotoråtkomst.

  • Öppna Windows-brandväggen så att Azure Database Migration Service får åtkomst till källans SQL Server, vilket som standard är TCP-port 1433. Om standardinstansen lyssnar på någon annan port lägger du till den i brandväggen.

  • Om du kör flera namngivna SQL Server-instanser med dynamiska portar kanske du vill aktivera SQL Browser Service och tillåta åtkomst till UDP-port 1434 via brandväggarna så att Azure Database Migration Service kan ansluta till en namngiven instans på källservern.

  • När du använder en brandväggsinstallation framför källdatabaserna kan du behöva lägga till brandväggsregler för att tillåta Azure Database Migration Service att komma åt källdatabaserna för migrering.

  • Skapa en IP-brandväggsregel på servernivå för Azure SQL Database för att tillåta Azure Database Migration Service åtkomst till måldatabaserna. Ange undernätsintervallet för det virtuella nätverk som används för Azure Database Migration Service.

  • Kontrollera att autentiseringsuppgifterna som används för att ansluta till SQL Server-källinstansen har CONTROL SERVER-behörigheter.

  • Kontrollera att autentiseringsuppgifterna som används för att ansluta till mål Azure SQL Database-instansen har behörigheten CONTROL DATABASE på måldatabaserna.

    Viktigt

    För att skapa en instans av Azure Database Migration Service krävs åtkomst till inställningar för virtuella nätverk som normalt inte ingår i samma resursgrupp. Därför kräver användaren som skapar en instans av DMS behörighet på prenumerationsnivå. Om du vill skapa de nödvändiga rollerna, som du kan tilldela efter behov, kör du följande skript:

    
    $readerActions = `
    "Microsoft.Network/networkInterfaces/ipConfigurations/read", `
    "Microsoft.DataMigration/*/read", `
    "Microsoft.Resources/subscriptions/resourceGroups/read"
    
    $writerActions = `
    "Microsoft.DataMigration/services/*/write", `
    "Microsoft.DataMigration/services/*/delete", `
    "Microsoft.DataMigration/services/*/action", `
    "Microsoft.Network/virtualNetworks/subnets/join/action", `
    "Microsoft.Network/virtualNetworks/write", `
    "Microsoft.Network/virtualNetworks/read", `
    "Microsoft.Resources/deployments/validate/action", `
    "Microsoft.Resources/deployments/*/read", `
    "Microsoft.Resources/deployments/*/write"
    
    $writerActions += $readerActions
    
    # TODO: replace with actual subscription IDs
    $subScopes = ,"/subscriptions/00000000-0000-0000-0000-000000000000/","/subscriptions/11111111-1111-1111-1111-111111111111/"
    
    function New-DmsReaderRole() {
    $aRole = [Microsoft.Azure.Commands.Resources.Models.Authorization.PSRoleDefinition]::new()
    $aRole.Name = "Azure Database Migration Reader"
    $aRole.Description = "Lets you perform read only actions on DMS service/project/tasks."
    $aRole.IsCustom = $true
    $aRole.Actions = $readerActions
    $aRole.NotActions = @()
    
    $aRole.AssignableScopes = $subScopes
    #Create the role
    New-AzRoleDefinition -Role $aRole
    }
    
    function New-DmsContributorRole() {
    $aRole = [Microsoft.Azure.Commands.Resources.Models.Authorization.PSRoleDefinition]::new()
    $aRole.Name = "Azure Database Migration Contributor"
    $aRole.Description = "Lets you perform CRUD actions on DMS service/project/tasks."
    $aRole.IsCustom = $true
    $aRole.Actions = $writerActions
    $aRole.NotActions = @()
    
      $aRole.AssignableScopes = $subScopes
    #Create the role
    New-AzRoleDefinition -Role $aRole
    }
    
    function Update-DmsReaderRole() {
    $aRole = Get-AzRoleDefinition "Azure Database Migration Reader"
    $aRole.Actions = $readerActions
    $aRole.NotActions = @()
    Set-AzRoleDefinition -Role $aRole
    }
    
    function Update-DmsConributorRole() {
    $aRole = Get-AzRoleDefinition "Azure Database Migration Contributor"
    $aRole.Actions = $writerActions
    $aRole.NotActions = @()
    Set-AzRoleDefinition -Role $aRole
    }
    
    # Invoke above functions
    New-DmsReaderRole
    New-DmsContributorRole
    Update-DmsReaderRole
    Update-DmsConributorRole
    

Utvärdera din lokala databas

Innan du kan migrera data från en SQL Server-instans till en enskild databas eller pooldatabas i Azure SQL Database måste du utvärdera SQL Server databas för eventuella blockeringsproblem som kan förhindra migrering. Med hjälp av Data Migration Assistant följer du stegen som beskrivs i artikeln Utföra en SQL Server migreringsutvärdering för att slutföra den lokala databasutvärderingen. En sammanfattning av de steg som krävs följer:

  1. I Data Migration Assistant väljer du ikonen Nytt (+) och väljer sedan projekttypen Utvärdering.

  2. Ange ett projektnamn. I listrutan Utvärderingstyp väljer du Databasmotor, i textrutan Källservertyp väljer du SQL Server, i textrutan Målservertyp väljer du Azure SQL Databas och väljer sedan Skapa för att skapa projektet.

    När du utvärderar SQL Server-källdatabasen som ska migreras till en enkel databas eller pooldatabas i Azure SQL Database, kan du välja en eller båda av följande utvärderingsrapporttyper:

    • Kontrollera databaskompatibilitet
    • Kontrollera funktionsparitet

    Båda rapporttyperna väljs som standard.

  3. I Data Migration Assistant, på sidan Alternativ väljer du Näsa.

  4. På sidan Välj källor i dialogrutan Anslut till en server, anger du anslutningsinformationen till SQL Server och väljer sedan Anslut.

  5. I dialogrutan Lägg till källor väljer du AdventureWorks2016, väljer Lägg till och sedan Starta utvärdering.

    Anteckning

    Om du använder SSIS så har DMA för närvarande inget stöd för utvärdering av SSISDB-källan. Dock utvärderas/verifieras SSIS-projekt/-paket när de omdistribueras till SSISDB-målet med Azure SQL Database. Mer information om migrera SSIS-paket finns i artikeln Migrate SQL Server Integration Services packages to Azure (Migrera SQL Server Integration Services-paket till Azure).

    När utvärderingen är klar visas resultatet enligt följande bild:

    Utvärdera datamigrering

    För databaser i Azure SQL Database identifierar utvärderingarna problem med funktionsparitet och migreringsblockering för distribution till en enskild databas eller pooldatabas.

    • Kategorin SQL Server-funktionsparitet innehåller en omfattande uppsättning rekommendationer, alternativa metoder tillgängliga i Azure och minimeringsåtgärder för att hjälpa dig att planera insatsen för dina migreringsprojekt.
    • Kategorin Kompatibilitetsproblem identifierar funktioner som delvis stöds eller som inte stöds och som återspeglar kompatibilitetsproblem som kan blockera migrering SQL Server databaser till Azure SQL Database. Det ges även rekommendationer, så att du kan hantera problemen.
  6. Granska utvärderingsresultaten för blockeringsproblem för migreringen och funktionsparitetsproblem genom att välja de specifika alternativen.

Migrera exempelschemat

När du är nöjd med utvärderingen och finner att den valda databasen är en giltig kandidat för migrering till en enkel databas eller en pooldatabas i Azure SQL Database använder du DMA för att migrera schemat till Azure SQL Database.

Anteckning

Innan du skapar ett migreringsprojekt i Data Migration Assistant måste du kontrollera att du redan har etablerat en databas i Azure enligt kraven.

Viktigt

Om du använder SSIS stöder DMA för närvarande inte migrering av käll-SSISDB, men du kan distribuera om ditt SSIS-projekt/-paket till SSISDB-målet med Azure SQL Database. Mer information om migrera SSIS-paket finns i artikeln Migrate SQL Server Integration Services packages to Azure (Migrera SQL Server Integration Services-paket till Azure).

Utför följande steg för att migrera AdventureWorks2016-schemat till en enskild databas eller pooldatabas Azure SQL Database:

  1. I Data Migration Assistant väljer du ikonen Nytt (+) och sedan under Projekttyp väljer du Migrering.

  2. Ange ett projektnamn i textrutan Typ av källserver, välj SQL Server. I textrutan Målservertyp väljer du sedan Azure SQL Database.

  3. Under Migreringsomfång väljer du Endast schema.

    När du har utfört de föregående stegen bör Data Migration Assistant-gränssnittet visas i följande bild:

    Skapa Data Migration Assistant-projekt

  4. Välj Skapa för att skapa projektet.

  5. I Data Migration Assistant anger du källanslutningsinformationen för din SQL Server, väljer Anslut och väljer sedan databasen AdventureWorks2016.

    Källanslutningsinformation för Data Migration Assistant

  6. Välj Nästa under Anslut till målserver, ange målanslutningsinformationen för Azure SQL-databasen, välj Anslut och välj sedan databasen AdventureWorksAzure som du hade företablerad i Azure SQL Database.

    Målanslutningsinformation för Data Migration Assistant

  7. Välj Nästa för att gå vidare till skärmen Välj objekt, där du kan ange schemaobjekten i databasen AdventureWorks2016 som måste distribueras till Azure SQL Database.

    Som standard markeras alla objekt.

    Skapa SQL-skript

  8. Välj Skapa SQL-skript för att skapa SQL-skripten och granska sedan om det finns fel i skripten.

    Schemaskript

  9. Välj Distribuera schema för att distribuera schemat till Azure SQL Database, och när schemat har distribuerats kontrollerar du om det finns avvikelser på målservern.

    Distribuera schema

Registrera resursprovidern

Registrera resursprovidern Microsoft.DataMigration innan du skapar din första instans av Database Migration Service.

  1. Logga in på Azure-portalen. Sök efter och välj Prenumerationer.

    Visa portalprenumerationer

  2. Välj den prenumeration där du vill skapa instansen av Azure Database Migration Service och välj sedan Resursprovidrar.

    Visa resursprovidrar

  3. Sök efter migrering och välj sedan Registrera dig för Microsoft.DataMigration.

    Registrera resursprovider

Skapa en Azure Database Migration Service-instans

  1. I menyn Azure Portal eller på startsidan väljer du Skapa en resurs. Sök efter och välj Azure Database Migration Service.

    Azure Marketplace

  2. På sidan Azure Database Migration Service väljer du Skapa.

    Skapa Azure Database Migration Service-instans

    Välj alternativet Fortsätt att använda Azure Database Migration Service.

    Välj Database Migration Service scenario

  3. På skärmen Skapa grunderna i Migreringstjänsten :

    • Välj prenumerationen.
    • Skapa en ny resursgrupp eller välj en befintlig.
    • Ange ett namn för instansen av Azure Database Migration Service.
    • Välj den plats där du vill skapa instansen av Azure Database Migration Service.
    • Välj Azure som tjänstläge.
    • Välj en prisnivå. Mer information om kostnader och prisnivåer finns på sidan med priser.

    Konfigurera grundläggande inställningar för Azure Database Migration Service instans

    • Välj Nästa: Nätverk.
  4. På skärmen Skapa migreringstjänstnätverk :

    • Välj ett befintligt virtuellt nätverk eller skapa ett nytt. Det virtuella nätverket ger Azure Database Migration Service åtkomst till källservern och målinstansen. Mer information om hur du skapar ett virtuellt nätverk i Azure Portal finns i artikeln Skapa ett virtuellt nätverk med Azure Portal.

    Konfigurera nätverksinställningar för Azure Database Migration Service instans

    • Välj Granska + Skapa för att granska informationen och välj sedan Skapa för att skapa tjänsten.

    • Efter en liten stund skapas din instans av Azure Database Migration Service och är redo att användas:

    Migreringstjänsten har skapats

Skapa ett migreringsprojekt

När tjänsten har skapats letar du reda på den i Azure Portal, öppnar den och skapar sedan ett nytt migreringsprojekt.

  1. I menyn Azure Portal väljer du Alla tjänster. Sök efter och välj Azure Database Migration Services.

    Leta upp alla instanser av Azure Database Migration Service

  2. På skärmen Azure Database Migration Services väljer du den Azure Database Migration Service instans som du skapade.

  3. Välj Nytt migreringsprojekt.

    Leta upp din instans av Azure Database Migration Service

  4. På skärmen Nytt migreringsprojekt anger du ett namn för projektet. I textrutan Källservertyp väljer du SQL Server, i textrutan Målservertyp väljer du Azure SQL Database och väljer sedan Datamigrering för Välj migreringsaktivitetstyp.

    Skapa Database Migration Service-projekt

  5. Välj Skapa och kör aktivitet för att skapa projektet och köra migreringsaktiviteten.

Ange källinformation

  1. På skärmen Välj källa anger du anslutningsinformation för källan SQL Server-instansen.

    Se till att använda ett fullständigt domännamn (FQDN) för SQL Server-källinstansens namn. Du kan även använda IP-adressen i situationer då DNS-namnmatchning inte är möjlig.

  2. Om du inte har installerat ett betrott certifikat på källservern markerar du kryssrutan Lita på servercertifikatet.

    När ett betrott certifikat inte har installerats genererar SQL Server ett självsignerat certifikat när instansen har startats. Detta certifikat används till att kryptera autentiseringsuppgifterna för klientanslutningar.

    Varning

    TLS-anslutningar som krypteras med ett självsignerat certifikat ger inte stark säkerhet. De är sårbara för man-in-the-middle-attacker. Du bör inte förlita dig på TLS med självsignerade certifikat i en produktionsmiljö eller på servrar som är anslutna till Internet.

    Viktigt

    Om du använder SSIS stöder DMS för närvarande inte migrering av käll-SSISDB, men du kan distribuera om ditt SSIS-projekt/-paket till SSISDB-målet med Azure SQL Database. Mer information om migrera SSIS-paket finns i artikeln Migrate SQL Server Integration Services packages to Azure (Migrera SQL Server Integration Services-paket till Azure).

    Källinformation

  3. Välj Nästa: Välj databaser.

Välj databaser för migrering

Välj antingen alla databaser eller specifika databaser som du vill migrera till Azure SQL Database. DMS ger dig den förväntade migreringstiden för valda databaser. Om migreringsavbrotten är godkända fortsätter du med migreringen. Om migreringsavbrotten inte är godtagbara kan du överväga att migrera till SQL Managed Instance med nästan noll stilleståndstid eller skicka förslag på förbättringar och annan feedback i Azure Community-forumet – Azure Database Migration Service.

  1. Välj de databaser som du vill migrera från listan över tillgängliga databaser.

  2. Granska den förväntade stilleståndstiden. Om det är acceptabelt väljer du Nästa: Välj mål >>

    Källdatabaser

Ange målinformation

  1. På skärmen Välj mål anger du autentiseringsinställningar för din Azure SQL Database.

    Välj mål

    Anteckning

    För närvarande är SQL-autentisering den enda autentiseringstypen som stöds.

  2. Välj Nästa: Mappa till måldatabasskärmen , mappa källan och måldatabasen för migrering.

    Om måldatabasen innehåller samma databasnamn som källdatabasen väljer Azure Database Migration Service måldatabasen som standard.

    Mappa till måldatabaser

  3. Välj Nästa: Inställningar för konfigurationsmigrering, expandera tabelllistan och granska sedan listan över berörda fält.

    Azure Database Migration Service väljer automatiskt alla tomma källtabeller som finns på målet Azure SQL Database-instansen. Om du vill migrera tabeller på nytt som redan innehåller data måste du uttryckligen välja tabellerna på det här bladet.

    Välj tabeller

  4. Välj Nästa: Sammanfattning, granska migreringskonfigurationen och ange ett namn för migreringsaktiviteten i textrutan Aktivitetsnamn .

    Välja verifieringsalternativ

Köra migreringen

  • Välj Starta migrering.

    Migreringsaktivitetsfönstret visas och Status för aktiviteten är Väntande.

    Aktivitetsstatus

Övervaka migreringen

  1. På migreringsaktivitetssidan väljer du Uppdatera för att uppdatera visningen tills Status för migreringen är Slutförd.

    Aktivitetsstatus Slutförd

  2. Kontrollera måldatabaserna på måldatabasen Azure SQL Database.

Ytterligare resurser