Självstudie: Migrera MySQL till Azure Database for MySQL offline med DMS

Du kan använda Azure Database Migration Service för att utföra en sömlös migrering från din externa MySQL-instans till Azure Database for MySQL med funktioner för datamigrering med hög hastighet. I den här självstudien migrerar vi en exempeldatabas från en lokal instans av MySQL 5.7 till Azure Database for MySQL (v5.7) med hjälp av en offlinemigreringsaktivitet i Azure Database Migration Service. Även om artiklarna förutsätter att källan är en MySQL-databasinstans och målet är Azure Database for MySQL, kan den användas för att migrera från en Azure Database for MySQL till en annan bara genom att ändra källserverns namn och autentiseringsuppgifter. Migrering från mySQL-servrar med lägre version (v5.6 och senare) till högre versioner stöds också.

Kommentar

En PowerShell-baserad skriptbar version av den här migreringsupplevelsen finns i skriptbar offlinemigrering till Azure Database for MySQL.

Kommentar

Amazon Relational Database Service (RDS) för MySQL och Amazon Aurora (MySQL-baserad) stöds också som källor för migrering.

I den här självstudien lär du dig att:

  • Skapa en DMS-instans.
  • Skapa ett MySQL-migreringsprojekt i DMS.
  • Migrera ett MySQL-schema med DMS.
  • Köra migreringen.
  • Övervaka migreringen.

Förutsättningar

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

  • Ha ett Azure-konto med en aktiv prenumeration. Skapa ett konto utan kostnad.

  • Ha en lokal MySQL-databas med version 5.7. Annars laddar du ned och installerar MySQL Community Edition 5.7.

  • Skapa ett Microsoft Azure Virtual Network for 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 dokumentationen för virtuellt nätverk, och särskilt snabbstartsartiklarna med stegvis information.

    Kommentar

    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, Azure 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.

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

  • Öppna Windows-brandväggen för att tillåta anslutningar från Virtual Network for Azure Database Migration Service att komma åt källans MySQL-server, som som standard är TCP-port 3306.

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

  • Skapa en brandväggsregel på servernivå eller konfigurera VNET-tjänstslutpunkter för Azure Database for MySQL som mål för att tillåta virtuellt nätverk för Azure Database Migration Service åtkomst till måldatabaserna.

  • MySQL-källan måste vara på en MySQL Community Edition som stöds. Om du vill kontrollera vilken version av MySQL-instansen du har går du till verktyget MySQL eller MySQL Workbench och kör följande kommando:

    SELECT @@version;
    
  • Azure Database for MySQL stöder endast InnoDB-tabeller. Om du vill konvertera MyISAM-tabeller till InnoDB kan du läsa artikeln Konvertera tabeller från MyISAM till InnoDB

  • Användaren måste ha behörighet att läsa data i källdatabasen.

  • För att slutföra en schemamigrering framgångsrikt på källservern krävs att användaren som utför migrationen har följande privilegier:

    • "SELECT" -behörighet på servernivå på källan.
    • Om du migrerar vyer måste användaren ha behörigheten "VISA VY" på källservern och behörigheten "SKAPA VY" på målservern.
    • Om utlösare migreras måste användaren ha behörigheten "TRIGGER" på käll- och målservern.
    • Om du migrerar rutiner (procedurer och/eller funktioner) måste användaren ha behörigheten "CREATE ROUTINE" och "ALTER ROUTINE" på servernivå på målet.
    • Om du migrerar händelser måste användaren ha behörigheten "EVENT" på käll- och målservern.
    • Om du migrerar användare/inloggningar måste användaren ha behörigheten "SKAPA ANVÄNDARE" på målservern.
    • "DROP" -behörighet på servernivå på målet för att släppa tabeller som kanske redan finns. Till exempel vid återförsök av en migrering.
    • Behörigheten "REFERENSER" på servernivå på målet för att skapa tabeller med sekundärnycklar.
    • Om du migrerar till MySQL 8.0 måste användaren ha behörigheten "SESSION_VARIABLES_ADMIN" på målservern.
    • "CREATE" -behörighet på servernivå på målet.
    • "INSERT" -behörighet på servernivå på målet.
    • "UPPDATERA" behörighet på servernivå på målet.
    • "DELETE" -behörighet på servernivå på målet.

Ändra storlek på Azure-måldatabasen for MySQL-instansen

Följande serverparametrar och konfigurationsändringar rekommenderas för att förbereda Azure Database for MySQL-målservern för snabbare datainläsning med Hjälp av Azure Database Migration Service.

  • max_allowed_packet – inställd på 1073741824 (dvs. 1 GB) för att förhindra anslutningsproblem på grund av stora rader.

  • slow_query_log – ställ in på AV för att stänga av loggen för långsamma frågor. Detta eliminerar de omkostnader som orsakas av långsam frågeloggning under datainläsningar.

  • query_store_capture_mode – ställ in på NONE för att inaktivera Query Store. Detta eliminerar de omkostnader som orsakas av samplingsaktiviteter från Query Store.

  • innodb_buffer_pool_size – Innodb_buffer_pool_size kan bara ökas genom att skala upp beräkning för Azure Database for MySQL-servern. Skala upp servern till 64 VCore General Purpose SKU från prisnivån i portalen under migreringen för att öka innodb_buffer_pool_size.

  • innodb_io_capacity & innodb_io_capacity_max – Ändra till 9000 från serverparametrarna i Azure-portalen för att förbättra I/O-användningen för att optimera för migreringshastighet.

  • innodb_write_io_threads & innodb_write_io_threads – Ändra till 4 från serverparametrarna i Azure-portalen för att förbättra migreringens hastighet.

  • Skala upp lagringsnivå – IOP:erna för Azure Database for MySQL-servern ökar gradvis med en ökning av lagringsnivån.

    • Med distributionsalternativet Enskild server rekommenderar vi att du ökar lagringsnivån för att öka de etablerade IOP:erna för snabbare belastning.
    • I distributionsalternativet Flexibel server rekommenderar vi att du kan skala (öka eller minska) IOPS oavsett lagringsstorlek.
    • Observera att lagringen bara kan skalas upp, inte ned.
  • Välj beräkningsstorlek och beräkningsnivå för den flexibla målservern baserat på den enskilda källserverns prisnivå och virtuella kärnor baserat på informationen i följande tabell.

    Prisnivå för enskild server Virtuella kärnor för enskild server Beräkningsstorlek för flexibel server Beräkningsnivå för flexibel server
    Basic* 1 Generell användning Standard_D16ds_v4
    Basic* 2 Generell användning Standard_D16ds_v4
    Generell användning* 4 Generell användning Standard_D16ds_v4
    Generell användning* 8 Generell användning Standard_D16ds_v4
    Generell användning 16 Generell användning Standard_D16ds_v4
    Generell användning 32 Generell användning Standard_D32ds_v4
    Generell användning 64 Generell användning Standard_D64ds_v4
    Minnesoptimerad 4 Affärskritisk Standard_E4ds_v4
    Minnesoptimerad 8 Affärskritisk Standard_E8ds_v4
    Minnesoptimerad 16 Affärskritisk Standard_E16ds_v4
    Minnesoptimerad 32 Affärskritisk Standard_E32ds_v4

* För migreringen väljer du Beräkning av generell användning 16 virtuella kärnor för den flexibla målservern för snabbare migreringar. Skala tillbaka till önskad beräkningsstorlek för målservern när migreringen är klar genom att följa rekommendationen om beräkningsstorlek i avsnittet Utföra aktiviteter efter migrering senare i den här artikeln.

När migreringen är klar kan du återställa serverparametrarna och konfigurationen till de värden som krävs av arbetsbelastningen.

Konfigurera DMS

När din flexibla målserver har distribuerats och konfigurerats måste du konfigurera DMS för att migrera din enda server till en flexibel server.

Registrera resursprovidern

Utför följande steg för att registrera resursprovidern Microsoft.DataMigration.

  1. Innan du skapar din första DMS-instans loggar du in på Azure-portalen och söker sedan efter och väljer Prenumerationer. Screenshot of a Select subscriptions from Azure Marketplace.

  2. Välj den prenumeration som du vill använda för att skapa DMS-instansen och välj sedan Resursprovidrar. Screenshot of a Select Resource Provider.

  3. Sök efter termen "Migrering" och välj sedan Registrera för Microsoft.DataMigration. Screenshot of a Register your resource provider.

Skapa en Database Migration Service-instans

  1. I Azure Portal väljer du + Skapa en resurs, söker efter Azure Database Migration Service och väljer sedan Azure Database Migration Service i listrutan.

    Azure Marketplace

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

    Create Azure Database Migration Service instance

  3. På sidan Create Migration Service anger du ett namn för tjänsten, prenumerationen och en ny eller befintlig resursgrupp.

  4. Välj en prisnivå och gå till nätverksskärmen. Offlinemigreringsfunktionen är endast tillgänglig på prisnivån Premium.

    Mer information om kostnader och prisnivåer finns på sidan med priser.

    Configure Azure Database Migration Service basic settings

  5. Välj ett befintligt virtuellt nätverk i listan eller ange namnet på det nya virtuella nätverk som ska skapas. Gå till skärmen granska + skapa. Du kan också lägga till taggar i tjänsten med hjälp av skärmen taggar.

    Det virtuella nätverket ger Azure Database Migration Service åtkomst till SQL Server-källan och Azure SQL Database-målinstansen.

    Configure Azure Database Migration Service network settings

    Mer information om hur du skapar ett virtuellt nätverk i Azure-portalen finns i artikeln Skapa ett virtuellt nätverk med Hjälp av Azure-portalen.

  6. Granska konfigurationerna och välj Skapa för att skapa tjänsten.

    Azure Database Migration Service create

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 Azure Portal väljer du Alla tjänster, söker efter Azure Database Migration Service och väljer sedan Azure Database Migration Services.

    Locate all instances of Azure Database Migration Service

  2. Välj din migreringstjänstinstans i sökresultaten och välj + Nytt migreringsprojekt.

    Create a new migration project

  3. På skärmen Nytt migreringsprojekt anger du ett namn för projektet, i rutan Typ av källserver väljer du MySQL. I rutan Målservertyp väljer du Azure Database For MySQL och i markeringsrutan Migreringsaktivitetstyp väljer du Datamigrering. Välj Skapa och kör aktivitet.

    Create Database Migration Service Project

    Kommentar

    Alternativt kan du välja Skapa projekt endast för att skapa migreringsprojektet nu och köra migreringen senare.

Konfigurera migreringsprojekt

  1. På skärmen Välj källa anger du anslutningsinformation för MySQL-källinstansen och väljer Nästa: Välj mål>>

    Add source details screen

  2. På skärmen Välj mål anger du anslutningsinformation för Azure Database for MySQL-målinstansen och väljer Nästa: Välj databaser>>

    Add target details screen

  3. På skärmen Välj databaser mappar du källan och måldatabasen för migrering och väljer Nästa: Konfigurera migreringsinställningar>>. Du kan välja alternativet Skrivskyddad källserver för att göra källan skrivskyddad, men var försiktig med att det här är en inställning på servernivå. Om den väljs anger den hela servern till skrivskyddad, inte bara de valda databaserna.

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

  4. På skärmen Konfigurera migreringsinställningar väljer du de tabeller som ska ingå i migreringen och väljer Nästa : Sammanfattning>>. Om måltabellerna har några data är de inte markerade som standard, men du kan uttryckligen välja dem och de trunkeras innan du påbörjar migreringen.

    Select tables screen

  5. På skärmen Sammanfattning i textrutan Aktivitetsnamn anger du ett namn för migreringsaktiviteten och granskar sammanfattningen för att se till att käll- och målinformationen matchar det du angav tidigare.

    Migration project summary

  6. Välj Starta migrering. Migreringsaktivitetsfönstret visas och Status för aktiviteten är Initieras. Statusen ändras till Körs när tabellmigreringarna startar.

    Running migration

Övervaka migreringen

  1. På skärmen migreringsaktivitet väljer du Uppdatera för att uppdatera visningen och ser förloppet för antalet slutförda tabeller.

  2. Du kan klicka på databasnamnet på aktivitetsskärmen för att se statusen för varje tabell när de migreras. Välj Uppdatera för att uppdatera visningen.

    Monitoring migration

Slutföra migreringen

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

    Complete migration

Aktiviteter efter migrering

Snabb migrering i en offlinemigrering är en programberoende process som ligger utanför omfånget för det här dokumentet, men följande aktiviteter efter migreringen föreskrivs:

  1. Skapa inloggningar, roller och behörigheter enligt programkraven.
  2. Återskapa alla utlösare i måldatabasen som extraherades under steget före migreringen.
  3. Utför rimlighetstestning för programmet mot måldatabasen för att certifiera migreringen.

Rensa resurser

Om du inte kommer att fortsätta att använda Database Migration Service kan du ta bort tjänsten med följande steg:

  1. I Azure Portal väljer du Alla tjänster, söker efter Azure Database Migration Service och väljer sedan Azure Database Migration Services.

    Locate all instances of DMS

  2. Välj din migreringstjänstinstans i sökresultaten och välj Ta bort tjänst.

    Delete the migration service

  3. I bekräftelsedialogrutan skriver du in namnet på tjänsten i textrutan TYPE THE DATABASE MIGRATION SERVICE NAME (NAMN på DATABASMIGRERINGSTJÄNSTEN) och väljer Ta bort.

    Confirm migration service delete

Nästa steg