Migrera stora databaser till Azure Database for MySQL med mydumper/myloader

Varning

Den här artikeln refererar till CentOS, en Linux-distribution som närmar sig EOL-status (End Of Life). Överväg att använda och planera i enlighet med detta. Mer information finns i CentOS End Of Life-vägledningen.

GÄLLER FÖR: Azure Database for MySQL – Azure Database for MySQL – enskild server – flexibel server

Azure Database for MySQL är en hanterad tjänst som du använder för att köra, hantera och skala högtillgängliga MySQL-databaser i molnet. Om du vill migrera MySQL-databaser som är större än 1 TB till Azure Database for MySQL kan du överväga att använda communityverktyg som mydumper/myloader, som ger följande fördelar:

  • Parallellitet för att minska migreringstiden.
  • Bättre prestanda genom att undvika dyra konverteringsrutiner för teckenuppsättningar.
  • Ett utdataformat med separata filer för tabeller, metadata osv. som gör det enkelt att visa/parsa data. Konsekvens genom att underhålla ögonblicksbilder i alla trådar.
  • Korrekta primära och replikloggpositioner.
  • Enkel hantering eftersom de stöder PCRE (Perl Compatible Regular Expressions) för att ange databas- och tabellinkluderingar och undantag.
  • Schema och data går ihop. Behöver inte hantera det separat som andra logiska migreringsverktyg.

Den här snabbstarten visar hur du installerar, säkerhetskopierar och återställer en MySQL-databas med hjälp av mydumper/myloader.

Förutsättningar

Innan du börjar migrera din MySQL-databas måste du:

  1. Skapa en Azure Database for MySQL-server med hjälp av Azure-portalen.

  2. Skapa en virtuell Azure-dator som kör Linux med hjälp av Azure-portalen (helst Ubuntu).

    Kommentar

    Innan du installerar verktygen bör du tänka på följande:

    • Om källan är lokal och har en anslutning med hög bandbredd till Azure (med ExpressRoute) bör du överväga att installera verktyget på en virtuell Azure-dator.
    • Om du har en utmaning i bandbredden mellan källan och målet bör du överväga att installera mydumper nära källan och myloader nära målservern. Du kan använda verktygen Azcopy för att flytta data från lokala eller andra molnlösningar till Azure.
  3. Installera mysql-klienten genom att utföra följande steg:

  • Uppdatera paketindexet på den virtuella Azure-dator som kör Linux genom att köra följande kommando:
sudo apt update
  • Installera mysql-klientpaketet genom att köra följande kommando:
sudo apt install mysql-client

Installera mydumper/myloader

Utför följande steg för att installera mydumper/myloader.

  1. Beroende på operativsystemets distribution laddar du ned lämpligt paket för mydumper/myloader och kör följande kommando:

    wget https://github.com/maxbube/mydumper/releases/download/v0.10.1/mydumper_0.10.1-2.$(lsb_release -cs)_amd64.deb
    

    Kommentar

    $(lsb_release -cs) hjälper dig att identifiera din distribution.

  2. Kör följande kommando för att installera .deb-paketet för mydumper:

    sudo dpkg -i mydumper_0.10.1-2.$(lsb_release -cs)_amd64.deb
    

    Dricks

    Det kommando som du använder för att installera paketet skiljer sig beroende på vilken Linux-distribution du har eftersom installationsprogrammet skiljer sig åt. Mydumper/myloader är tillgänglig för följande distributioner Fedora, RedHat, Ubuntu, Debian, CentOS , openSUSE och MacOSX. Mer information finns i Installera mydumper

Skapa en säkerhetskopia med mydumper

  • Kör följande kommando för att skapa en säkerhetskopia med 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
    

Det här kommandot använder följande variabler:

  • --host: Värden som ska anslutas till

  • --user: Användarnamn med nödvändiga behörigheter

  • --password: Användarlösenord

  • --rows: Försök att dela upp tabeller i segment av så här många rader

  • --outputdir: Katalog att dumpa utdatafiler till

  • --regex: Reguljärt uttryck för databasmatchning.

  • --trx-consistency-only: Endast transaktionskonsekvens

  • --threads: Antal trådar som ska användas, standard 4. Vi rekommenderar att du använder ett värde som är lika med 2 gånger datorns virtuella kärnor.

    Kommentar

    Om du vill ha mer information om andra alternativ kan du använda med mydumper genom att köra följande kommando: mydumper --help . Mer information finns i dokumentationen mydumper\myloader
    Om du vill dumpa flera databaser parallellt kan du ändra regex-variabeln enligt exemplet: regex ^(DbName1.|DbName2.)

Återställa databasen med myloader

  • Kör följande kommando för att återställa databasen som du säkerhetskopierade med 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
    

Det här kommandot använder följande variabler:

  • --host: Värden som ska anslutas till
  • --user: Användarnamn med nödvändiga behörigheter
  • --password: Användarlösenord
  • --directory: Plats där säkerhetskopian lagras.
  • --queries-per-transaction: Rekommendera inställning till värde högst 500
  • --threads: Antal trådar som ska användas, standard 4. Rekommenderad användning av ett värde som är lika med 2 x av datorns virtuella kärnor

Dricks

Mer information om andra alternativ som du kan använda med myloader finns i följande kommando: myloader --help

När databasen har återställts rekommenderar vi alltid att du verifierar datakonsekvensen mellan källan och måldatabaserna.

Kommentar

Skicka eventuella problem eller feedback om mydumper/myloader-verktygen här.

Nästa steg