Självstudie: Migrera MySQL till Azure Database for MySQL online med DMSTutorial: Migrate MySQL to Azure Database for MySQL online using DMS

Du kan använda Azure Database Migration Service för att migrera databaserna från en lokal MySQL-instans till Azure Database for MySQL med minimal stillestånds tid.You can use Azure Database Migration Service to migrate the databases from an on-premises MySQL instance to Azure Database for MySQL with minimal downtime. Du kan med andra ord migrera med minimal stilleståndstid i programmet.In other words, migration can be achieved with minimum downtime to the application. I den här självstudien migrerar du exempel databasen anställda från en lokal instans av MySQL 5,7 till Azure Database for MySQL med hjälp av en online-migrering i Azure Database migration service.In this tutorial, you migrate the Employees sample database from an on-premises instance of MySQL 5.7 to Azure Database for MySQL by using an online migration activity in Azure Database Migration Service.

I den här guiden får du lära dig att:In this tutorial, you learn how to:

  • Migrera exempelschemat med verktyget mysqldump.Migrate the sample schema using mysqldump utility.
  • Skapa en instans av Azure Database Migration Service.Create an instance of Azure Database Migration Service.
  • Skapa ett migreringsjobb med hjälp av Azure Database Migration Service.Create a migration project by using Azure Database Migration Service.
  • Köra migreringen.Run the migration.
  • Övervaka migreringen.Monitor the migration.

Anteckning

Om du använder Azure Database Migration Service för att utföra en online-migrering måste du skapa en instans utifrån pris nivån Premium.Using Azure Database Migration Service to perform an online migration requires creating an instance based on the Premium pricing tier.

Viktigt

För en optimal migrering rekommenderar Microsoft att du skapar en instans av Azure Database Migration Service i samma Azure-region som mål databasen.For an optimal migration experience, Microsoft recommends creating an instance of Azure Database Migration Service in the same Azure region as the target database. Att flytta data mellan regioner eller geografiska områden kan göra migreringsprocessen långsammare och leda till fel.Moving data across regions or geographies can slow down the migration process and introduce errors.

Anteckning

Kompensations fri kommunikationBias-free communication

Microsoft stöder en mängd olika och införlivande miljöer.Microsoft supports a diverse and inclusionary environment. Den här artikeln innehåller referenser till ordet slav.This article contains references to the word slave. Microsofts stil guide för en kostnads fri kommunikation känner igen detta som ett undantags ord.The Microsoft style guide for bias-free communication recognizes this as an exclusionary word. Ordet används i den här artikeln för konsekvens eftersom det är det ord som visas i program varan.The word is used in this article for consistency because it's currently the word that appears in the software. När program varan har uppdaterats för att ta bort ordet uppdateras den här artikeln som en justering.When the software is updated to remove the word, this article will be updated to be in alignment.

FörutsättningarPrerequisites

För att slutföra den här kursen behöver du:To complete this tutorial, you need to:

  • Ladda ned och installera MySQL Community Edition 5.6 eller 5.7.Download and install MySQL community edition 5.6 or 5.7. Den lokala MySQL-versionen måste överensstämma med Azure Database for MySQL-versionen.The on-premises MySQL version must match with Azure Database for MySQL version. Exempelvis kan MySQL 5.6 endast migreras till Azure Database for MySQL 5.6 och inte uppgraderat till 5.7.For example, MySQL 5.6 can only migrate to Azure Database for MySQL 5.6 and not upgraded to 5.7. Migreringar till eller från MySQL 8,0 stöds inte.Migrations to or from MySQL 8.0 are not supported.

  • Skapa en instans i Azure Database for MySQL.Create an instance in Azure Database for MySQL. Läs artikeln Använda MySQL Workbench för att ansluta och fråga efter data om du vill ha information om hur du ansluter och skapar en databas med Azure-portalen.Refer to the article Use MySQL Workbench to connect and query data for details about how to connect and create a database using the Azure portal.

  • Skapa en Microsoft Azure Virtual Network för Azure Database Migration Service med hjälp av Azure Resource Manager distributions modell, som tillhandahåller plats-till-plats-anslutning till dina lokala käll servrar genom att använda antingen ExpressRoute eller VPN.Create a Microsoft Azure Virtual Network for Azure Database Migration Service by using Azure Resource Manager deployment model, which provides site-to-site connectivity to your on-premises source servers by using either ExpressRoute or VPN. Mer information om hur du skapar ett virtuellt nätverk finns i Virtual Network-dokumentationenoch i synnerhet snabb starts artiklar med stegvisa anvisningar.For more information about creating a virtual network, see the Virtual Network Documentation, and especially the quickstart articles with step-by-step details.

    Anteckning

    Om du använder ExpressRoute med nätverks-peering till Microsoft under installationen av Virtual networkNet lägger du till följande tjänst slut punkter i under nätet där tjänsten ska tillhandahållas:During virtual networkNet setup, if you use ExpressRoute with network peering to Microsoft, add the following service endpoints to the subnet in which the service will be provisioned:

    • Slut punkt för mål databas (till exempel SQL-slutpunkt, Cosmos DB slut punkt och så vidare)Target database endpoint (for example, SQL endpoint, Cosmos DB endpoint, and so on)
    • Lagrings slut punktStorage endpoint
    • Service Bus-slutpunktService bus endpoint

    Den här konfigurationen är nödvändig eftersom Azure Database Migration Service saknar Internet anslutning.This configuration is necessary because Azure Database Migration Service lacks internet connectivity.

  • Se till att de virtuella nätverkets säkerhets grupp regler inte blockerar följande utgående kommunikations portar till Azure Database Migration Service: 443, 53, 9354, 445, 12000.Ensure that your virtual network Network Security Group rules don't block the following outbound communication ports to Azure Database Migration Service: 443, 53, 9354, 445, 12000. Mer information om NSG för trafik filtrering i virtuellt nätverk finns i artikeln filtrera nätverks trafik med nätverks säkerhets grupper.For more detail on virtual network NSG traffic filtering, see the article Filter network traffic with network security groups.

  • Konfigurera din Windows-brandvägg för databasmotoråtkomst.Configure your Windows Firewall for database engine access.

  • Öppna Windows-brandväggen för att tillåta Azure Database Migration Service åtkomst till käll-MySQL-servern som standard är TCP-port 3306.Open your Windows firewall to allow Azure Database Migration Service to access the source MySQL Server, which by default is TCP port 3306.

  • När du använder en brand Väggs installation framför dina käll databaser, kan du behöva lägga till brand Väggs regler för att tillåta Azure Database Migration Service åtkomst till käll databaserna för migrering.When using a firewall appliance in front of your source database(s), you may need to add firewall rules to allow Azure Database Migration Service to access the source database(s) for migration.

  • Skapa en brand Väggs regel på server nivå för Azure Database for MySQL att tillåta Azure Database migration service åtkomst till mål databaserna.Create a server-level firewall rule for Azure Database for MySQL to allow Azure Database Migration Service access to the target databases. Ange under nätets intervall för det virtuella nätverk som används för Azure Database Migration Service.Provide the subnet range of the virtual network used for Azure Database Migration Service.

  • MySQL-källan måste vara på en MySQL Community Edition som stöds.The source MySQL must be on supported MySQL community edition. 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:To determine the version of MySQL instance, in the MySQL utility or MySQL Workbench, run the following command:

    SELECT @@version;
    
  • Azure Database for MySQL stöder endast InnoDB-tabeller.Azure Database for MySQL supports only InnoDB tables. Om du vill konvertera MyISAM-tabeller till InnoDB kan du läsa artikeln Konvertera tabeller från MyISAM till InnoDBTo convert MyISAM tables to InnoDB, see the article Converting Tables from MyISAM to InnoDB

  • Aktivera binär loggning i filen my.ini (Windows) eller my.cnf (Unix) i källdatabasen med följande konfiguration:Enable binary logging in the my.ini (Windows) or my.cnf (Unix) file in source database by using the following configuration:

    • server_id = 1 eller större (endast relevant för MySQL 5.6)server_id = 1 or greater (relevant only for MySQL 5.6)
    • logg-bin = <path> (gäller endast för MySQL 5,6) Till exempel: log-bin = E:\ MySQL_logs \BinLoglog-bin =<path> (relevant only for MySQL 5.6) For example: log-bin = E:\MySQL_logs\BinLog
    • binlog_format = radbinlog_format = row
    • Expire_logs_days = 5 (vi rekommenderar att inte använda noll, gäller endast MySQL 5,6)Expire_logs_days = 5 (it's recommended to not use zero; relevant only for MySQL 5.6)
    • Binlog_row_image = fullständig (endast relevant för MySQL 5.6)Binlog_row_image = full (relevant only for MySQL 5.6)
    • log_slave_updates = 1log_slave_updates = 1
  • Användaren måste ha rollen ReplicationAdmin med följande behörigheter:The user must have the ReplicationAdmin role with the following privileges:

    • REPLIKERINGSKLIENT – Krävs endast för ändringsbearbetningsuppgifter.REPLICATION CLIENT - Required for Change Processing tasks only. Med andra ord kräver inte uppgifter för fullständig inläsning detta privilegium.In other words, Full Load only tasks don't require this privilege.
    • REPLIKERINGSREPLIK – Krävs endast för ändringsbearbetningsuppgifter.REPLICATION REPLICA - Required for Change Processing tasks only. Med andra ord kräver inte uppgifter för fullständig inläsning detta privilegium.In other words, Full Load only tasks don't require this privilege.
    • SUPER – Krävs endast i versioner som är äldre än MySQL 5.6.6.SUPER - Only required in versions earlier than MySQL 5.6.6.

Migrera exempelschematMigrate the sample schema

För att slutföra alla databasobjekt som tabellscheman, index och lagrade procedurer måste vi extrahera schemat från källdatabasen och tillämpa det på databasen.To complete all the database objects like table schemas, indexes and stored procedures, we need to extract schema from the source database and apply to the database. Du kan extrahera schema med mysqldump med parametern --no-data.To extract schema, you can use mysqldump with the --no-data parameter.

Förutsatt att du har MySQL- anställda exempel databas i det lokala systemet, är kommandot för schema migrering med mysqldump:Assuming you have MySQL Employees sample database in the on-premises system, the command to do schema migration using mysqldump is:

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

Exempel:For example:

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

Om du vill importera schemat till Azure Database for MySQL-mål kör du följande kommando:To import schema to Azure Database for MySQL target, run the following command:

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

Exempel:For example:

mysql.exe -h shausample.mysql.database.azure.com -u dms@shausample -p employees < d:\employees.sql

Om du har sekundärnycklar i ditt schema misslyckas den första inläsningen och den kontinuerliga synkroniseringen av migreringen.If you have foreign keys in your schema, the initial load and continuous sync of the migration will fail. Kör följande skript i MySQL Workbench för att extrahera skriptet för att ta bort sekundär nyckel och lägga till ett sekundär nyckel skript.Execute the following script in MySQL Workbench to extract the drop foreign key script and add foreign key script.

SET group_concat_max_len = 8192;
    SELECT SchemaName, GROUP_CONCAT(DropQuery SEPARATOR ';\n') as DropQuery, GROUP_CONCAT(AddQuery SEPARATOR ';\n') as AddQuery
    FROM
    (SELECT
    KCU.REFERENCED_TABLE_SCHEMA as SchemaName,
    KCU.TABLE_NAME,
    KCU.COLUMN_NAME,
    CONCAT('ALTER TABLE ', KCU.TABLE_NAME, ' DROP FOREIGN KEY ', KCU.CONSTRAINT_NAME) AS DropQuery,
    CONCAT('ALTER TABLE ', KCU.TABLE_NAME, ' ADD CONSTRAINT ', KCU.CONSTRAINT_NAME, ' FOREIGN KEY (`', KCU.COLUMN_NAME, '`) REFERENCES `', KCU.REFERENCED_TABLE_NAME, '` (`', KCU.REFERENCED_COLUMN_NAME, '`) ON UPDATE ',RC.UPDATE_RULE, ' ON DELETE ',RC.DELETE_RULE) AS AddQuery
    FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE KCU, information_schema.REFERENTIAL_CONSTRAINTS RC
    WHERE
      KCU.CONSTRAINT_NAME = RC.CONSTRAINT_NAME
      AND KCU.REFERENCED_TABLE_SCHEMA = RC.UNIQUE_CONSTRAINT_SCHEMA
  AND KCU.REFERENCED_TABLE_SCHEMA = 'SchemaName') Queries
  GROUP BY SchemaName;

Kör drop-sekundärnyckeln (som är den andra kolumnen) i frågeresultatet till drop-sekundärnyckeln.Run the drop foreign key (which is the second column) in the query result to drop foreign key.

Anteckning

Azure DMS stöder inte referens åtgärden CASCADE, som hjälper dig att automatiskt ta bort eller uppdatera en matchande rad i den underordnade tabellen när en rad tas bort eller uppdateras i den överordnade tabellen.Azure DMS does not support the CASCADE referential action, which helps to automatically delete or update a matching row in the child table when a row is deleted or updated in the parent table. Mer information finns i avsnittet referens åtgärder i artikelns begränsningar för sekundär nyckel.For more information, in the MySQL documentation, see the Referential Actions section of the article FOREIGN KEY Constraints. Azure DMS kräver att du släpper sekundär nyckel begränsningar i mål databas servern under den inledande data inläsningen och du kan inte använda referens åtgärder.Azure DMS requires that you drop foreign key constraints in the target database server during the initial data load, and you cannot use referential actions. Om din arbets belastning är beroende av att uppdatera en relaterad underordnad tabell via den här referens åtgärden, rekommenderar vi att du utför en dumpning och återställning i stället.If your workload depends on updating a related child table via this referential action, we recommend that you perform a dump and restore instead.

Viktigt

Om du importerar data med hjälp av en säkerhets kopia tar du bort kommandona skapa avskärmar manuellt eller genom att använda kommandot--Skip-definar när du utför en mysqldump.If importing data using a backup, remove the CREATE DEFINER commands manually or by using the --skip-definer command when performing a mysqldump. Definar kräver Super-behörighet för att skapa och är begränsad i Azure Database for MySQL.DEFINER requires super privileges to create and is restricted in Azure Database for MySQL.

Om du har en utlösare i data (infogning eller uppdaterings utlösare), kommer den att upprätthålla data integriteten i målet före replikerade data från källan.If you have a trigger in the data (insert or update trigger), it will enforce data integrity in the target ahead of the replicated data from the source. Rekommendationen är att inaktivera utlösare i alla tabeller för målet under migreringen och sedan aktivera utlösare när migreringen är klar.The recommendation is to disable triggers in all the tables at the target during migration, and then enable the triggers after migration is done.

Om du vill inaktivera utlösare i mål databasen använder du följande kommando:To disable triggers in the target database, use the following command:

SELECT Concat('DROP TRIGGER ', Trigger_Name, ';') FROM  information_schema.TRIGGERS WHERE TRIGGER_SCHEMA = 'your_schema';

Registrera resursprovidern Microsoft.DataMigrationRegister the Microsoft.DataMigration resource provider

  1. Logga in på Azure Portal och välj Alla tjänster och sedan Prenumerationer.Sign in to the Azure portal, select All services, and then select Subscriptions.

    Visa portalprenumerationer

  2. Välj den prenumeration där du vill skapa instansen av Azure Database Migration Service och välj sedan resurs leverantörer.Select the subscription in which you want to create the instance of Azure Database Migration Service, and then select Resource providers.

    Visa resursprovidrar

  3. Sök efter migrering och välj sedan Registrera till höger om Microsoft. data migration.Search for migration, and then to the right of Microsoft.DataMigration, select Register.

    Registrera resursprovider

Skapa en DMS-instansCreate a DMS instance

  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.In the Azure portal, select + Create a resource, search for Azure Database Migration Service, and then select Azure Database Migration Service from the drop-down list.

    Azure Marketplace

  2. På sidan Azure Database Migration Service väljer du Skapa.On the Azure Database Migration Service screen, select Create.

    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.On the Create Migration Service screen, specify a name for the service, the subscription, and a new or existing resource group.

  4. Välj ett befintligt virtuellt nätverk eller skapa ett nytt.Select an existing virtual network or create a new one.

    Det virtuella nätverket ger Azure Database Migration Service åtkomst till käll SQL Server och mål Azure SQL Database instansen.The virtual network provides Azure Database Migration Service with access to the source SQL Server and the target Azure SQL Database instance.

    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.For more information about how to create a virtual network in the Azure portal, see the article Create a virtual network using the Azure portal.

  5. Välj en prisnivå.Select a pricing tier.

    Mer information om kostnader och prisnivåer finns på sidan med priser.For more information on costs and pricing tiers, see the pricing page.

    Konfigurera Azure Database Migration Service-instansinställningar

  6. Välj Skapa för att skapa tjänsten.Select Create to create the service.

Skapa ett migreringsprojektCreate a migration project

När tjänsten har skapats letar du reda på den i Azure Portal, öppnar den och skapar sedan ett nytt migreringsprojekt.After the service is created, locate it within the Azure portal, open it, and then create a new migration project.

  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.In the Azure portal, select All services, search for Azure Database Migration Service, and then select Azure Database Migration Services.

    Hitta alla instanser av Azure Database Migration Service

  2. På skärmen Azure Database migration Services söker du efter namnet på Azure Database migration service-instansen som du skapade och väljer sedan instansen.On the Azure Database Migration Services screen, search for the name of Azure Database Migration Service instance that you created, and then select the instance.

    Hitta din instans av Azure Database Migration Service

  3. Välj + Nytt migreringsprojekt.Select + New Migration Project.

  4. På sidan Nytt migreringsprojekt anger du namnet på projektet, I textrutan Typ av källserver väljer du MySQL, i textrutan Målservertyp väljer du AzureDbForMySQL.On the New migration project screen, specify a name for the project, in the Source server type text box, select MySQL, in the Target server type text box, select AzureDbForMySQL.

  5. I avsnittet Välj aktivitetstyp väljer du Online-datamigreringIn the Choose type of activity section, select Online data migration

    Skapa Database Migration Service-projekt

    Anteckning

    Alternativt kan du välja skapa endast projekt för att skapa migreringsjobbet nu och utföra migreringen senare.Alternately, you can choose Create project only to create the migration project now and execute the migration later.

  6. Välj Spara, notera kraven för att använda DMS för att migrera data och välj sedan Skapa och kör aktivitet.Select Save, note the requirements to successfully use DMS to migrate data, and then select Create and run activity.

Ange källinformationSpecify source details

  1. På sidan Lägg till källinformation anger du anslutningsinformationen för MySQL-källinstansen.On the Add Source Details screen, specify the connection details for the source MySQL instance.

    Skärmen Lägg till källinformation

Ange målinformationSpecify target details

  1. Välj Spara och ange på sidan Målinformation anslutningsinformationen för Azure Database for MySQL-målservern, som är den företablerade instansen av Azure Database for MySQL som schemat Anställda-distribuerades till med mysqldump.Select Save, and then on the Target details screen, specify the connection details for the target Azure Database for MySQL server, which is the pre-provisioned instance of Azure Database for MySQL to which the Employees schema was deployed by using mysqldump.

    Skärmen Målinformation

  2. Välj Spara och mappa sedan på sidan Mappa till måldatabaser käll- och måldatabasen för migrering.Select Save, and then on the Map to target databases screen, map the source and the target database for migration.

    Om mål databasen innehåller samma databas namn som käll databasen Azure Database Migration Service väljer mål databasen som standard.If the target database contains the same database name as the source database, Azure Database Migration Service selects the target database by default.

    Mappa till måldatabaser

    Anteckning

    Du kan välja flera databaser i det här steget, men varje instans av Azure Database Migration Service har stöd för upp till 4 databaser för samtidig migrering.Though you can select multiple databases in this step, each instance of Azure Database Migration Service supports up to 4 databases for concurrent migration. Det finns också en gräns på 10 instanser av Azure Database Migration Service per prenumeration per region.Also, there is a limit of 10 instances of Azure Database Migration Service per subscription per region. Om du till exempel har 80 databaser att migrera kan du migrera 40 till samma region samtidigt, men endast om du har skapat 10 instanser av Azure Database Migration Service.For example, if you have 80 databases to migrate, you can migrate 40 of them to the same region concurrently, but only if you have created 10 instances of the Azure Database Migration Service.

  3. Välj Spara. I rutan Aktivitetsnamn på skärmen Migreringssammanfattning anger du ett namn för migreringsaktiviteten och granskar sedan sammanfattningen för att se till att informationen för källa och mål matchar det du angav tidigare.Select Save, on the Migration summary screen, in the Activity name text box, specify a name for the migration activity, and then review the summary to ensure that the source and target details match what you previously specified.

    Migreringssammanfattning

Köra migreringenRun the migration

  • Välj Kör migrering.Select Run migration.

    Fönstret migrering av aktivitet visas och aktivitetens status initieras.The migration activity window appears, and the Status of the activity is initializing.

Övervaka migreringenMonitor the migration

  1. På migreringsaktivitetssidan väljer du Uppdatera för att uppdatera visningen tills Status för migreringen är Slutförd.On the migration activity screen, select Refresh to update the display until the Status of the migration shows as Complete.

    Aktivitetsstatus – slutförd

  2. Under Databasnamn väljer du en specifik databas för att komma till migreringsstatus för åtgärderna Fullständig datainläsning och Inkrementell datasynkronisering.Under Database Name, select specific database to get to the migration status for Full data load and Incremental data sync operations.

    Fullständig datainläsning visar den initiala inläsningsmigreringsstatus, och Inkrementell datasynkronisering visar CDC-status (change data capture).Full data load will show the initial load migration status while Incremental data sync will show change data capture (CDC) status.

    Aktivitetsstatus – Fullständig inläsning slutförd

    Aktivitetsstatus – Inkrementell datasynkronisering

Utföra snabbmigreringPerform migration cutover

När den fullständiga inläsningen är klar är databaserna märkta med Klar för snabbmigrering.After the initial Full load is completed, the databases are marked Ready to cutover.

  1. När du är redo att slutföra databasmigreringen väljer du Starta snabb.When you're ready to complete the database migration, select Start Cutover.

    Starta snabb

  2. Stoppa alla inkommande transaktioner till källdatabasen och vänta tills Väntande ändringar visar 0.Make sure to stop all the incoming transactions to the source database; wait until the Pending changes counter shows 0.

  3. Välj Bekräfta och sedan Apply (Använd).Select Confirm, and the select Apply.

  4. När status för databasmigreringen visar Slutförd ansluter du dina program till den nya Azure SQL-måldatabasen.When the database migration status shows Completed, connect your applications to the new target Azure SQL Database.

Nästa stegNext steps