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
Logga in på Azure-portalen. Sök efter och välj Prenumerationer.

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

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

Skapa en Database Migration Service instans
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.

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

På sidan Create Migration Service anger du ett namn för tjänsten, prenumerationen och en ny eller befintlig resursgrupp.
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.

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.

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.
Granska konfigurationerna och välj Skapa för att skapa tjänsten.

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

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

På 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.

Anteckning
Alternativt kan du välja Skapa endast projekt för att skapa migreringsprojektet nu och köra migreringen senare.
Konfigurera migreringsprojekt
På skärmen Välj källa anger du anslutningsinformationen för MySQL-källinstansen och väljer Nästa: Välj>>

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

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.

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

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.

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

Övervaka migreringen
På migreringsaktivitetsskärmen väljer du Uppdatera för att uppdatera visningen och visar förloppet för antalet slutförda tabeller.
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.

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

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:
- Skapa inloggningar, roller och behörigheter enligt programkraven.
- Återskapa alla utlösare på måldatabasen som extraherades under steget före migreringen.
- 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:
I Azure Portal väljer du Alla tjänster, söker efter Azure Database Migration Service och väljer sedan Azure Database Migration Services.

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

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

Nästa steg
- Information om kända problem och begränsningar när du utför migreringar med DMS finns i artikeln Vanliga problem – Azure Database Migration Service.
- Information om hur du felsöker anslutningsproblem för källdatabaser när du använder DMS finns i artikeln Problem med att ansluta källdatabaser.
- Information om Azure Database Migration Service finns i artikeln Vad är Azure Database Migration Service?.
- Information om Azure Database for MySQL finns i artikeln Vad är Azure Database for MySQL?.
- Vägledning om hur du använder DMS via PowerShell finns i artikeln PowerShell: Kör offlinemigrering från MySQL-databas till Azure Database for MySQL med DMS