Delen via


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:

  1. Maak een Azure Database for MySQL-server met behulp van Azure Portal.

  2. 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.
  3. 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.

  1. 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.

  2. 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.