Uw MySQL-database migreren naar Azure Database voor MySQL met behulp van dumpen en terugzetten

VAN TOEPASSING OP: Azure Database for MySQL - Single Server Azure Database for MySQL - Flexible Server

In dit artikel worden twee veelvoorkomende manieren uitgelegd om back-up te maken van databases in uw Azure Database for MySQL

  • Dump en herstel vanaf de opdrachtregel (met behulp van mysqldump)
  • Dumpen en herstellen met PHPMyAdmin

U kunt ook de Database Migration Guide (Handleiding voor databasemigratie) voor gedetailleerde informatie en use cases over het migreren van databases naar Azure Database for MySQL. Deze handleiding bevat richtlijnen die u helpen bij het plannen en uitvoeren van een MySQL-migratie naar Azure.

Voordat u begint

Als u deze handleiding wilt door nemen, hebt u het volgende nodig:

Tip

Als u grote databases met databasegrootten van meer dan 1 TB wilt migreren, kunt u overwegen om communityhulpprogramma's zoals mydumper/myloader te gebruiken die ondersteuning bieden voor parallelle export en import. Meer informatie over het migreren van grote MySQL-databases.

Veelvoorkomende gebruiksgevallen voor dumpen en herstellen

De meest voorkomende gebruiksgevallen zijn:

  • Overstappen van een andere beheerde serviceprovider: de meeste beheerde serviceproviders bieden uit veiligheidsoverwegingen mogelijk geen toegang tot het fysieke opslagbestand, dus logische back-up en herstel is de enige optie om te migreren.

  • Migreren vanuit een on-premises omgeving of virtuele machine: Azure Database for MySQL biedt geen ondersteuning voor het herstellen van fysieke back-ups, waardoor logische back-ups en herstel als de ENIGE aanpak worden gemaakt.

  • Uw back-upopslag verplaatsen van lokaal redundante naar geografisch redundante opslag: Azure Database for MySQL maakt het configureren van lokaal redundante of geografisch redundante opslag voor back-up alleen toegestaan tijdens het maken van de server. Zodra 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 dumpen en herstellen de ENIGE optie.

  • Migreren van alternatieve opslagen engines naar InnoDB: Azure Database for MySQL ondersteunt alleen InnoDB Storage-engine en ondersteunt daarom geen alternatieve opslagen engines. Als uw tabellen zijn geconfigureerd met andere opslagen engines, converteert u deze vóór de migratie naar Azure Database for MySQL.

    Als u bijvoorbeeld een WordPress of WebApp hebt die gebruik maakt van de MyISAM-tabellen, converteert u deze tabellen eerst door te migreren naar de InnoDB-indeling voordat u deze herstelt naar Azure Database for MySQL. Gebruik de -component om de engine in te stellen die wordt gebruikt bij het maken van een nieuwe tabel en breng de gegevens vóór het herstellen over naar ENGINE=InnoDB de compatibele tabel.

    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 Azure Database for MySQL geconfigureerd om versie 5.7 uit te voeren. De mysql_upgrade opdracht werkt niet in een Azure Database for MySQL server en wordt niet ondersteund.
  • Als u een upgrade wilt uitvoeren tussen MySQL-versies, dumpt of exporteert u eerst uw database met een lagere versie naar een hogere versie van MySQL in uw eigen omgeving. Voer vervolgens mysql_upgrade uit voordat u de migratie naar een Azure Database for MySQL.

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 gebruikt tijdens het herstellen van de gegevens.
  • Gebruik de optie om de transactieisolatiemodus in te stellen op HERHAALBAAR LEZEN en verstuurt een instructie SQL transactie naar de server voordat gegevens single-transaction worden verwijderd. Het dumpen van veel tabellen in één transactie zorgt ervoor dat er extra opslagruimte wordt verbruikt tijdens het herstellen. De optie en de optie sluiten elkaar wederzijds uit, omdat LOCK TABLES ervoor zorgt dat transacties die in behandeling zijn impliciet single-transaction lock-tables worden vastgelegd. Als u grote tabellen wilt dumpen, single-transaction combineert u de optie met de quick optie .
  • Gebruik de extended-insert syntaxis met meerdere rijen die verschillende VALUE-lijsten bevat. Dit resulteert in een kleiner dumpbestand en versnelt invoegingen wanneer het bestand opnieuw wordt geladen.
  • Gebruik de optie in mysqldump bij het dumpen van databases, zodat de gegevens in de volgorde van de primaire sleutel worden order-by-primary gescript.
  • Gebruik de optie in mysqldump bij het dumpen van gegevens om beperkingen voor de vreemde sleutel uit disable-keys te schakelen voordat ze worden geladen. Het uitschakelen van controles van vreemde sleutels levert prestatieverbeteringen op. Schakel de beperkingen in en controleer de gegevens na het laden om de referentiële integriteit te garanderen.
  • Gebruik gepartitiede tabellen indien van toepassing.
  • Gegevens parallel laden. Vermijd te veel parallellisme dat ertoe zou leiden dat u een resourcelimiet bereikt en beperk resources met behulp van de metrische gegevens die beschikbaar zijn in de Azure Portal.
  • Gebruik de optie in mysqlpump bij het dumpen van databases, zodat het maken van een index gebeurt nadat tabellen defer-table-indexes zijn geladen.
  • Gebruik de optie in mysqlpump om definer- en SQL SECURITY-component uit de create-instructies voor weergaven en opgeslagen skip-definer procedures weg te laten. Wanneer u het dumpbestand opnieuw laadt, worden er objecten gemaakt die gebruikmaken van de standaarddefinist en SQL SECURITY-waarden.
  • Kopieer de back-upbestanden naar een Azure-blob/-archief en voer het herstel daar uit. Dit zou veel sneller moeten zijn dan het uitvoeren van het herstel via internet.

Een database op de doelserver Azure Database for MySQL maken

Maak een lege database op de doelserver Azure Database for MySQL waarop 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 dumpgegevens 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.

Zoek de verbindingsgegevens in de Azure Portal

Voeg de verbindingsgegevens toe aan uw MySQL Workbench.

MySQL Workbench-verbindingsreeks

De doelserver voorbereiden Azure Database for MySQL voor het snel laden van gegevens

Als u de doelserver Azure Database for MySQL voor een snellere laad van gegevens, moeten de volgende serverparameters en -configuratie worden gewijzigd.

  • max_allowed_packet: stel in op 1073741824 (1 GB) om een overloopprobleem door lange rijen te voorkomen.
  • slow_query_log: stel deze in op UIT om het logboek voor langzame query's uit te schakelen. Dit elimineert de overhead die wordt veroorzaakt door langzame logboekregistratie van query's tijdens het laden van gegevens.
  • query_store_capture_mode: stel deze in op NONE om Query Store uit te schakelen. Dit elimineert de overhead die wordt veroorzaakt door steekproefactiviteiten door Query Store.
  • innodb_buffer_pool_size: schaal de server tijdens de migratie op naar een SKU met geoptimaliseerd geheugen van 32 vCores vanuit de prijscategorie van de portal om het aantal innodb_buffer_pool_size. Innodb_buffer_pool_size kunnen alleen worden verhoogd door de rekenkracht voor de Azure Database for MySQL vergroten.
  • innodb_io_capacity & innodb_io_capacity_max: wijzig in 9000 van de serverparameters in Azure Portal om het I/O-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 snelheid van de migratie te verbeteren.
  • Omhoog schalen Storage laag: de IOPS voor Azure Database for MySQL server neemt geleidelijk toe met de toename van de opslaglaag. Voor snellere belastingen kunt u de opslaglaag verhogen om de inrichten IOPS te verhogen. Vergeet niet 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 terugdraaien naar de vorige waarden.

Dumpen en herstellen met behulp van het hulpprogramma mysqldump

Een back-upbestand maken vanaf de opdrachtregel met mysqldump

Voer de volgende opdracht uit om een back-up te maken van een bestaande MySQL-database op de lokale on-premises server of op een virtuele machine:

$ mysqldump --opt -u [uname] -p[pass] [dbname] > [backupfile.sql]

De parameters die u moet opgeven, zijn:

  • [uname] De gebruikersnaam van uw database
  • [pass] Het wachtwoord voor uw database (let op: er is geen spatie tussen -p en het wachtwoord)
  • [dbname] De naam van uw database
  • [backupfile.sql] De bestandsnaam voor de back-up van uw 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 naam , dat alle SQL bevat die nodig zijn om de testdb testdb_backup.sql database opnieuw te maken. Zorg ervoor dat de gebruikersnaam 'testuser' ten minste de bevoegdheid SELECT heeft voor dumptabellen, SHOW VIEW voor dumpweergaven, TRIGGER voor dumptriggers en LOCK TABLES als de optie --single-transaction 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 de database te testdb maken

$ mysqldump -u root -p testdb > testdb_backup.sql

Als u specifieke tabellen in uw database wilt selecteren om een back-up te maken, vermeldt u de tabelnamen gescheiden door spaties. Als u bijvoorbeeld alleen een back-up wilt maken van tabellen table1 en table2 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 schakelknop --database en vermeldt u de databasenamen gescheiden door spaties.

$ mysqldump -u root -p --databases testdb1 testdb3 testdb5 > testdb135_backup.sql

Uw MySQL-database herstellen met behulp van de opdrachtregel of MySQL Workbench

Nadat u de doeldatabase hebt gemaakt, kunt u de mysql-opdracht of MySQL Workbench gebruiken om de gegevens vanuit het dumpbestand te herstellen in de specifieke nieuwe database.

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 de doelserver Azure Database for MySQL maken.

Hier is een voorbeeld voor het gebruik van deze mysql voor enkele server:

$ mysql -h mydemoserver.mysql.database.azure.com -u myadmin@mydemoserver -p testdb < testdb_backup.sql

Hier is 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

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 deze indeling hebben, ' ' maar voor flexibele server kunt u gewoon 'gebruikersnaam' gebruiken Als u ' ' voor flexibele server gebruikt, mislukt de username@servername username@servername 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:

  1. Open phpMyAdmin.
  2. Selecteer uw database. Klik op de databasenaam in de lijst aan de linkerkant.
  3. Klik op de koppeling Exporteren. Er wordt een nieuwe pagina weergegeven om de dump van de database weer te geven.
  4. Klik in het gebied Exporteren op de koppeling Alles selecteren om de tabellen in uw database te kiezen.
  5. Klik in SQL optiegebied op de juiste opties.
  6. Klik op de optie Opslaan als bestand en de bijbehorende compressieoptie en klik vervolgens op de knop Go. 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 het exporteren. Ga als volgt te werk:

  1. Open phpMyAdmin.
  2. Klik op de installatiepagina phpMyAdmin op Toevoegen om uw Azure Database for MySQL toevoegen. Geef de verbindingsgegevens en aanmeldingsgegevens op.
  3. Maak een database met de juiste naam en selecteer deze aan de linkerkant van het scherm. Als u de bestaande database wilt herschrijven, klikt u op de databasenaam, selecteert u alle selectievakjes naast de tabelnamen en selecteert u Neerzetten om de bestaande tabellen te verwijderen.
  4. Klik op SQL koppeling om de pagina weer te geven waar u de opdrachten SQL typen of uw SQL uploaden.
  5. Gebruik de bladerknop om het databasebestand te zoeken.
  6. Klik op de knop Go om de back-up te exporteren, 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