Uw MySQL-database migreren naar Azure Database for MySQL - Flexible Server met behulp van dump en herstel
VAN TOEPASSING OP: Azure Database for MySQL - Enkele server Azure Database for MySQL - Flexibele server
Belangrijk
Azure Database for MySQL enkele server bevindt zich op het buitengebruikstellingspad. We raden u ten zeerste aan een upgrade uit te voeren naar een flexibele Azure Database for MySQL-server. Zie Wat gebeurt er met Azure Database for MySQL Enkele server voor meer informatie over migreren naar Azure Database for MySQL Flexibele server ?
In dit artikel worden twee veelvoorkomende manieren uitgelegd om back-ups te maken van databases en deze te herstellen in Azure Database for MySQL Flexible Server.
- Dumpen en herstellen vanaf de opdrachtregel (met behulp van mysqldump).
- Dumpen en herstellen met PHPMyAdmin.
U kunt ook verwijzen naar de handleiding voor databasemigratie voor gedetailleerde informatie en use cases over het migreren van databases naar Azure Database for MySQL Flexible Server. Deze handleiding bevat richtlijnen voor de succesvolle planning en uitvoering van een MySQL-migratie naar Azure.
Voordat u begint
Als u deze handleiding wilt doorlopen, hebt u het volgende nodig:
- Een Azure Database for MySQL Flexible Server-exemplaar - Azure Portal
- het opdrachtregelprogramma mysqldump dat op een computer is geïnstalleerd.
- MySQL Workbench of een ander MySQL-hulpprogramma van derden voor het uitvoeren van dump- en herstelopdrachten.
Tip
Als u grote databases met databasegrootten meer dan 1 TB's wilt migreren, kunt u overwegen om communityhulpprogramma's zoals mydumper/myloader te gebruiken die ondersteuning biedt voor parallelle export en import. Meer informatie over het migreren van grote MySQL-databases.
Veelvoorkomende gebruiksvoorbeelden voor dump en herstel
De meest voorkomende use-cases zijn:
Overstappen van andere beheerde serviceprovider: de meeste beheerde serviceproviders bieden mogelijk geen toegang tot het fysieke opslagbestand om veiligheidsredenen, zodat logische back-up en herstel de enige optie is om te migreren.
Migreren vanuit een on-premises omgeving of virtuele machine : Azure Database for MySQL Flexible Server biedt geen ondersteuning voor het herstellen van fysieke back-ups, waardoor logische back-ups en herstel als enige benadering worden gemaakt.
Het verplaatsen van uw back-upopslag van lokaal redundante naar geografisch redundante opslag : Met Azure Database for MySQL Flexible Server kunt u lokaal redundante of geografisch redundante opslag configureren voor back-ups alleen tijdens het maken van de server. Nadat de server is ingericht, kunt u de optie voor redundantie van back-upopslag niet meer wijzigen. Als u uw back-upopslag wilt verplaatsen van lokaal redundante opslag naar geografisch redundante opslag, is dump en herstel de enige optie.
Migreren van alternatieve opslagengines naar InnoDB : Azure Database for MySQL Flexible Server ondersteunt alleen InnoDB Storage Engine en biedt daarom geen ondersteuning voor alternatieve opslagengines. Als uw tabellen zijn geconfigureerd met andere opslagengines, converteert u deze naar de Indeling van de InnoDB-engine voordat u naar Azure Database for MySQL Flexible Server gaat.
Als u bijvoorbeeld een WordPress of WebApp hebt met behulp van de MyISAM-tabellen, converteert u deze tabellen eerst door deze tabellen te migreren naar de InnoDB-indeling voordat u herstelt naar Azure Database for MySQL Flexible Server. Gebruik de component
ENGINE=InnoDB
om de engine in te stellen die wordt gebruikt bij het maken van een nieuwe tabel en de gegevens vervolgens over te dragen naar de compatibele tabel voordat de herstelbewerking wordt uitgevoerd.INSERT INTO innodb_table SELECT * FROM myisam_table ORDER BY primary_key_columns
Belangrijk
- U kunt compatibiliteitsproblemen voorkomen door ervoor te zorgen dat dezelfde versie van MySQL wordt gebruikt in het bron- en doelsysteem bij het dumpen van databases. Als uw bestaande MySQL-server bijvoorbeeld versie 5.7 is, moet u migreren naar een exemplaar van Azure Database for MySQL Flexible Server dat is geconfigureerd om versie 5.7 uit te voeren. De
mysql_upgrade
opdracht werkt niet in een exemplaar van Azure Database for MySQL Flexible Server en wordt niet ondersteund. - Als u een upgrade wilt uitvoeren tussen MySQL-versies, moet u eerst uw database met lagere versies dumpen of exporteren naar een hogere versie van MySQL in uw eigen omgeving. Voer vervolgens uit
mysql_upgrade
voordat u een migratie uitvoert naar een exemplaar van Azure Database for MySQL Flexible Server.
Prestatieoverwegingen
Als u de prestaties wilt optimaliseren, moet u rekening houden met deze overwegingen bij het dumpen van grote databases:
- Gebruik de
exclude-triggers
optie in mysqldump bij het dumpen van databases. Sluit triggers uit van dumpbestanden om te voorkomen dat de triggeropdrachten worden geactiveerd tijdens het herstellen van gegevens. - Gebruik de
single-transaction
optie om de transactieisolatiemodus in te stellen op HERHAALBAAR LEZEN en verzendt een SQL-instructie START TRANSACTION SQL naar de server voordat gegevens worden gedumpt. Als u veel tabellen binnen één transactie dumpt, wordt er extra opslagruimte verbruikt tijdens het herstellen. Desingle-transaction
optie en delock-tables
optie sluiten elkaar wederzijds uit omdat LOCK TABLES ervoor zorgt dat transacties die in behandeling zijn impliciet worden doorgevoerd. Als u grote tabellen wilt dumpen, combineert u desingle-transaction
optie met dequick
optie. - Gebruik de
extended-insert
syntaxis van meerdere rijen die meerdere WAARDEN-lijsten bevat. Dit resulteert in een kleiner dumpbestand en versnelt invoegen wanneer het bestand opnieuw wordt geladen. - Gebruik de
order-by-primary
optie in mysqldump bij het dumpen van databases, zodat de gegevens worden gescript in de primaire-sleutelvolgorde. - Gebruik de
disable-keys
optie in mysqldump bij het dumpen van gegevens om beperkingen voor refererende sleutels uit te schakelen voordat deze worden geladen. Het uitschakelen van refererende sleutelcontroles biedt prestatieverbeteringen. Schakel de beperkingen in en controleer de gegevens na de belasting om referentiële integriteit te garanderen. - Gebruik gepartitioneerde tabellen indien van toepassing.
- Laad gegevens parallel. Vermijd te veel parallelle uitvoering die ertoe zou leiden dat u een resourcelimiet bereikt en bewaak resources met behulp van de metrische gegevens die beschikbaar zijn in Azure Portal.
- Gebruik de
defer-table-indexes
optie in mysqldump bij het dumpen van databases, zodat het maken van indexen plaatsvindt nadat tabellengegevens zijn geladen. - Kopieer de back-upbestanden naar een Azure Blob/Store en voer de herstelbewerking daar uit, wat veel sneller moet zijn dan het uitvoeren van de herstelbewerking via internet.
Een database maken op het Azure Database for MySQL Flexible Server-doelexemplaren
Maak een lege database op het Azure Database for MySQL Flexible Server-doelexemplaren waar u de gegevens wilt migreren. Gebruik een hulpprogramma zoals MySQL Workbench of mysql.exe om de database te maken. De database kan dezelfde naam hebben als de database die de gedumpte gegevens bevat of u kunt een database met een andere naam maken.
Als u verbinding wilt maken, zoekt u de verbindingsgegevens in het overzicht van uw Azure Database for MySQL Flexible Server-exemplaar.
Voeg de verbindingsgegevens toe aan uw MySQL Workbench.
Het Azure Database for MySQL Flexible Server-doelexemplaren voorbereiden voor snelle gegevensbelasting
Als u het doelexemplaren van Azure Database for MySQL Flexible Server wilt voorbereiden voor snellere gegevensbelastingen, moeten de volgende serverparameters en -configuratie worden gewijzigd.
- max_allowed_packet : ingesteld op 1073741824 (dat wil gezegd 1 GB) om overloopproblemen te voorkomen vanwege lange rijen.
- slow_query_log : ingesteld op UIT om het logboek voor langzame query's uit te schakelen. Dit elimineert de overhead die wordt veroorzaakt door trage logboekregistratie van query's tijdens het laden van gegevens.
- query_store_capture_mode: ingesteld op NONE om Query Store uit te schakelen. Dit elimineert de overhead die wordt veroorzaakt door steekproeven door Query Store.
- innodb_buffer_pool_size: schaal de server omhoog naar 32 vCore geoptimaliseerde SKU's vanuit de prijscategorie van de portal tijdens de migratie om de innodb_buffer_pool_size te verhogen. Innodb_buffer_pool_size kan alleen worden verhoogd door de rekenkracht voor het Azure Database for MySQL Flexible Server-exemplaar op te schalen.
- innodb_io_capacity & innodb_io_capacity_max : wijzig in 9000 van de serverparameters in Azure Portal om het IO-gebruik te verbeteren om de migratiesnelheid te optimaliseren.
- innodb_write_io_threads &innodb_write_io_threads : wijzig in 4 van de serverparameters in Azure Portal om de migratiesnelheid te verbeteren.
- Opslaglaag omhoog schalen: de IOPS voor Azure Database for MySQL Flexible Server neemt geleidelijk toe met de toename van de opslaglaag. Voor snellere belastingen wilt u mogelijk de opslaglaag verhogen om de ingerichte IOPS te verhogen. Onthoud dat de opslag alleen omhoog kan worden geschaald, niet omlaag.
Zodra de migratie is voltooid, kunt u de serverparameters en de configuratie van de rekenlaag terugzetten naar de vorige waarden.
Dumpen en herstellen met behulp van het hulpprogramma mysqldump
Een back-upbestand maken vanaf de opdrachtregel met behulp van mysqldump
Als u een back-up wilt maken van een bestaande MySQL-database op de lokale on-premises server of op een virtuele machine, voert u de volgende opdracht uit:
mysqldump --opt -u [uname] -p[pass] [dbname] > [backupfile.sql]
De parameters die moeten worden opgegeven, zijn:
- [uname] De gebruikersnaam van uw database
- [pass] Het wachtwoord voor uw database (er is geen spatie tussen -p en het wachtwoord)
- [dbname] De naam van uw database
- [backupfile.sql] De bestandsnaam voor de back-up van de database
- [--opt] De optie mysqldump
Als u bijvoorbeeld een back-up wilt maken van een database met de naam 'testdb' op uw MySQL-server met de gebruikersnaam testuser en zonder wachtwoord voor een bestand testdb_backup.sql, gebruikt u de volgende opdracht. De opdracht maakt een back-up van de database in een bestand met de testdb
naam testdb_backup.sql
, dat alle SQL-instructies bevat die nodig zijn om de database opnieuw te maken. Zorg ervoor dat de gebruikersnaam testuser ten minste de SELECT-bevoegdheid heeft voor gedumpte tabellen, SHOW VIEW voor gedumpte weergaven, TRIGGER voor gedumpte triggers en LOCK TABLES als de --single-transaction
optie niet wordt gebruikt.
GRANT SELECT, LOCK TABLES, SHOW VIEW ON *.* TO 'testuser'@'hostname' IDENTIFIED BY 'password';
Voer nu mysqldump uit om de back-up van testdb
de database te maken
mysqldump -u root -p testdb > testdb_backup.sql
Als u specifieke tabellen in uw database wilt selecteren waarvan u een back-up wilt maken, vermeldt u de tabelnamen gescheiden door spaties. Als u bijvoorbeeld alleen een back-up wilt maken van tabel1- en tabel2-tabellen uit de 'testdb', volgt u dit voorbeeld:
mysqldump -u root -p testdb table1 table2 > testdb_tables_backup.sql
Als u een back-up wilt maken van meer dan één database tegelijk, gebruikt u de --database
schakeloptie en maakt u een lijst met de namen van de database, gescheiden door spaties.
mysqldump -u root -p --databases testdb1 testdb3 testdb5 > testdb135_backup.sql
Uw MySQL-database herstellen met behulp van de opdrachtregel
Zodra u de doeldatabase hebt gemaakt, kunt u de mysql-opdracht gebruiken om de gegevens te herstellen in de specifieke zojuist gemaakte database vanuit het dumpbestand.
mysql -h [hostname] -u [uname] -p[pass] [db_to_restore] < [backupfile.sql]
In dit voorbeeld herstelt u de gegevens in de zojuist gemaakte database op het doelexemplaren van Azure Database for MySQL Flexible Server.
Hier volgt een voorbeeld voor het gebruik van deze mysql voor één server :
mysql -h mydemoserver.mysql.database.azure.com -u myadmin@mydemoserver -p testdb < testdb_backup.sql
Hier volgt een voorbeeld voor het gebruik van deze mysql voor Flexibele server :
mysql -h mydemoserver.mysql.database.azure.com -u myadmin -p testdb < testdb_backup.sql
Notitie
U kunt ook het clienthulpprogramma MySQL Workbench gebruiken om de MySQL-database te herstellen.
Dumpen en herstellen met PHPMyAdmin
Volg deze stappen om een database te dumpen en te herstellen met PHPMyadmin.
Notitie
Voor één server moet de gebruikersnaam in deze indeling staan, 'username@servername', maar voor flexibele server kunt u gewoon 'gebruikersnaam' gebruiken als u 'username@servername' gebruikt voor flexibele server, mislukt de verbinding.
Exporteren met PHPMyadmin
Als u wilt exporteren, kunt u het algemene hulpprogramma phpMyAdmin gebruiken, dat u mogelijk al lokaal in uw omgeving hebt geïnstalleerd. Uw MySQL-database exporteren met PHPMyAdmin:
- Open phpMyAdmin.
- Selecteer uw database. Selecteer de databasenaam in de lijst aan de linkerkant.
- Selecteer de koppeling Exporteren . Er wordt een nieuwe pagina weergegeven om de dump van de database weer te geven.
- Selecteer in het gebied Exporteren de koppeling Alles selecteren om de tabellen in uw database te kiezen.
- Selecteer de juiste opties in het gebied met SQL-opties.
- Selecteer de optie Opslaan als en de bijbehorende compressieoptie en selecteer vervolgens de knop Start . Er wordt een dialoogvenster weergegeven waarin u wordt gevraagd het bestand lokaal op te slaan.
Importeren met PHPMyAdmin
Het importeren van uw database is vergelijkbaar met exporteren. Voer de volgende acties uit:
- Open phpMyAdmin.
- Selecteer op de installatiepagina van phpMyAdmin de optie Toevoegen om uw Exemplaar van Azure Database for MySQL Flexible Server toe te voegen. Geef de verbindingsgegevens op en meld u aan.
- Maak een database met de juiste naam en selecteer deze aan de linkerkant van het scherm. Als u de bestaande database wilt herschrijven, selecteert u de databasenaam, schakelt u alle selectievakjes naast de tabelnamen in en selecteert u Neerzetten om de bestaande tabellen te verwijderen.
- Selecteer de SQL-koppeling om de pagina weer te geven waar u SQL-opdrachten kunt typen of uw SQL-bestand kunt uploaden.
- Gebruik de bladerknop om het databasebestand te zoeken.
- Selecteer de knop Start om de back-up te exporteren, de SQL-opdrachten uit te voeren en de database opnieuw te maken.
Bekende problemen
Voor bekende problemen, tips en trucs raden we u aan om onze techcommunity-blog te bekijken.
Volgende stappen
- Toepassingen verbinden met Azure Database for MySQL Flexible Server.
- Zie de handleiding voor databasemigratie voor meer informatie over het migreren van databases naar Azure Database for MySQL Flexible Server.
- Als u grote databases wilt migreren met databasegrootten van meer dan 1 TB, kunt u overwegen om communityhulpprogramma's zoals mydumper/myloader te gebruiken die ondersteuning biedt voor parallelle export en import. Meer informatie over het migreren van grote MySQL-databases.