Självstudie: Migrera från MySQL till Azure Database for MySQL – flexibel server online med DMS via Azure Portal

Du kan migrera din lokala eller andra molntjänster MySQL Server till Azure Database for MySQL – flexibel server med hjälp av Azure Database Migration Service (DMS), en fullständigt hanterad tjänst som är utformad för att möjliggöra sömlösa migreringar från flera databaskällor till Azure-dataplattformar. I den här självstudien utför vi en onlinemigrering av en exempeldatabas från en lokal MySQL-server till en Azure Database for MySQL – flexibel server (båda kör version 5.7) med hjälp av en DMS-migreringsaktivitet.

Kommentar

DMS onlinemigrering är nu allmänt tillgänglig. DMS stöder migrering till MySQL-versionerna 5.7 och 8.0 och stöder även migrering från mySQL-servrar med lägre version (v5.6 och senare versioner) till servrar med högre version. Dessutom stöder DMS migreringar mellan regioner, resursöverskridande grupper och migreringar mellan prenumerationer, så att du kan välja en region, resursgrupp och prenumeration för målservern som skiljer sig från vad som anges för källservern.

I den här tutorialen lär du dig följande:

  • Implementera metodtips för att skapa en flexibel server för snabbare datainläsning med DMS.
  • Skapa och konfigurera en flexibel målserver.
  • Skapa en DMS-instans.
  • Skapa ett MySQL-migreringsprojekt i DMS.
  • Migrera ett MySQL-schema med DMS.
  • Köra migreringen.
  • Övervaka migreringen.
  • Utför steg efter migreringen.
  • Implementera metodtips för att utföra en migrering.

Förutsättningar

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

  • Skapa eller använd en befintlig MySQL-instans (källservern).

  • Kontrollera att följande krav är uppfyllda för att slutföra onlinemigreringen:

    • Använd det kommandoradsverktyg för MySQL som du väljer för att kontrollera att är aktiverad på källservern genom att köra kommandot: . Om log_bin inte är aktiverat måste du aktivera det innan du påbörjar migreringen.

    • Kontrollera att användaren har REPLICATION CLIENT och REPLICATION REPLICA behörigheter på källservern för att läsa och tillämpa bin-loggen.

    • Om du riktar in dig på en onlinemigrering måste du konfigurera förfallodatumet för binlog på källservern för att se till att binlogfilerna inte rensas innan repliken genomför ändringarna. Vi rekommenderar att du startar minst två dagar. Parametern beror på vilken version av MySQL-servern du har. För MySQL 5.7 är expire_logs_days parametern (som standard är den inställd på 0, vilket inte är någon automatisk rensning). För MySQL 8.0 är binlog_expire_logs_seconds det (som standard är det inställt på 30 dagar). Efter en snabb snabb återställning kan du återställa värdet.

  • För att slutföra en schemamigrering måste användaren som utför migreringen på källservern ha följande behörigheter:

Begränsningar

När du förbereder migreringen bör du tänka på följande begränsningar.

  • När du migrerar icke-tabellobjekt stöder DMS inte namnbyte av databaser.

  • När du migrerar till en målserver med bin_log aktiverat måste du aktivera log_bin_trust_function_creators så att du kan skapa rutiner och utlösare.

  • DMS stöder för närvarande inte migrering av DEFINER-satsen för objekt. Alla objekttyper med definieringar från källan tas bort på måldatabasen. Efter migreringen anges standarddefinieraren för alla objekt som stöder en definitionssats och som skapas under schemamigreringen till den inloggning som används för att köra migreringen.

  • För närvarande stöder DMS endast migrering av ett schema som en del av dataflytt. Om inget har valts för dataflytt sker inte schemamigreringen. Om du väljer en tabell för schemamigrering markeras den också för dataflytt.

  • Stöd för onlinemigrering är begränsat till ROW binlog-formatet.

  • Azure Database for MySQL – Flexibel server stöder inte databaser med blandade fall. Databaser med blandade skiftlägen på källan ingår inte för en onlinemigrering.

  • Onlinemigrering stöder nu replikering av DDL-instruktioner vid migrering till en flexibel Azure Database for MySQL-målserver v8.0 eller v5.7.

    • Replikering av instruktioner stöds för databaser, tabeller och schemaobjekt (vyer, rutiner, utlösare) som har valts för schemamigrering när du konfigurerar en Azure DMS-migreringsaktivitet. Datadefinitions- och administrationsinstruktioner för databaser, tabeller och schemaobjekt som inte är markerade replikeras inte. Om du väljer en hel server för migrering replikeras instruktioner för tabeller, databaser och schemaobjekt som skapas på källservern när den första inläsningen har slutförts.

    • Azure DMS-instruktionsreplikering stöder alla datadefinitionsinstruktioner, förutom följande kommandon:

      • LOGFILE GROUP-uttryck
      • SERVER-instruktioner
      • SPATIAL REFERENCE SYSTEM-instruktioner
      • TABLESPACE-instruktioner
    • Azure DMS-instruktionsreplikering stöder alla instruktioner för dataadministration – kontohantering, förutom följande kommandon:

      • ANGE STANDARDROLL
      • ANGE LÖSENORD
    • Azure DMS-instruktionsreplikering stöder alla instruktioner för dataadministration – tabellunderhåll, förutom följande kommandon:

      • REPARATIONSTABELL
      • ANALYSERA TABELL
      • Kontrollsumma Tabell
    • Azure DMS-instruktionen eller binlogreplikeringen stöder inte följande syntax: CREATE TABLE 'b' as SELECT * FROM 'a';. Replikeringen av den här DDL:n resulterar i följande fel: "Endast BINLOG INSERT-, COMMIT- och ROLLBACK-instruktioner tillåts efter CREATE TABLE med START TRANSACTION-instruktionen."

  • Migreringstiden kan påverkas av beräkningsunderhållet på serverdelen, vilket kan återställa förloppet.

Metodtips för att skapa en flexibel server för snabbare datainläsningar med hjälp av DMS

DMS har stöd för migreringar mellan regioner, resursöverskridande grupper och migreringar mellan prenumerationer, så du kan välja lämplig region, resursgrupp och prenumeration för din flexibla målserver. Innan du skapar din flexibla målserver bör du överväga följande konfigurationsvägledning för att säkerställa snabbare datainläsning med hjälp av DMS.

  • Välj beräkningsstorlek och beräkningsnivå för den flexibla målservern baserat på mySQL-källserverkonfigurationen.

    1 För migreringen, som bästa praxis, bör du välja beräkningskapacitet med allmänt syfte på 16 vCPU eller högre för den flexibla målservern, för att snabba upp migreringen. Skala tillbaka till önskad beräkningsstorlek för målservern när migreringen är klar.

  • MySQL-versionen för den flexibla målservern måste vara större än eller lika med mySQL-källserverns.

  • Om du inte behöver distribuera den flexibla målservern i en specifik zon anger du värdet för parametern Tillgänglighetszon till Ingen inställning.

  • För nätverksanslutning går du till fliken Nätverk och väljer Privat åtkomst. Annars väljer du Offentlig åtkomst konfigurera brandväggsreglerna för att tillåta åtkomst till den flexibla målservern.

Skapa och konfigurera den flexibla målservern

Med dessa metodtips i åtanke skapar du din flexibla målserver och konfigurerar den sedan.

  • Skapa den flexibla målservern. Guidade steg finns i snabbstarten Snabbstart: Skapa en instans av Azure Database for MySQL med Azure Portal.

  • Konfigurera den nya flexibla målservern enligt följande:

    • Användaren som utför migreringen kräver följande behörigheter:

      • Kontrollera att användaren har REPLICATION_APPLIER eller BINLOG_ADMIN behörighet på målservern för att tillämpa den binära loggen.

      • Kontrollera att användaren har REPLICATION REPLICA behörighet på målservern.

      • Kontrollera att användaren har REPLICATION CLIENT och REPLICATION REPLICA behörighet på källservern för att läsa och tillämpa bin-loggen.

      • Om du vill skapa tabeller på målet måste användaren ha behörigheten CREATE .

      • Om du migrerar en tabell med DATA DIRECTORY eller INDEX DIRECTORY partitionsalternativ måste användaren ha behörigheten FILE .

      • Om du migrerar till en tabell med ett UNION alternativ måste användaren ha behörigheten SELECT, UPDATEoch DELETE för de tabeller som du mappar till en MERGE tabell.

      • Om du migrerar vyer måste du ha behörigheten CREATE VIEW .

      Tänk på att vissa privilegier kan vara nödvändiga beroende på innehållet i vyerna. Mer information finns i MySQL-dokumenten som är specifika för CREATE VIEW STATEMENT din version.

      • Om du migrerar händelser måste användaren ha behörigheten EVENT .
      • Om utlösare migreras måste användaren ha behörigheten TRIGGER .
      • Om du migrerar rutiner måste användaren ha behörigheten CREATE ROUTINE .
    • Konfigurera serverparametrarna på den flexibla målservern enligt följande:

      • Ange TLS-versionen och require_secure_transport-serverparametern så att de matchar värdena på källservern.

      • Ange sql_mode-serverparametern så att den matchar värdena på källservern.

      • Konfigurera serverparametrar på målservern så att de matchar alla värden som inte är standardvärden som används på källservern.

      • Konfigurera följande serverparametrar enligt beskrivningen för att säkerställa snabbare datainläsningar vid användning av DMS.

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

        • slow_query_log – inställd på OFF för att stänga av logg för långsamma frågor. Detta eliminerar de omkostnader som orsakas av långsam frågeloggning under datainläsningar.

        • innodb_buffer_pool_size – kan enbart ökas genom att utöka beräkningskraften för Azure Database for MySQL-servern. Skala upp servern till 64 vCore General Purpose SKU från portaltjänstens prisnivå under migreringen för att öka innodb_buffer_pool_size.

        • innodb_io_capacity och 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 migreringshastigheten.

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

    • Konfigurera replikerna på målservern så att de matchar replikerna på källservern.

Konfigurera DMS

När din flexibla målserver har distribuerats och konfigurerats måste du konfigurera DMS för att migrera mySQL-källservern 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 Portal och söker sedan efter och väljer Prenumerationer.

    Skärmbild av Välj prenumerationer från Azure Marketplace.

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

    Skärmbild av val av resursleverantör.

  3. Sök efter termen "Migrering" och välj sedan Registrera för Microsoft.DataMigration.

    Skärmbild av Registrera resursleverantören.

Skapa en DMS-instans (Database Migration Service)

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

    Skärmbild av Search Azure Database Migration Service.

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

    Skärmbild av Skapa Azure Database Migration Service-instans.

  3. På sidan Välj migreringsscenario och Database Migration Service under Migreringsscenario väljer du MySQL som källservertyp och väljer sedan Azure Database for MySQL som målservertyp och väljer sedan Välj.

    Skärmbild av Välj migreringsscenario.

  4. På sidan Skapa migreringstjänst går du till fliken Grundläggande under Projektinformation, väljer lämplig prenumeration och väljer sedan en befintlig resursgrupp eller skapar en ny.

  5. Under Instansinformation anger du ett namn för tjänsten, väljer en region och kontrollerar sedan att Azure har valts som tjänstläge.

  6. Till höger om prisnivån väljer du Konfigurera nivå.

    Skärmbild av Välj konfigurera nivå.

  7. På sidan Konfigurera väljer du prisnivån Premium med 4 virtuella kärnor för din DMS-instans och väljer sedan Använd.

    DMS Premium 4-vCore är kostnadsfritt i sex månader (183 dagar) från dms-tjänstens skapandedatum innan eventuella avgifter debiteras. Mer information om DMS-kostnader och prisnivåer finns på prissidan.

    Skärmbild av Välj prisnivå.

    Därefter måste vi ange det virtuella nätverk som ger DMS-instansen åtkomst till den flexibla målservern.

  8. På sidan Skapa migreringstjänst väljer du Nästa: Nätverk >>.

  9. På fliken Nätverk väljer du ett befintligt virtuellt nätverk i listan eller anger namnet på det nya virtuella nätverk som ska skapas och väljer sedan Granska + Skapa.

    Mer information finns i artikeln Skapa ett virtuellt nätverk med hjälp av Azure Portal..

    Skärmbild av Välj nätverk.

    Det virtuella nätverket måste konfigureras med åtkomst till både MySQL-källservern och den flexibla målservern, så se till att:

    • Skapa en brandväggsregel på servernivå eller konfigurera nätverk för både MySQL-källservern och Azure Database for MySQL-målservrar för att ge det virtuella nätverket för Azure Database Migration Service åtkomst till käll- och måldatabaserna.
    • Se till att dina regler för nätverkssäkerhetsgruppen (NSG) inte blockerar den utgående porten 443 av ServiceTag för ServiceBus, Storage och Azure Monitor. Mer information om NSG-trafikfiltrering för virtuella nätverk finns i Filtrera nätverkstrafik med nätverkssäkerhetsgrupper.

    Kommentar

    Om du vill lägga till taggar i tjänsten går du vidare till fliken Taggar genom att välja Nästa: Taggar. Det är valfritt att lägga till taggar i tjänsten.

  10. Gå till fliken Granska + skapa , granska konfigurationerna, visa villkoren och välj sedan Skapa.

    Skärmbild av Välj Granska+Skapa.

    Distributionen av din instans av DMS börjar nu. Meddelandet Distribution pågår visas i några minuter och sedan ändras meddelandet till Distributionen är klar.

  11. Välj Gå till resurs.

    Skärmbild av Välj Gå till resurs.

  12. Identifiera IP-adressen för DMS-instansen från resursöversiktssidan och skapa en brandväggsregel för mySQL-källservern och den flexibla målserverns tillåtna ip-adress för DMS-instansen.

Skapa ett migreringsprojekt

Utför följande steg för att skapa ett 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.

    Skärmbild av Hitta alla instanser av Azure Database Migration Service.

  2. I sökresultaten väljer du den DMS-instans som du skapade och väljer sedan + Nytt migreringsprojekt.

    Skärmbild av Välj ett nytt migreringsprojekt.

  3. På sidan Nytt migreringsprojekt anger du ett namn för projektet. I markeringsrutan Källservertyp väljer du MySQL. I markeringsrutan Målservertyp väljer du Azure Database For MySQL – Flexibel server, i markeringsrutan Migreringsaktivitetstyp väljer du Onlinedatamigrering och väljer sedan Skapa och kör aktivitet.

    Om du endast väljer Skapa projekt som migreringsaktivitetstyp skapas bara migreringsprojektet. du kan sedan köra migreringsprojektet vid ett senare tillfälle.

    Skärmbild av Skapa ett nytt migreringsprojekt.

Konfigurera migreringsprojektet

Utför följande steg för att konfigurera DMS-migreringsprojektet.

  1. På skärmen Välj källa måste vi se till att DMS finns i det virtuella nätverk som har anslutning till källservern. Här anger du källserverns namn, serverport, användarnamn och lösenord till källservern.

    Skärmbild av skärmen Lägg till källinformation.

  2. Välj Nästa: Välj mål >>och leta sedan upp servern baserat på prenumeration, plats och resursgrupp på skärmen Välj mål . Användarnamnet fylls i automatiskt och anger sedan lösenordet för den flexibla målservern.

    Skärmbild av Välj mål.

  3. Välj Nästa: Välj databaser >>och välj sedan Migrera alla tillämpliga databaser under Alternativ för servermigrering på fliken Välj databaser. Välj sedan de serverobjekt som du vill migrera under Välj databaser.

    Det finns nu alternativet Migrera alla tillämpliga databaser . När du väljer det här alternativet migreras alla användarskapade databaser och tabeller. Eftersom Azure Database for MySQL – Flexibel Server inte stöder databaser med blandade skiftlägen, kommer databaser med blandade skiftlägen från källan inte att inkluderas för en onlinemigrering.

    Skärmbild av Välj databas.

  4. I avsnittet Välj databaser går du till Källdatabas och väljer de databaser som ska migreras.

    Objekt som inte är tabellobjekt i de databaser som du har angett migreras, medan de objekt som du inte valde hoppas över. Du kan bara välja de käll- och måldatabaser vars namn matchar det på käll- och målservern.

    Om du väljer en databas på källservern som inte finns på målservern skapas den på målservern.

  5. Välj Nästa: Välj tabeller >> för att gå till fliken Välj tabeller .

    Innan fliken fylls hämtar DMS tabellerna från de valda databaserna på källan och målet och avgör sedan om tabellen finns och innehåller data.

  6. Välj de tabeller som du vill migrera.

    Om den valda källtabellen inte finns på målservern ser onlinemigreringsprocessen till att tabellschemat och data migreras till målservern.

    Skärmbild av Välj tabeller.

    DMS verifierar dina indata och om valideringen godkänns kan du starta migreringen.

  7. När du har konfigurerat för schemamigrering väljer du Granska och starta migreringen.

    Du behöver bara gå till fliken Konfigurera migreringsinställningar om du försöker felsöka misslyckade migreringar.

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

    Skärmbild av Välj sammanfattning.

  9. Välj Starta migrering.

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

    Skärmbild av Körstatus.

Övervaka migreringen

  1. När aktiviteten Inledande inläsning har slutförts går du till fliken Initial inläsning för att visa slutförandestatus och antalet slutförda tabeller.

    Skärmbild av en slutförd inledande inläsningsmigrering.

    När den inledande inläsningsaktiviteten har slutförts navigeras du automatiskt till fliken Replikera dataändringar. Du kan övervaka migreringsförloppet eftersom skärmen uppdateras automatiskt var 30:e sekund.

  2. Välj Uppdatera för att uppdatera visningen och visa sekunderna bakom källan när det behövs.

    Skärmbild av övervakning av migration.

  3. Övervaka sekunderna bakom källan och så snart den närmar sig 0 börjar du snabbt genom att gå till fliken Starta snabbmeny högst upp på skärmen för migreringsaktivitet.

  4. Följ stegen i snabbfönstret innan du är redo att utföra en snabb användning.

  5. När du har slutfört alla steg väljer du Bekräfta och väljer sedan Använd.

    Skärmbild av Genomföra övergång.

Utföra aktiviteter efter migreringen

När migreringen är klar slutför du följande aktiviteter efter migreringen.

  • Utför rimlighetstestning för programmet mot måldatabasen för att certifiera migreringen.

  • Uppdatera anslutningssträng så att den pekar på den nya flexibla servern.

  • Om du skalar upp den flexibla målservern för snabbare migrering skalar du tillbaka den genom att välja beräkningsstorlek och beräkningsnivå för den flexibla servern baserat på mySQL-källserverkonfigurationen.

    • Utför följande steg för att rensa DMS-resurserna:

      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.

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

      3. I bekräftelsedialogrutan anger du namnet på instansen i textrutan ANGE NAMNET PÅ DATAMIGRERINGSTJÄNSTEN och väljer sedan Ta bort.

Metodtips för migrering

När du utför en migrering bör du tänka på följande metodtips.

  • Som en del av identifieringen och utvärderingen, ta med serverns SKU, processoranvändning, lagring, databasstorlekar och användning av tillägg som några av de kritiska data för att underlätta migreringar.

  • Utför testmigreringar innan du migrerar för produktion:

    • Testmigreringar är viktiga för att säkerställa att du täcker alla aspekter av databasmigreringen, inklusive programtestning. Det bästa sättet är att börja med att köra en migrering endast i testsyfte. Efter att en nyligen påbörjad migrering går in i fasen för att replikera dataändringar med minimal fördröjning, använd endast ditt flexibla servermål för att köra testarbetsbelastningar. Använd det målet för att testa programmet för att säkerställa förväntad prestanda och resultat. Om du migrerar till en högre MySQL-version testar du programkompatibiliteten.

    • När testningen är klar kan du migrera produktionsdatabaserna. Nu måste du slutföra dag och tid för produktionsmigrering. Helst ska programanvändningen vara låg vid denna tidpunkt. Alla intressenter som måste delta bör vara tillgängliga och redo. Produktionsmigreringen kräver en noggrann övervakning. För en onlinemigrering måste replikeringen slutföras innan du utför övergången för att förhindra dataförlust.

  • Omdirigera alla beroende program för att få åtkomst till den nya primära databasen och se till att källservern är skrivskyddad. Öppna sedan programmen för produktionsanvändning.

  • När programmet startar på den flexibla målservern, övervaka databasens prestanda noga för att avgöra om det finns behov av prestandajustering.