Grote databases migreren naar Azure Database for MySQL met behulp van Mydumper/Myloader
VAN TOEPASSING OP: Azure Database for MySQL - Enkele server Azure Database for MySQL - Flexibele server
Azure Database for MySQL is een beheerde service waarmee u MySQL-databases met hoge beschikbaarheid in de cloud kunt uitvoeren, beheren en schalen. Als u MySQL-databases wilt migreren die groter zijn dan 1 TB naar Azure Database for MySQL, kunt u gebruikmaken van communityhulpprogramma's zoals mydumper/myloader, die de volgende voordelen bieden:
- Parallelle uitvoering, om de migratietijd te verminderen.
- Betere prestaties, door dure conversieroutines voor tekenset te vermijden.
- Een uitvoerindeling, met afzonderlijke bestanden voor tabellen, metagegevens, enzovoort, waarmee u eenvoudig gegevens kunt weergeven/parseren. Consistentie, door momentopnamen in alle threads te onderhouden.
- Nauwkeurige primaire en replicalogboekposities.
- Eenvoudig beheer, omdat ze Ondersteuning bieden voor Perl Compatible Regular Expressions (PCRE) voor het opgeven van database- en tabellenopnamen en uitsluitingen.
- Schema en gegevens gaan samen. U hoeft deze niet afzonderlijk te verwerken, net als andere hulpprogramma's voor logische migratie.
In deze quickstart ziet u hoe u een MySQL-database installeert, maakt en herstelt met behulp van mydumper/myloader.
Vereisten
Voordat u begint met het migreren van uw MySQL-database, moet u het volgende doen:
Maak een Azure Database for MySQL-server met behulp van Azure Portal.
Maak een Virtuele Azure-machine waarop Linux wordt uitgevoerd met behulp van Azure Portal (bij voorkeur Ubuntu).
Notitie
Houd rekening met de volgende punten voordat u de hulpprogramma's installeert:
- Als uw bron on-premises is en een verbinding met hoge bandbreedte heeft met Azure (met behulp van ExpressRoute), kunt u overwegen het hulpprogramma op een Azure-VM te installeren.
- Als u een uitdaging hebt in de bandbreedte tussen de bron en het doel, kunt u overwegen om mydumper in de buurt van de bron en myloader in de buurt van de doelserver te installeren. U kunt hulpprogramma's azcopy gebruiken om de gegevens van on-premises of andere cloudoplossingen naar Azure te verplaatsen.
- Als uw bron on-premises is en een verbinding met hoge bandbreedte heeft met Azure (met behulp van ExpressRoute), kunt u overwegen het hulpprogramma op een Azure-VM te installeren.
Installeer mysql-client en voer de volgende stappen uit:
- Werk de pakketindex bij op de Azure-VM waarop Linux wordt uitgevoerd door de volgende opdracht uit te voeren:
sudo apt update
- Installeer het mysql-clientpakket door de volgende opdracht uit te voeren:
sudo apt install mysql-client
Mydumper/myloader installeren
Voer de volgende stappen uit om mydumper/myloader te installeren.
Afhankelijk van uw besturingssysteemdistributie downloadt u het juiste pakket voor mydumper/myloader en voert u de volgende opdracht uit:
wget https://github.com/maxbube/mydumper/releases/download/v0.10.1/mydumper_0.10.1-2.$(lsb_release -cs)_amd64.deb
Notitie
$(lsb_release -cs) helpt bij het identificeren van uw distributie.
Voer de volgende opdracht uit om het .deb-pakket voor mydumper te installeren:
sudo dpkg -i mydumper_0.10.1-2.$(lsb_release -cs)_amd64.deb
Tip
De opdracht die u gebruikt om het pakket te installeren, verschilt op basis van de Linux-distributie die u hebt, omdat de installatieprogramma's verschillen. De mydumper/myloader is beschikbaar voor de volgende distributies Fedora, RedHat, Ubuntu, Debian, openSUSE en MacOSX. Zie Mydumper installeren voor meer informatie
Een back-up maken met mydumper
Voer de volgende opdracht uit om een back-up te maken met mydumper:
mydumper --host=<servername> --user=<username> --password=<Password> --outputdir=./backup --rows=100000 --compress --build-empty-files --threads=16 --compress-protocol --trx-consistency-only --ssl --regex '^(<Db_name>\.)' -L mydumper-logs.txt
Deze opdracht maakt gebruik van de volgende variabelen:
--host: de host waarmee verbinding moet worden gemaakt
--user: gebruikersnaam met de benodigde bevoegdheden
--password: gebruikerswachtwoord
--rows: Probeer tabellen te splitsen in segmenten van dit aantal rijen
--outputdir: Map voor het dumpen van uitvoerbestanden naar
--regex: Reguliere expressie voor databasekoppeling.
--trx-consistency-only: transactionele consistentie alleen
--threads: aantal threads dat moet worden gebruikt, standaard 4. Aanbevolen een waarde te gebruiken die gelijk is aan 2x van de vCore van de computer.
Notitie
Voor meer informatie over andere opties kunt u met mydumper de volgende opdracht uitvoeren: mydumper --help . Zie de documentatie voor mydumper\myloader voor meer informatie
Als u meerdere databases parallel wilt dumpen, kunt u de regex-variabele wijzigen, zoals wordt weergegeven in het voorbeeld: regex ^(DbName1.|DbName2.)
Uw database herstellen met behulp van myloader
Voer de volgende opdracht uit om de database waarvan u een back-up hebt gemaakt te herstellen met behulp van mydumper:
myloader --host=<servername> --user=<username> --password=<Password> --directory=./backup --queries-per-transaction=500 --threads=16 --compress-protocol --ssl --verbose=3 -e 2>myloader-logs.txt
Deze opdracht maakt gebruik van de volgende variabelen:
- --host: de host waarmee verbinding moet worden gemaakt
- --user: gebruikersnaam met de benodigde bevoegdheden
- --password: gebruikerswachtwoord
- --directory: locatie waar de back-up is opgeslagen.
- --query's-per-transactie: Aanbevolen instelling voor waarde niet meer dan 500
- --threads: aantal threads dat moet worden gebruikt, standaard 4. Aanbevolen een waarde te gebruiken die gelijk is aan 2x van de vCore van de computer
Tip
Voer de volgende opdracht uit voor meer informatie over andere opties die u met myloader kunt gebruiken: myloader --help
Nadat de database is hersteld, is het altijd raadzaam om de gegevensconsistentie tussen de bron- en doeldatabases te valideren.
Notitie
Dien hier eventuele problemen of feedback over de hulpprogramma's voor mydumper/myloader in.
Gerelateerde inhoud
- mydumper/myloader-project in GitHub
- grote MySQL-databases migreren
- Minimale downtimemigratie van Azure Database for MySQL - Enkele server naar Azure Database for MySQL – Flexibele server
- Gegevens repliceren naar Azure Database for MySQL Flexible Server
- Azure Database for MySQL Flexible Server Data-in-replicatie configureren
- migratiefouten