Benaderingen voor migratie

Voltooid

U kunt veel verschillende benaderingen gebruiken voor databasemigratie, zoals online- of offlinemigratie, back-up- en herstelmigratie, of migratie met aangepaste SQL-code of -scripts. Elke benadering is het meest geschikt voor bepaalde bedrijfsscenario's.

In uw start-upbedrijf is bijvoorbeeld de communicatiedatabase van leveranciers essentieel en wilt u proberen en migreren zonder onderbreking van de service naar gebruikers. Deze afdeling van het bedrijf werkt op 24/7 basis en er zijn enkele voorspelbare stille tijden waarop u de database offline kunt halen. Het CAD-systeem (Computer Aided Design) wordt daarentegen alleen tijdens de week gebruikt, zodat u het in een weekend offline kunt halen en naar Azure kunt migreren.

Hier leert u meer over benaderingen, technieken en hulpprogramma's die u kunt selecteren om de migratie uit te voeren.

Wanneer moet u exporteren en importeren

Met export- en importtechnieken hebt u controle over de gegevens en het schema dat in de migratie wordt verplaatst. Gebruik export- en importhulpprogramma's als u wilt selecteren welke gegevens naar de nieuwe database worden gemigreerd en mogelijk de gegevens tijdens de migratie opschonen of wijzigen.

Overweeg het gebruik van export- en importtechnieken:

  • Wanneer u een subset van de tabellen in de on-premises database wilt kiezen om te migreren naar de clouddatabase.

  • Wanneer u databaseobjecten wilt migreren, zoals beperkingen, weergaven, functies, procedures en triggers, en bepalen hoe deze objecten worden ingesteld in de clouddatabase.

  • Wanneer u gegevens wilt importeren uit andere externe bronnen dan MySQL, MariaDB of PostgreSQL.

U kunt bijvoorbeeld overwegen om te exporteren en importeren in deze scenario's:

  • U wilt een stukje migratie uitvoeren waarbij de marketingworkload naar de cloud wordt gemigreerd en getest vóór de workload verkoopondersteuning. Beide workloads gebruiken tabellen uit de SalesDB-database in uw on-premises systeem. U wilt de marketingtabellen alleen in de eerste fase van het project en de verkooptabellen alleen in de tweede fase migreren.

  • Uw on-premises gegevens zijn oud en bevatten een combinatie van gegevens die relevant en irrelevant zijn voor het huidige bedrijf. U wilt de mogelijkheid nemen om oude gegevens te verwijderen en een gestroomlijnder databaseschema te overwegen.

  • U hebt een groot spreadsheet met gegevens over producten. U wilt deze gegevens migreren naar de clouddatabase.

Een export- en importmigratie plannen

Het voordeel van het gebruik van exporteren en importeren is het extra controleniveau dat u hebt over de gegevens die worden gemigreerd. Een nadeel is echter dat u zorgvuldiger moet plannen om ervoor te zorgen dat alle objecten die u nodig hebt, worden opgenomen.

Zorg ervoor dat u begrijpt hoe de volgende objecten worden gemigreerd:

  • Het databaseschema.
  • Beperkingen, waaronder primaire sleutels, refererende sleutels en indexen.
  • Weergaven, functies, procedures en triggers.
  • Gebruikersaccounts en -machtigingen.

Exporteren en importeren voor MySQL en MariaDB

U kunt SQL-scripts gebruiken om selectief exporteren en importeren uit de ene database naar de andere uit te voeren. Als uw on-premises database zich echter in MySQL of MariaDB bevindt, zijn er verschillende hulpprogramma's beschikbaar om u te helpen, waaronder:

  • MySQL Workbench. Dit is een populair hulpprogramma voor databaseontwerp met een grafische gebruikersinterface (GUI) die is ontwikkeld door Oracle Corporation. Het bevat een hulpprogramma voor gegevensexport met flexibele opties voor gegevensselectie.

  • Toad Edge. Dit is een concurrerende toolset ontwikkeld door Quest. U gebruikt deze om gegevens te exporteren en te importeren uit zowel MySQL- als PostgreSQL-databases.

  • Navicat. Dit hulpprogramma voor databasebeheer is ook compatibel met MariaDB-databases.

  • mysqlimport. Met dit opdrachtregelprogramma kunt u gegevens importeren uit tekstbestanden.

Belangrijk

Azure Database for MySQL en Azure Database for MariaDB ondersteunen alleen de InnoDB-opslagengine. Als u tabellen hebt die gebruikmaken van andere engines, zoals de MyISAM-engine, moet u deze converteren naar InnoDB voordat u naar Azure migreert.

PostgreSQL exporteren en importeren

PostgreSQL biedt de volgende hulpprogramma's die u gebruikt voor het exporteren en importeren van gegevens:

  • pg Beheer. Dit is een GUI-hulpprogramma voor PostgreSQL-beheerders. Het biedt een interface voor het exporteren en importeren van gegevens.

  • pg_dump. Dit is een opdrachtregelprogramma dat u gebruikt om een database in verschillende indelingen te exporteren, waaronder testen. U kunt de resulterende .sql bestanden bewerken voordat u ze importeert met behulp van het hulpprogramma psql .

  • Toad Edge. Dit is hetzelfde hulpprogramma dat u met MySQL gebruikt.

Back-ups en herstellen

Back-up- en herstelbewerkingen worden meestal uitgevoerd om een database te beschermen tegen noodgevallen. Er wordt een exacte kopie van de database gemaakt en opgeslagen. Als een noodgeval de werkende kopie vernietigt, wordt de back-upkopie hersteld en kan het normale bedrijf worden hervat.

Als u herstelt naar een andere locatie, gebruikt u een back-up om de volledige database te migreren naar een andere locatie, zoals een database in de cloud.

Wanneer moet u back-up en herstel gebruiken

Back-uphulpprogramma's maken een eenvoudige en nauwkeurige kopie van de database. Wanneer u herstelt in de clouddatabase, krijgt u precies dezelfde gegevens en hetzelfde schema als in het on-premises systeem. Back-up en herstel gebruiken om een database te migreren:

  • Wanneer u een hele database of set databases in één bewerking wilt migreren.

  • Wanneer u tijdens de migratie geen wijzigingen hoeft aan te brengen in de gegevens, het schema of andere databaseobjecten.

U kunt overwegen back-up en herstel te gebruiken om een migratie uit te voeren in dergelijke gevallen:

  • U hebt één databasesysteem dat u wilt lift-and-shiften naar de cloud met zo weinig mogelijk aanpassingen.

  • U wilt een stukje migratie uitvoeren op een systeem met meerdere databases. Elke workload wordt ondersteund door een volledige database.

Wanneer u een database herstelt van een back-upbestand naar een cloudlocatie, moet u rekening houden met de hoeveelheid gegevens die via het netwerk naar de clouddatabase moet worden verzonden. Als u deze gegevensoverdracht wilt optimaliseren, kopieert u de back-updatabase naar een virtuele machine in dezelfde regio als de doeldatabase en herstelt u van daaruit. Deze herstelbewerking is sneller dan het gebruik van een on-premises back-upbestand en veroorzaakt minder waarschijnlijk conflicten voor netwerkbandbreedte.

Een back-up en herstel plannen op MySQL en MariaDB

Als u een back-up wilt maken van een database op een on-premises server, gebruikt u het mysqldump hulpprogramma op de opdrachtregel. Hiermee maakt u een .sql-bestand dat u herstelt naar de clouddatabase door het als script door te geven aan de mysql opdracht. Als u liever een GUI-hulpprogramma gebruikt, kiest u de PHPMy Beheer-toepassing of MySQL Workbench. Deze GUI-hulpprogramma's kunnen zowel een back-up maken als de gegevens herstellen.

Houd er rekening mee dat Azure Database for MySQL en Azure Database for MariaDB alleen ondersteuning bieden voor de InnoDB-engine. Zorg ervoor dat u alle tabellen converteert naar InnoDB voordat u de back-up uitvoert.

Als u compatibiliteitsproblemen wilt voorkomen, controleert u of het versienummer van MySQL of MariaDB dat in de cloud wordt gebruikt, overeenkomt met het versienummer van de on-premises databaseserver. Azure Database for MySQL ondersteunt versies 5.6, 5.7 en 8.0. Azure Database for MariaDB ondersteunt versies 10.2 en 10.3. Als uw on-premises server een eerdere versie gebruikt, kunt u eerst upgraden naar een van deze versies en problemen on-premises oplossen voordat u naar de cloud migreert.

Een back-up en herstel plannen in PostgreSQL

De equivalente opdrachtregelprogramma's voor back-up en herstel in PostgreSQL zijn pg_dump en pg_restore. Gebruik Toad Edge voor een hulpprogramma voor back-up en herstel van een GUI.

Aangepaste toepassingscode

Als u uitgebreide vereisten voor gegevenstransformatie hebt of een ongebruikelijke migratie wilt uitvoeren, kunt u overwegen uw eigen aangepaste code te schrijven om gegevens te verplaatsen van een on-premises MySQL-, PostgreSQL- of MariaDB-database naar de cloud.

Uw aangepaste code kan vele vormen aannemen. De taal en het framework dat u kiest, zijn voornamelijk afhankelijk van de expertise van uw ontwikkelteam:

  • SQL-scripts die zijn gegenereerd op basis van de database en helemaal opnieuw zijn gewijzigd of ontwikkeld.
  • Gecompileerde code van een ontwikkelframework, zoals .NET of Java.
  • Scripts in PHP of Node.js.
  • Shell-scripts voor Bash of PowerShell.

Met de aangepaste codebenadering kunt u uiterst flexibel zijn. U kunt aanpassen hoe gegevens worden gefilterd, geaggregeerd en getransformeerd en u kunt migreren naar meerdere bestemmingen of gegevens uit meerdere bronnen samenvoegen. Gebruik deze methode als u vereisten hebt die niet kunnen worden voldaan aan een out-of-the-box back-up- of exporthulpprogramma.

Het nadeel van deze aanpak is dat er meer investeringen in ontwikkelingstijd nodig zijn. Voor het correct migreren van alle gegevens moet aangepaste code uitgebreid worden getest voordat deze op echte gegevens wordt uitgevoerd. Deze taak vereist een team van ervaren ontwikkelaars en testers en verhoogt vaak het projectbudget. Als u overweegt om aangepaste migratiecode te schrijven, kunt u de tijd en moeite die nodig is om betrouwbare code te maken niet onderschatten.

Azure Database Migration-service

Azure bevat een flexibele service met de naam Azure Database Migration Service (DMS), die u gebruikt om naadloze onlinemigraties uit meerdere gegevensbronnen naar Azure-gegevensplatforms uit te voeren. Deze platforms omvatten Azure Database for MySQL, Azure Database for MariaDB en Azure Database for PostgreSQL.

Overweeg om Azure DMS te gebruiken wanneer u een online databasemigratie naar Azure wilt uitvoeren.

Initiële migratie

Als u een migratie met DMS wilt uitvoeren, voert u de volgende taken uit:

  1. Maak een nieuwe doeldatabase in Azure op het platform van uw keuze.
  2. Maak een nieuw DMS-gegevensmigratieproject (Azure Database Migration Service).
  3. Genereer het schema op basis van de on-premises brondatabases. Als u MySQL gebruikt, kunt u een schema genereren met sqldump. Als de brondatabase PostgreSQL is, gebruikt u pg_dump.
  4. Maak een lege database om te fungeren als de migratiebestemming.
  5. Pas het schema toe op de doeldatabase.
  6. Configureer verbindingsgegevens voor de bron- en doeldatabases in een DMS-migratieproject.
  7. Voer het DMS-migratieproject uit. Het project draagt de gegevens over en genereert een rapport.
  8. Bekijk het rapport en corrigeer eventuele problemen die het identificeert.

Onlinemigraties

Azure DMS is een goed hulpprogramma voor onlinemigraties, waarin de oorspronkelijke database beschikbaar blijft terwijl de migratie wordt uitgevoerd. Gebruikers blijven wijzigingen aanbrengen in gegevens in de brondatabase. Azure DMS maakt gebruik van replicatie om deze wijzigingen te synchroniseren met de gemigreerde database. Zodra de migratie is voltooid, configureert u de gebruikerstoepassingen opnieuw om verbinding te maken met de gemigreerde database.

MySQL of MariaDB migreren naar Azure SQL Database

Als u een database wilt verplaatsen die on-premises wordt gehost op een MySQL-databaseserver naar de Azure-cloud en u de clouddatabase niet nodig hebt om MySQL uit te voeren, kunt u overwegen om te migreren naar Azure SQL Database. Azure SQL Database is een PaaS-implementatie van de toonaangevende SQL Server-database-engine van Microsoft. Het omvat beschikbaarheid, schaalbaarheid en beveiliging op ondernemingsniveau en is eenvoudig te bewaken en te beheren.

Als op uw on-premises databaseserver MariaDB wordt uitgevoerd, kunt u overwegen om te migreren naar Azure SQL Database. Het proces is vergelijkbaar omdat MariaDB een fork van MySQL is.

Azure SQL Database is volledig aanbevolen dan Azure Database for MySQL en Azure Database for MariaDB.

Notitie

Mogelijk moet u toepassingen wijzigen die verbinding maken met uw gemigreerde database, omdat Azure SQL Database verschillende gegevenstypen, verschillende databaseobjecten en een andere API gebruikt dan MySQL en MariaDB. Raadpleeg uw ontwikkelaars om te bepalen hoeveel werk er nodig is om een clienttoepassing van een on-premises MySQL- of MariaDB-database over te zetten naar een Azure SQL-clouddatabase.

SQL Server Migration Assistant voor MySQL

Als u besluit om van MySQL naar Azure SQL Database te migreren, kunt u een speciaal hulpprogramma gebruiken: SQL Server Migration Assistant voor MySQL. Dit GUI-hulpprogramma maakt verbinding met een MySQL-brondatabase en een SQL Server-database, die een database kan zijn in de Azure SQL Database-service.

Wanneer deze is verbonden, kopieert de assistent het volledige schema naar Azure SQL Database en converteert de gegevenstypen naar hun SQL Server-equivalenten. Ook worden weergaven, procedures, triggers en andere objecten gemigreerd. Vervolgens kunt u beginnen met het migreren van de gegevens van MySQL naar Azure SQL Database.

Notitie

SQL Server Migration Assistant voor MySQL is niet getest voor het migreren van MariaDB-databases naar Azure SQL Database.