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 Flexibele server.

  • Dumpen en herstellen vanaf de opdrachtregel (met behulp van mysqldump).
  • Dumpen en herstellen met PHPMy Beheer.

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 flexibele 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:

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 Flexibele 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 - Azure Database for MySQL flexibele server maakt het configureren van lokaal redundante of geografisch redundante opslag voor back-up alleen toegestaan 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 Flexibele server ondersteunt alleen InnoDB-opslagengines 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 een flexibele Azure Database for MySQL-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 een flexibele Azure Database for MySQL-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 een flexibele Azure Database for MySQL-server dat is geconfigureerd om versie 5.7 uit te voeren. De mysql_upgrade opdracht werkt niet in een exemplaar van een flexibele Azure Database for MySQL-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 een flexibele Azure Database for MySQL-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. De single-transaction optie en de lock-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 de single-transaction optie met de quick 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 doelexemplaren van Azure Database for MySQL Flexibele server

Maak een lege database op het doelexemplaren van Azure Database for MySQL Flexibele server waarin 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 flexibele Azure Database for MySQL-serverexemplaren.

Find the connection information in the Azure portal

Voeg de verbindingsgegevens toe aan uw MySQL Workbench.

MySQL Workbench Connection String

Het doelexemplaren van Azure Database for MySQL flexibele server voorbereiden voor snelle gegevensbelastingen

Als u het doelexemplaren van Azure Database for MySQL flexibele 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 rekenkracht op te schalen voor het flexibele serverexemplaren van Azure Database for MySQL.
  • 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 flexibele Azure Database for MySQL-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 uw databaseback-up
  • [--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 flexibele azure Database for MySQL-doelserverexemplaren.

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 PHPMy Beheer

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 phpMy Beheer gebruiken, dat u mogelijk al lokaal in uw omgeving hebt geïnstalleerd. Uw MySQL-database exporteren met PHPMy Beheer:

  1. Open phpMy Beheer.
  2. Selecteer uw database. Selecteer de databasenaam in de lijst aan de linkerkant.
  3. Selecteer de koppeling Exporteren . Er wordt een nieuwe pagina weergegeven om de dump van de database weer te geven.
  4. Selecteer in het gebied Exporteren de koppeling Alles selecteren om de tabellen in uw database te kiezen.
  5. Selecteer de juiste opties in het gebied met SQL-opties.
  6. 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 PHPMy Beheer

Het importeren van uw database is vergelijkbaar met exporteren. Voer de volgende acties uit:

  1. Open phpMy Beheer.
  2. Selecteer op de pagina phpMy Beheer setup de optie Toevoegen om uw flexibele Azure Database for MySQL-serverexemplaren toe te voegen. Geef de verbindingsgegevens op en meld u aan.
  3. 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.
  4. Selecteer de SQL-koppeling om de pagina weer te geven waar u SQL-opdrachten kunt typen of uw SQL-bestand kunt uploaden.
  5. Gebruik de bladerknop om het databasebestand te zoeken.
  6. 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