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 fullständig databasmigrering på en lokal MySQL-instans för att 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 att 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 genom att bara ändra källserverns namn och autentiseringsuppgifter. Dessutom stöds även migrering från mySQL-servrar med lägre version (v5.6 och senare) till högre versioner.

Viktigt

För onlinemigrering kan du använda verktyg med öppen källkod som MyDumper/MyLoader med datareplikering.

Anteckning

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

Anteckning

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

I den här guiden får du lära dig att:

  • Migrera databasschema med verktyget mysqldump.
  • 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:

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

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

  • MySQL Offline-migrering stöds endast på Premium DMS SKU.

  • Skapa en instans i Azure Database for MySQL. Se artikeln Använda MySQL Workbench för att ansluta och fråga efter data för information om hur du ansluter och skapar en databas med hjälp av Workbench-programmet. Den Azure Database for MySQL versionen ska vara lika med eller högre än den lokala MySQL-versionen . Till exempel kan MySQL 5.7 migrera till Azure Database for MySQL 5.7 eller uppgraderas till 8.

  • Skapa en Microsoft Azure Virtual Network för Azure Database Migration Service med hjälp av Azure Resource Manager-distributionsmodellen, som ger plats-till-plats-anslutning till dina lokala källservrar med hjälp av ExpressRoute eller VPN. Mer information om hur du skapar ett virtuellt nätverk finns i Virtual Network-dokumentationenoch i synnerhet snabbstartsartiklarna med stegvisa detaljer.

    Anteckning

    Om du använder ExpressRoute med nätverks-peering till Microsoft under installationen av virtuellt nätverkNät lägger du till följande tjänstslutpunkter i undernätet där tjänsten ska etableras:

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

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

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

  • Öppna brandväggen Windows att tillåta anslutningar från Virtual Network för Azure Database Migration Service att få åtkomst till mySQL-källservern, 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 att tillåta Virtual Network 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.

Ändra storlek på Azure Database for MySQL instansen

För att förbereda Azure Database for MySQL för snabbare databelastningar med Azure Database Migration Service, rekommenderas följande serverparametrar och konfigurationsändringar.

  • max_allowed_packet – ange till 1073741824 (dvs. 1 GB) för att förhindra eventuella anslutningsproblem på grund av stora rader.
  • slow_query_log – ställ in på AV för att stänga av den långsamma frågeloggen. Detta eliminerar omkostnaderna som orsakas av långsam frågeloggning under databelastningar.
  • query_store_capture_mode – ställ in på INGEN för att stänga av Query Store. Detta eliminerar omkostnaderna som orsakas av samplingsaktiviteter av 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 server. Skala upp servern till en SKU Generell användning med 64 virtuella kärnor från portalens prisnivå under migreringen för att öka innodb_buffer_pool_size.
  • innodb_io_capacity & innodb_io_capacity_max – Ändra till 9 000 från serverparametrarna i Azure Portal för att förbättra I/O-användningen för att optimera migreringshastigheten.
  • innodb_write_io_threads & innodb_write_io_threads – Ändra till 4 från serverparametrarna i Azure Portal för att förbättra migreringshastigheten.
  • Skala upp Storage-nivå – IOPs för Azure Database for MySQL-servern ökar progressivt med ökningen av lagringsnivån.
    • För snabbare belastningar i distributionsalternativet Enskild server rekommenderar vi att du ökar lagringsnivån för att öka antalet etablerade IOP:er.
    • I distributionsalternativet Flexibel server rekommenderar vi att du kan skala (öka eller minska) IOPS oavsett lagringsstorlek.
    • Observera att lagringsstorleken bara kan skalas upp, inte ned.

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

Migrera databasschema

För att överföra alla databasobjekt som tabellscheman, index och lagrade procedurer måste vi extrahera schemat från källdatabasen och tillämpa det på måldatabasen. Du kan extrahera schema med mysqldump med parametern --no-data. För detta behöver du en dator som kan ansluta till både MySQL-källdatabasen och Azure Database for MySQL.

Om du vill exportera schemat med mysqldump kör du följande kommando:

mysqldump -h [servername] -u [username] -p[password] --databases [db name] --no-data > [schema file path]

Exempel:

mysqldump -h 10.10.123.123 -u root -p --databases migtestdb --no-data > d:\migtestdb.sql

Om du vill importera schemat till Azure Database for MySQL kör du följande kommando:

mysql.exe -h [servername] -u [username] -p[password] [database]< [schema file path]

Exempel:

mysql.exe -h mysqlsstrgt.mysql.database.azure.com -u docadmin@mysqlsstrgt -p migtestdb < d:\migtestdb.sql

Om du har främmande nycklar eller utlösare i schemat hanteras den parallella datainläsningen under migreringen av migreringsuppgiften. Du behöver inte ta bort främmande nycklar eller utlösare under schemamigrering.

Registrera resursprovidern Microsoft.DataMigration

  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 Resursproviders.

    Visa resursprovidrar

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

    Registrera resursprovider

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.

    Skapa Azure Database Migration Service-instans

  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. Offlinemigreringsfunktioner är endast tillgängliga Premium prisnivån.

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

    Konfigurera Azure Database Migration Service grundläggande inställningar

  5. Välj ett befintligt virtuellt nätverk i listan eller ange namnet på det nya virtuella nätverk som ska skapas. Gå till gransknings- och skapa-skärmen. 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 käll-SQL Server och målinstansen Azure SQL Database målinstansen.

    Konfigurera Azure Database Migration Service nätverksinställningar

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

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

    Azure Database Migration Service skapa

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.

    Leta upp alla instanser av Azure Database Migration Service

  2. Välj din migreringstjänstinstans bland sökresultaten och välj + Ny migrering Project.

    Skapa ett nytt migreringsprojekt

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

    Skapa Database Migration Service-projekt

    Anteckning

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

Konfigurera migreringsprojekt

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

    Skärmen Lägg till källinformation

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

    Skärmen Lägg till målinformation

  3. På skärmen Välj databaser mappar du käll- och måldatabasen för migrering och väljer Nästa: Konfigurera migreringsinställningar>>. Du kan välja alternativet Gör källservern skrivskyddade för att göra källan skrivskyddade, men var försiktig så att det här är en inställning på servernivå. Om du väljer det här alternativet ställs hela servern in på skrivskydd, 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. Skärmen Välj databasinformation

    Anteckning

    Du kan välja flera databaser i det här steget, men det finns gränser för hur många och hur snabbt databaser kan migreras på det här sättet, eftersom varje databas kommer att dela beräkning. Med standardkonfigurationen för Premium SKU försöker varje migreringsuppgift migrera två tabeller parallellt. Dessa tabeller kan komma från vilken som helst av de valda databaserna. Om det inte är tillräckligt snabbt kan du dela upp databasmigreringsaktiviteter i olika migreringsuppgifter och skala över flera tjänster. Det finns också en gräns på 10 instanser av Azure Database Migration Service per prenumeration per region. Mer detaljerad kontroll över migreringens dataflöde och parallellisering finns i artikeln PowerShell: Kör offlinemigrering från MySQL-databas för att Azure Database for MySQL dms

  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.

    Skärmen Välj tabeller

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

    Sammanfattning av migreringsprojekt

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

    Köra migrering

Övervaka migreringen

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

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

    Övervaka migrering

Slutföra migreringen

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

    Slutföra migrering

Aktiviteter efter migreringen

Direktmigrering 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 på måldatabasen som extraherades under steget före migreringen.
  3. Utför en ren testning av 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.

    Leta upp alla instanser av DMS

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

    Ta bort migreringstjänsten

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

    Bekräfta borttagning av migreringstjänsten

Nästa steg