Metoder för migrering

Slutförd

Du kan använda många olika metoder för databasmigrering, till exempel online- eller offlinemigrering, säkerhetskopiering och återställningsmigrering eller migrering med anpassad SQL-kod eller skript. Varje metod är lämpligast för vissa affärsscenarier.

I ditt nystartade företag är till exempel leverantörskommunikationsdatabasen kritisk och du vill försöka migrera utan avbrott i tjänsten för användarna. Den här avdelningen i företaget arbetar dygnet om och det finns få förutsägbara tysta tider när du kan ta databasen offline. CAD-systemet (Computer Aided Design) används däremot endast under veckan så att du kan ta det offline under en helg och migrera det till Azure.

Här får du lära dig mer om metoder, tekniker och verktyg som du kan välja för att utföra migreringen.

När du ska använda export och import

Med export- och importtekniker får du kontroll över de data och scheman som flyttas i migreringen. Använd export- och importverktyg om du vill välja vilka data som ska migreras till den nya databasen och kanske rensa eller ändra data under migreringen.

Överväg att använda export- och importtekniker:

  • När du vill välja en delmängd av tabellerna i den lokala databasen för att migrera till molndatabasen.

  • När du vill migrera databasobjekt som begränsningar, vyer, funktioner, procedurer och utlösare och styra hur dessa objekt konfigureras i molndatabasen.

  • När du vill importera data från andra externa källor än MySQL, MariaDB eller PostgreSQL.

Du kan till exempel överväga att exportera och importera i följande scenarier:

  • Du vill utföra en stegvis migrering där marknadsföringsarbetsbelastningen migreras till molnet och testas före arbetsbelastningen för säljstöd. Båda arbetsbelastningarna använder tabeller från SalesDB-databasen i ditt lokala system. Du vill bara migrera marknadsföringstabellerna i den första fasen av projektet och försäljningstabellerna endast i den andra fasen.

  • Dina lokala data är gamla och innehåller en blandning av data som är relevanta och irrelevanta för den aktuella verksamheten. Du vill ta tillfället i akt att ta bort gamla data och överväga ett mer effektiviserat databasschema.

  • Du har ett stort kalkylblad som innehåller data om produkter. Du vill migrera dessa data till molndatabasen.

Planera en export- och importmigrering

Fördelen med att använda export och import är den extra kontrollnivå som du har över de data som migreras. En nackdel är dock att du måste planera mer noggrant för att se till att alla objekt du behöver inkluderas.

Se till att du förstår hur följande objekt migreras:

  • Databasschemat.
  • Begränsningar som primärnycklar, sekundärnycklar och index.
  • Vyer, funktioner, procedurer och utlösare.
  • Användarkonton och behörigheter.

Exportera och importera för MySQL och MariaDB

Du kan använda SQL-skript för att utföra selektiv export och import från en databas till en annan. Men om din lokala databas finns i MySQL eller MariaDB finns det flera verktyg som kan hjälpa dig, bland annat:

  • MySQL Workbench. Detta är ett populärt databasdesignverktyg med ett grafiskt användargränssnitt (GUI) som utvecklats av Oracle Corporation. Det innehåller ett dataexportverktyg med flexibla alternativ för dataval.

  • Padda Edge. Detta är en konkurrerande verktygsuppsättning utvecklad av Quest. Du använder den för att exportera och importera data från både MySQL- och PostgreSQL-databaser.

  • Navicat. Det här gui-verktyget för databasadministration är också kompatibelt med MariaDB-databaser.

  • mysqlimport. Det här kommandoradsverktyget kan importera data från textfiler.

Viktigt!

Azure Database for MySQL och Azure Database for MariaDB stöder endast InnoDB-lagringsmotorn. Om du har tabeller som använder andra motorer, till exempel MyISAM-motorn, måste du konvertera dem till InnoDB innan du migrerar till Azure.

PostgreSQL-export och import

PostgreSQL innehåller följande verktyg som du använder för att exportera och importera data:

  • pgAdmin. Det här är ett GUI-verktyg för PostgreSQL-administratörer. Det tillhandahåller ett gränssnitt för att exportera och importera data.

  • pg_dump. Det här är ett kommandoradsverktyg som du använder för att exportera en databas i olika format, inklusive test. Du kan redigera de resulterande .sql-filerna innan du importerar dem med hjälp av psql-verktyget .

  • Padda Edge. Det här är samma verktyg som du använder med MySQL.

Säkerhetskopiering och återställning

Säkerhetskopierings- och återställningsåtgärder utförs vanligtvis för att skydda en databas mot katastrofer. En exakt kopia av databasen tas och sparas. Om en katastrof förstör arbetskopian återställs den säkerhetskopierade kopian och normal verksamhet kan återupptas.

Genom att återställa till en annan plats använder du en säkerhetskopia för att migrera den fullständiga databasen till en annan plats, till exempel en databas i molnet.

När du ska använda säkerhetskopiering och återställning

Säkerhetskopieringsverktyg gör en enkel och exakt kopia av databasen. När du återställer i molndatabasen får du exakt samma data och schema som du hade i det lokala systemet. Använd säkerhetskopiering och återställning för att migrera en databas:

  • När du vill migrera en hel databas eller uppsättning databaser i en åtgärd.

  • När du inte behöver göra några ändringar i data, schema eller andra databasobjekt under migreringen.

Du kan överväga att använda säkerhetskopiering och återställning för att utföra en migrering i sådana här fall:

  • Du har ett enda databassystem som du vill flytta till molnet med så lite modifiering som möjligt.

  • Du vill utföra en bitmigrering på ett system som har flera databaser. Varje arbetsbelastning stöds av en fullständig databas.

När du återställer en databas från en säkerhetskopia till en molnplats bör du överväga mängden data som måste skickas över nätverket till molndatabasen. Om du vill optimera dataöverföringen kopierar du den säkerhetskopierade databasen till en virtuell dator i samma region som måldatabasen och återställer därifrån. Den här återställningen går snabbare än att använda en lokal säkerhetskopieringsfil och det är mindre troligt att den orsakar konkurrens om nätverksbandbredden.

Planera en säkerhetskopiering och återställning på MySQL och MariaDB

Om du vill säkerhetskopiera en databas på en lokal server använder mysqldump du verktyget på kommandoraden. Då skapas en .sql fil som du återställer till molndatabasen genom att skicka den mysql till kommandot som ett skript. Om du föredrar ett GUI-verktyg väljer du PHPMyAdmin-programmet eller MySQL Workbench. Dessa GUI-verktyg kan både säkerhetskopiera och återställa data.

Kom ihåg att Azure Database for MySQL och Azure Database for MariaDB endast stöder InnoDB-motorn. Se till att du konverterar alla tabeller till InnoDB innan du kör säkerhetskopieringen.

Om du vill undvika kompatibilitetsproblem kontrollerar du att versionsnumret för MySQL eller MariaDB som används i molnet matchar versionsnumret för den lokala databasservern. Azure Database for MySQL stöder versionerna 5.6, 5.7 och 8.0. Azure Database for MariaDB stöder versionerna 10.2 och 10.3. Om din lokala server använder en tidigare version bör du överväga att uppgradera till en av dessa versioner först och felsöka eventuella problem lokalt innan du migrerar till molnet.

Planera en säkerhetskopiering och återställning på PostgreSQL

Motsvarande kommandoradsverktyg för säkerhetskopiering och återställning på PostgreSQL är pg_dump och pg_restore. För ett verktyg för säkerhetskopiering och återställning av användargränssnitt använder du Toad Edge.

Anpassad programkod

Om du har omfattande krav på datatransformering eller vill utföra en ovanlig migrering kan du skriva din egen anpassade kod för att flytta data från en lokal MySQL-, PostgreSQL- eller MariaDB-databas till molnet.

Din anpassade kod kan ta många former. Vilket språk och ramverk du väljer beror främst på utvecklingsteamets expertis:

  • SQL-skript som genererats från databasen och ändrats eller utvecklats från grunden.
  • Kompilerad kod från ett utvecklingsramverk som .NET eller Java.
  • Skript i PHP eller Node.js.
  • Shell-skript för Bash eller PowerShell.

Med den anpassade kodmetoden kan du vara extremt flexibel. Du anpassar hur data filtreras, aggregeras och transformeras, och du kan migrera till flera mål eller slå samman data från flera källor. Använd den här metoden om du har krav som inte kan uppfyllas med ett out-of-the-box-säkerhetskopierings- eller exportverktyg.

Nackdelen med den här metoden är att den kräver mer investeringar i utvecklingstiden. För att anpassad kod ska kunna migrera alla data korrekt måste den testas i stor utsträckning innan den körs på verkliga data. Den här uppgiften kräver ett team med skickliga utvecklare och testare och ökar ofta projektbudgeten. Om du funderar på att skriva anpassad migreringskod ska du inte vara frestad att underskatta den tid och det arbete som krävs för att skapa tillförlitlig kod.

Azure Database Migration Service

Azure innehåller en flexibel tjänst med namnet Azure Database Migration Service (DMS) som du använder för att utföra sömlösa onlinemigreringar från flera datakällor till Azure-dataplattformar. Dessa plattformar omfattar Azure Database for MySQL, Azure Database for MariaDB och Azure Database for PostgreSQL.

Överväg att använda Azure DMS när du vill utföra en onlinedatabasmigrering till Azure.

Inledande migrering

Om du vill utföra en migrering med DMS utför du följande uppgifter:

  1. Skapa en ny måldatabas i Azure på valfri plattform.
  2. Skapa ett nytt datamigreringsprojekt för Azure Database Migration Service (DMS).
  3. Generera schemat från de lokala källdatabaserna. Om du använder MySQL kan du generera ett schema med sqldump. Om källdatabasen är PostgreSQL använder du pg_dump.
  4. Skapa en tom databas som fungerar som migreringsmål.
  5. Tillämpa schemat på måldatabasen.
  6. Konfigurera anslutningsinformation för käll- och måldatabaserna i ett DMS-migreringsprojekt.
  7. Kör DMS-migreringsprojektet. Projektet överför data och genererar en rapport.
  8. Granska rapporten och korrigera eventuella problem som den identifierar.

Onlinemigreringar

Azure DMS är ett bra verktyg att använda för onlinemigreringar, där den ursprungliga databasen förblir tillgänglig medan migreringen körs. Användarna fortsätter att göra ändringar i data i källdatabasen. Azure DMS använder replikering för att synkronisera dessa ändringar med den migrerade databasen. När migreringen är klar konfigurerar du om användarprogrammen för att ansluta till den migrerade databasen.

Migrera MySQL eller MariaDB till Azure SQL Database

Om du vill flytta en databas som finns lokalt på en MySQL-databasserver till Azure-molnet – och du inte behöver molndatabasen för att köra MySQL – bör du överväga att migrera till Azure SQL Database. Azure SQL Database är en PaaS-implementering av Microsofts branschledande SQL Server-databasmotor. Den innehåller tillgänglighet på företagsnivå, skalbarhet och säkerhet och är lätt att övervaka och hantera.

På samma sätt kan du överväga att migrera till Azure SQL Database om den lokala databasservern kör MariaDB. Processen är mycket lik eftersom MariaDB är en förgrening av MySQL.

Azure SQL Database är mer komplett än Azure Database for MySQL och Azure Database for MariaDB.

Kommentar

Du kan behöva ändra alla program som ansluter till din migrerade databas eftersom Azure SQL Database använder olika datatyper, olika databasobjekt och ett annat API än MySQL och MariaDB. Kontakta utvecklarna för att avgöra hur mycket arbete som krävs för att porta ett klientprogram från en lokal MySQL- eller MariaDB-databas till en Azure SQL-molndatabas.

SQL Server Migration Assistant för MySQL

Om du bestämmer dig för att migrera från MySQL till Azure SQL Database kan du använda ett specialiserat verktyg: SQL Server Migration Assistant för MySQL. Det här GUI-verktyget ansluter till en MySQL-källdatabas och en SQL Server-databas, som kan vara en databas i Azure SQL Database-tjänsten.

När den är ansluten kopierar assistenten det fullständiga schemat till Azure SQL Database och konverterar alla datatyper till deras SQL Server-motsvarigheter. Den migrerar även vyer, procedurer, utlösare och andra objekt. Sedan kan du börja migrera data från MySQL till Azure SQL Database.

Kommentar

SQL Server Migration Assistant för MySQL har inte testats för migrering av MariaDB-databaser till Azure SQL Database.