Migrera Amazon RDS för MySQL till Azure Database for MySQL med MySQL Workbench

GÄLLER FÖR: Azure Database for MySQL – enskild server

Viktigt!

Azure Database for MySQL – enskild server är på väg att dras tillbaka. Vi rekommenderar starkt att du uppgraderar till en flexibel Azure Database for MySQL-server. Mer information om hur du migrerar till en flexibel Azure Database for MySQL-server finns i Vad händer med Azure Database for MySQL – enskild server?

Du kan använda olika verktyg, till exempel MySQL Workbench Export/Import, Azure Database Migration Service (DMS) och MySQL dump and restore, för att migrera Amazon RDS for MySQL till Azure Database for MySQL. Med migreringsguiden för MySQL Workbench är det dock ett enkelt och bekvämt sätt att flytta Amazon RDS för MySQL-databaser till Azure Database for MySQL.

Med migreringsguiden kan du enkelt välja vilka scheman och objekt som ska migreras. Du kan också visa serverloggar för att identifiera fel och flaskhalsar i realtid. Därför kan du redigera och ändra tabeller eller databasstrukturer och objekt under migreringsprocessen när ett fel upptäcks och sedan återuppta migreringen utan att behöva starta om från början.

Kommentar

Du kan också använda migreringsguiden för att migrera andra källor, till exempel Microsoft SQL Server, Oracle, PostgreSQL, MariaDB osv., som ligger utanför omfånget för den här artikeln.

Förutsättningar

Innan du påbörjar migreringsprocessen rekommenderar vi att du ser till att flera parametrar och funktioner har konfigurerats och konfigurerats korrekt enligt beskrivningen nedan.

  • Kontrollera att teckenuppsättningen för käll- och måldatabaserna är samma.

  • Ange tidsgränsen för väntetiden till en rimlig tid beroende på hur mycket data eller arbetsbelastning du vill importera eller migrera.

  • max_allowed_packet parameter Ange till ett rimligt belopp beroende på storleken på den databas som du vill importera eller migrera.

  • Kontrollera att alla dina tabeller använder InnoDB eftersom Azure Database for MySQL Server endast stöder InnoDB Storage-motorn.

  • Ta bort, ersätta eller ändra alla utlösare, lagrade procedurer och andra funktioner som innehåller rotanvändare eller superanvändardefinierare (Azure Database for MySQL stöder inte superanvändarbehörigheten). Om du vill ersätta definierarna med namnet på administratörsanvändaren som kör importprocessen kör du följande kommando:

    DELIMITER; ;/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`127.0.0.1`*/ /*!50003
    DELIMITER;
    /* Modified to */
    DELIMITER;
    /*!50003 CREATE*//*!50017 DEFINER=`AdminUserName`@`ServerName`*/ /*!50003
    DELIMITER;
    
    
  • Om användardefinierade funktioner (UDF: er) körs på databasservern måste du ta bort behörigheten för mysql-databasen. Använd följande fråga för att avgöra om några UDF:er körs på servern:

    SELECT * FROM mysql.func;
    

    Om du upptäcker att UDF:er körs kan du släppa UDF:erna med hjälp av följande fråga:

    DROP FUNCTION your_UDFunction;
    
  • Kontrollera att servern där verktyget körs och slutligen exportplatsen har gott om diskutrymme och beräkningskraft (virtuella kärnor, processor och minne) för att utföra exportåtgärden, särskilt när du exporterar en mycket stor databas.

  • Skapa en sökväg mellan den lokala instansen eller AWS-instansen och Azure Database for MySQL om arbetsbelastningen ligger bakom brandväggar eller andra nätverkssäkerhetsnivåer.

Påbörja migreringsprocessen

  1. Starta migreringsprocessen genom att logga in på MySQL Workbench och sedan välja startikonen.

  2. I det vänstra navigeringsfältet väljer du ikonen Migreringsguiden enligt skärmbilden nedan.

    MySQL Workbench start screen

    Sidan Översikt i migreringsguiden visas enligt nedan.

    MySQL Workbench Migration Wizard welcome page

  3. Kontrollera om du har en ODBC-drivrutin för MySQL Server installerad genom att välja Öppna ODBC-administratör.

    I vårt fall ser du på fliken Drivrutiner att det redan finns två ODBC-drivrutiner för MySQL Server installerat.

    ODBC Data Source Administrator page

    Om en MySQL ODBC-drivrutin inte är installerad använder du installationsprogrammet MySQL som du använde för att installera MySQL Workbench för att installera drivrutinen. Mer information om installation av MySQL ODBC-drivrutin finns i följande resurser:

  4. Stäng dialogrutan ODBC-datakälladministratör och fortsätt sedan med migreringsprocessen.

Konfigurera anslutningsparametrar för källdatabasservern

  1. På sidan Översikt väljer du Starta migrering.

    Sidan Källval visas. Använd den här sidan om du vill ange information om RDBMS som du migrerar från och parametrarna för anslutningen.

  2. I fältet Databassystem väljer du MySQL.

  3. I fältet Lagrad Anslut ion väljer du en av de sparade anslutningsinställningarna för RDBMS.

    Du kan spara anslutningar genom att markera kryssrutan längst ned på sidan och ange ett namn på dina inställningar.

  4. I fältet Anslut ionsmetod väljer du Standard TCP/IP.

  5. I fältet Värdnamn anger du namnet på källdatabasservern.

  6. I fältet Port anger du 3306 och anger sedan användarnamnet och lösenordet för att ansluta till servern.

  7. I fältet Databas anger du namnet på den databas som du vill migrera om du känner till den. Annars lämnar du fältet tomt.

  8. Välj Testa Anslut ion för att kontrollera anslutningen till MySQL Server-instansen.

    Om du har angett rätt parametrar visas ett meddelande som anger ett lyckat anslutningsförsök.

    Source database connection parameters page

  9. Välj Nästa.

Konfigurera måldatabasserveranslutningsparametrar

  1. På sidan Målval anger du parametrarna för att ansluta till mySQL-målserverinstansen med en process som liknar den för att konfigurera anslutningen till källservern.

  2. Om du vill verifiera en lyckad anslutning väljer du Testa Anslut ion.

    Target database connection parameters page

  3. Välj Nästa.

Välj de scheman som ska migreras

Migreringsguiden kommunicerar med din MySQL Server-instans och hämtar en lista med scheman från källservern.

  1. Välj Visa loggar för att visa den här åtgärden.

    Skärmbilden nedan visar hur scheman hämtas från källdatabasservern.

    Fetch schemas list page

  2. Välj Nästa för att kontrollera att alla scheman har hämtats.

    Skärmbilden nedan visar listan över hämtade scheman.

    Schemas selection page

    Du kan bara migrera scheman som visas i den här listan.

  3. Välj de scheman som du vill migrera och välj sedan Nästa.

Objektmigrering

Ange sedan de objekt som du vill migrera.

  1. Välj Visa markering och under Tillgängliga objekt väljer du och lägger sedan till de objekt som du vill migrera.

    När du har lagt till objekten visas de under Objekt att migrera, enligt skärmbilden nedan.

    Source objects selection page

    I det här scenariot har vi valt alla tabellobjekt.

  2. Välj Nästa.

Redigera data

I det här avsnittet har du möjlighet att redigera de objekt som du vill migrera.

  1. På sidan Manuell redigering ser du den nedrullningsbara menyn Visa i det övre högra hörnet.

    Manual Editing selection page

    Listrutan Visa innehåller tre objekt:

    • Alla objekt – Visar alla objekt. Med det här alternativet kan du redigera den genererade SQL manuellt innan du tillämpar dem på måldatabasservern. Det gör du genom att markera objektet och välja Visa kod och meddelanden. Du kan se (och redigera!) den genererade MySQL-koden som motsvarar det markerade objektet.
    • Migreringsproblem – Visar eventuella problem som uppstod under migreringen, som du kan granska och verifiera.
    • Kolumnmappning – Visar information om kolumnmappning. Du kan använda den här vyn för att redigera namn och ändra kolumn för målobjektet.
  2. Välj Nästa.

Skapa måldatabasen

  1. Markera kryssrutan Skapa schema i RDBMS-målet .

    Du kan också välja att behålla befintliga scheman så att de inte ändras eller uppdateras.

    Target Creation Options page

    I den här artikeln har vi valt att skapa schemat i RDBMS-målet, men du kan också markera kryssrutan Skapa ett SQL-skript för att spara filen på den lokala datorn eller i andra syften.

  2. Välj Nästa.

Kör MySQL-skriptet för att skapa databasobjekten

Eftersom vi har valt att skapa ett schema i RDBMS-målet körs det migrerade SQL-skriptet på MySQL-målservern. Du kan visa förloppet enligt skärmbilden nedan:

Create Schemas page

  1. När scheman och objekten har skapats väljer du Nästa.

    På sidan Skapa målresultat visas en lista över de objekt som skapats och meddelanden om eventuella fel som påträffades när de skapades, enligt följande skärmbild.

    Create Target Results page

  2. Granska informationen på den här sidan för att kontrollera att allt har slutförts som avsett.

    I den här artikeln har vi inga fel. Om du inte behöver åtgärda några felmeddelanden kan du redigera migreringsskriptet.

  3. I rutan Objekt väljer du det objekt som du vill redigera.

  4. Under SQL CREATE-skript för markerat objekt ändrar du SQL-skriptet och väljer sedan Använd för att spara ändringarna.

  5. Välj Återskapa objekt för att köra skriptet inklusive dina ändringar.

    Om skriptet misslyckas kan du behöva redigera det genererade skriptet. Du kan sedan åtgärda SQL-skriptet manuellt och köra allt igen. I den här artikeln ändrar vi ingenting, så vi lämnar skriptet som det är.

  6. Välj Nästa.

Överföra data

Den här delen av processen flyttar data från MySQL Server-källdatabasinstansen till den nyligen skapade mySQL-måldatabasinstansen. Använd sidan Konfiguration av dataöverföring för att konfigurera den här processen.

Data Transfer Setup page

Den här sidan innehåller alternativ för att konfigurera dataöverföringen. I den här artikeln accepterar vi standardvärdena.

  1. Om du vill börja den faktiska processen med att överföra data väljer du Nästa.

    Förloppet för dataöverföringsprocessen visas enligt följande skärmbild.

    Bulk Data Transfer page

    Kommentar

    Varaktigheten för dataöverföringsprocessen är direkt relaterad till storleken på databasen som du migrerar. Ju större källdatabasen är, desto längre tid tar processen, eventuellt upp till några timmar för större databaser.

  2. När överföringen är klar väljer du Nästa.

    Sidan Migreringsrapport visas med en rapport som sammanfattar hela processen, enligt skärmbilden nedan:

    Migration Progress Report page

  3. Välj Slutför för att stänga migreringsguiden.

    Migreringen har nu slutförts.

Kontrollera konsekvensen för de migrerade schemana och tabellerna

  1. Logga sedan in på mySQL-måldatabasinstansen för att kontrollera att de migrerade schemana och tabellerna är konsekventa med mySQL-källdatabasen.

    I vårt fall kan du se att alla scheman (sakila, moda, items, customer, clothes, world och world_x) från Amazon RDS for MySQL: MyjolieDB-databasen har migrerats till Azure Database for MySQL: azmysql-instansen .

  2. Kontrollera antalet tabeller och rader genom att köra följande fråga på båda instanserna:

    SELECT COUNT (*) FROM sakila.actor;

    Du kan se från skärmbilden nedan att radantalet för Amazon RDS MySQL är 200, vilket matchar Azure Database for MySQL-instansen.

    Table and Row size source database

    Table and Row size target database

    Du kan köra ovanstående fråga i varje enskilt schema och tabell, men det kommer att vara en hel del arbete om du har att göra med hundratusentals eller till och med miljontals tabeller. Du kan använda frågorna nedan för att verifiera schemat (databasen) och tabellstorleken i stället.

  3. Kör följande fråga för att kontrollera databasens storlek:

    SELECT table_schema AS "Database", 
    ROUND(SUM(data_length + index_length) / 1024 / 1024, 2) AS "Size (MB)" 
    FROM information_schema.TABLES 
    GROUP BY table_schema;
    
  4. Kör följande fråga för att kontrollera tabellstorleken:

    SELECT table_name AS "Table",
    ROUND(((data_length + index_length) / 1024 / 1024), 2) AS "Size (MB)"
    FROM information_schema.TABLES
    WHERE table_schema = "database_name"
    ORDER BY (data_length + index_length) DESC;
    

    Från skärmbilderna nedan ser du att schemastorleken (databasen) från Amazon RDS MySQL-källinstansen är samma som för Azure Database for MySQL-målinstansen.

    Database size source database

    Database size target database

    Eftersom schemastorlekarna (databasstorlekarna) är desamma i båda instanserna är det egentligen inte nödvändigt att kontrollera enskilda tabellstorlekar. I vilket fall som helst kan du alltid använda ovanstående fråga för att kontrollera tabellstorlekarna efter behov.

    Nu har du bekräftat att migreringen har slutförts.

Nästa steg