Uw MariaDB-database migreren naar een Azure-database for MariaDB met behulp van dump en restore
Belangrijk
Azure Database for MariaDB bevindt zich op het buitengebruikstellingspad. We raden u ten zeerste aan om te migreren naar Azure Database for MySQL. Zie Wat gebeurt er met Azure Database for MariaDB voor meer informatie over migreren naar Azure Database for MySQL.
In dit artikel worden twee veelvoorkomende manieren uitgelegd om back-ups te maken van databases en deze te herstellen in uw Azure Database for MariaDB:
- Dumpen en herstellen met behulp van een opdrachtregelprogramma (met behulp van mysqldump).
- Dumpen en herstellen met phpMyAdmin.
Vereisten
Voordat u begint met het migreren van uw database, gaat u als volgt te werk:
- Een Azure Database for MariaDB-server maken - Azure Portal.
- Installeer het opdrachtregelprogramma mysqldump .
- Download en installeer MySQL Workbench of een ander MySQL-hulpprogramma van derden voor het uitvoeren van dump- en herstelopdrachten.
Veelgebruikte hulpprogramma's gebruiken
Gebruik veelgebruikte hulpprogramma's en hulpprogramma's zoals MySQL Workbench of mysqldump om op afstand verbinding te maken en gegevens te herstellen in uw Azure-database voor MariaDB. Gebruik deze hulpprogramma's op uw clientcomputer met een internetverbinding om verbinding te maken met de Azure-database voor MariaDB. Gebruik een met SSL versleutelde verbinding als best practice voor beveiliging. Zie SSL-connectiviteit configureren in Azure Database for MariaDB voor meer informatie. U hoeft de dumpbestanden niet naar een speciale cloudlocatie te verplaatsen wanneer u gegevens migreert naar uw Azure-database voor MariaDB.
Veelvoorkomende toepassingen voor dump en herstel
U kunt MySQL-hulpprogramma's zoals mysqldump en mysqlpump gebruiken om databases in een Azure-database voor MariaDB-server te dumpen en laden in verschillende veelvoorkomende scenario's.
Gebruik databasedumps wanneer u een hele database migreert. Deze aanbeveling geldt wanneer u een grote hoeveelheid gegevens verplaatst of wanneer u de serviceonderbreking voor livesites of toepassingen wilt minimaliseren.
Zorg ervoor dat alle tabellen in de database de InnoDB-opslagengine gebruiken wanneer u gegevens in uw Azure-database voor MariaDB laadt. Azure Database for MariaDB ondersteunt alleen de InnoDB-opslagengine en geen andere opslagengines. Als uw tabellen zijn geconfigureerd met andere opslagengines, converteert u deze naar de Indeling van de InnoDB-engine voordat u ze migreert naar uw Azure-database voor MariaDB.
Als u bijvoorbeeld een WordPress-app of een web-app hebt die gebruikmaakt van MyISAM-tabellen, moet u deze tabellen eerst converteren door ze te migreren naar de InnoDB-indeling voordat u ze herstelt naar uw Azure-database voor MariaDB. Gebruik de component
ENGINE=InnoDB
om de engine in te stellen voor het maken van een nieuwe tabel en de gegevens vervolgens over te dragen naar de compatibele tabel voordat u deze herstelt.INSERT INTO innodb_table SELECT * FROM myisam_table ORDER BY primary_key_columns
Als u compatibiliteitsproblemen wilt voorkomen wanneer u databases dumpt, moet u ervoor zorgen dat u dezelfde versie van MariaDB gebruikt op de bron- en doelsystemen. Als uw bestaande MariaDB-server bijvoorbeeld versie 10.2 is, moet u migreren naar uw Azure-database voor MariaDB die is geconfigureerd om versie 10.2 uit te voeren. De
mysql_upgrade
opdracht werkt niet in een Azure Database for MariaDB-server en wordt niet ondersteund. Als u een upgrade wilt uitvoeren tussen MariaDB-versies, moet u eerst uw database met eerdere versies dumpen of exporteren naar een latere versie van MariaDB in uw eigen omgeving. U kunt vervolgens uitvoerenmysql_upgrade
voordat u migreert naar uw Azure-database voor MariaDB.
Prestatieoverwegingen
Houd rekening met de volgende overwegingen om de prestaties te optimaliseren wanneer u grote databases dumpt:
- Gebruik de
exclude-triggers
optie in mysqldump. 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 een SQL-instructie START TRANSACTION SQL naar de server te verzenden 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. Dit komt doordat 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. Deze methode resulteert in een kleiner dumpbestand en versnelt invoegen wanneer het bestand opnieuw wordt geladen. - Gebruik de
order-by-primary
optie in mysqldump wanneer u databases dumpt, zodat de gegevens worden gescript in de primaire-sleutelvolgorde. - Gebruik de
disable-keys
optie in mysqldump wanneer u gegevens dumpt om beperkingen voor refererende sleutels vóór de belasting uit te schakelen. Het uitschakelen van refererende sleutelcontroles helpt de prestaties te verbeteren. 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, waardoor u een resourcelimiet kunt bereiken en resources kunt bewaken met behulp van de metrische gegevens die beschikbaar zijn in Azure Portal.
- Gebruik de
defer-table-indexes
optie in mysqlpump wanneer u databases dumpt, zodat het maken van de index plaatsvindt nadat tabelgegevens zijn geladen. - Kopieer de back-upbestanden naar een Azure Blob-archief en voer de herstelbewerking daar uit. Deze aanpak moet veel sneller zijn dan het uitvoeren van de herstelbewerking via internet.
Een back-upbestand maken
Als u een back-up wilt maken van een bestaande MariaDB-database op de lokale on-premises server of op een virtuele machine, voert u de volgende opdracht uit met behulp van mysqldump:
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 (houd er rekening mee dat er geen ruimte is 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 MariaDB-server met de gebruikersnaamtestuser 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.
mysqldump -u root -p testdb > testdb_backup.sql
Als u specifieke tabellen wilt selecteren waarvan u een back-up wilt maken in uw database, 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 schakeloptie --database en maakt u een lijst van de databasenamen, gescheiden door spaties.
mysqldump -u root -p --databases testdb1 testdb3 testdb5 > testdb135_backup.sql
Een database maken op de doelserver
Maak een lege database op de Azure Database for MariaDB-doelserver waar u de gegevens wilt migreren. Gebruik een hulpprogramma zoals MySQL Workbench 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 deelvenster Overzicht van uw Azure-database voor MariaDB.
Voeg in MySQL Workbench de verbindingsgegevens toe.
Uw MariaDB-database herstellen
Nadat u de doeldatabase hebt gemaakt, kunt u de mysql-opdracht of MySQL Workbench gebruiken om de gegevens te herstellen in de 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 de Azure Database for MariaDB-doelserver.
mysql -h mydemoserver.mariadb.database.azure.com -u myadmin@mydemoserver -p testdb < testdb_backup.sql
Uw MariaDB-database exporteren met phpMyAdmin
Als u wilt exporteren, kunt u het algemene hulpprogramma phpMyAdmin gebruiken, dat mogelijk al lokaal in uw omgeving is geïnstalleerd. Ga als volgt te werk om uw MariaDB-database te exporteren:
- Open phpMyAdmin.
- Selecteer uw database in het linkerdeelvenster en selecteer vervolgens 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 Go. Sla het bestand lokaal op bij de prompt.
Uw database importeren met phpMyAdmin
Het importproces is vergelijkbaar met het exportproces. Ga als volgt te werk:
- Open phpMyAdmin.
- Selecteer Op de pagina phpMyAdmin setup de optie Toevoegen om uw Azure Database for MariaDB-server toe te voegen.
- Voer de verbindingsgegevens en aanmeldingsgegevens in.
- Maak een database met de juiste naam en selecteer deze vervolgens in het linkerdeelvenster. 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 invoeren of uw SQL-bestand kunt uploaden.
- Selecteer 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.