Condividi tramite


Eseguire la migrazione di database di grandi dimensioni a Database di Azure per MySQL con mydumper/myloader

Database di Azure per MySQL è un servizio gestito che consente di eseguire, gestire e dimensionare database MySQL a disponibilità elevata nel cloud. Per eseguire la migrazione di database MySQL di dimensioni superiori a 1 TB a Database di Azure per MySQL, prendere in considerazione l'uso di strumenti della community come mydumper/myloader, che offrono i vantaggi seguenti:

  • Parallelismo, per ridurre il tempo di migrazione.
  • Prestazioni migliori, evitando routine di conversione costose dei set di caratteri.
  • Un formato di output, con file separati per tabelle, metadati e così via, che semplifica la visualizzazione/analisi dei dati. Coerenza, mantenendo lo snapshot in tutti i thread.
  • Posizioni accurate dei log primari e di replica.
  • Facilità di gestione, poiché supportano espressioni regolari compatibili con Perl (PCRE) per specificare inclusioni ed esclusioni di database e tabelle.
  • Lo schema e i dati vanno insieme. Non è necessario gestirlo separatamente come altri strumenti di migrazione logica.

Questa guida introduttiva illustra come installare, eseguire il backup e ripristinare un database MySQL usando mydumper/myloader.

Prerequisiti

Prima di iniziare la migrazione del database MySQL, è necessario:

  1. Creare un database di Azure per il server MySQL con il portale di Azure.

  2. Creare una macchina virtuale di Azure che esegue Linux usando il portale di Azure (preferibilmente Ubuntu).

    Nota

    Prima di installare gli strumenti, considerare i punti seguenti:

    • Se l'origine è locale e ha una connessione a larghezza di banda elevata ad Azure (usando ExpressRoute), prendere in considerazione l'installazione dello strumento in una macchina virtuale di Azure.
    • Se si verifica un problema nella larghezza di banda tra l'origine e la destinazione, prendere in considerazione l'installazione di mydumper vicino all'origine e al myloader vicino al server di destinazione. È possibile usare gli strumenti di Azcopy per spostare i dati da soluzioni locali o cloud ad Azure.
  3. Installare il client mysql, seguire questa procedura:

  • Aggiornare l'indice del pacchetto nella macchina virtuale di Azure che esegue Linux eseguendo il comando seguente:
sudo apt update
  • Installare il pacchetto client mysql eseguendo il comando seguente:
sudo apt install mysql-client

Installare mydumper/myloader

Per installare mydumper/myloader, seguire questa procedura.

  1. A seconda della distribuzione del sistema operativo, scaricare il pacchetto appropriato per mydumper/myloader, eseguendo il comando seguente:

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

    Nota

    $(lsb_release -cs) consente di identificare la distribuzione.

  2. Per installare il pacchetto .deb per mydumper, eseguire il comando seguente:

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

    Suggerimento

    Il comando usato per installare il pacchetto sarà diverso in base alla distribuzione di Linux disponibile perché i programmi di installazione sono diversi. Mydumper/myloader è disponibile per le distribuzioni seguenti Fedora, RedHat, Ubuntu, Debian, openSUSE e MacOSX. Per altre informazioni, vedere Come installare mydumper

Creare un backup con mydumper

  • Per creare un backup con mydumper, eseguire il comando seguente:

    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
    

Questo comando usa le variabili seguenti:

  • -host: host a cui connettersi

  • -user: nome utente con i privilegi necessari

  • -password: password utente

  • -rows: provare a suddividere le tabelle in blocchi di queste molte righe

  • -outputdir: directory in cui eseguire il dump dei file di output

  • -regex: espressione regolare per corrispondenza database.

  • -trx-consistency-only: solo coerenza transazionale

  • -threads: numero di thread da usare, valore predefinito 4. È consigliabile usare un valore uguale a 2x del vCore del computer.

    Nota

    Per altre informazioni su altre opzioni, è possibile usare con mydumper, eseguire il comando seguente: mydumper --help. Per altri dettagli, vedere la documentazione di mydumper\myloader
    Per eseguire il dump di più database in parallelo, è possibile modificare la variabile regex come illustrato nell'esempio: regex '^(DbName1.|DbName2.)

Ripristinare il database con myloader

  • Per ripristinare il database di cui è stato eseguito il backup con mydumper, eseguire il comando seguente:

    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
    

Questo comando usa le variabili seguenti:

  • -host: host a cui connettersi
  • -user: nome utente con i privilegi necessari
  • -password: password utente
  • -directory: percorso in cui è archiviato il backup.
  • -queries-per-transaction: consigliare l'impostazione su valore non superiore a 500
  • -threads: numero di thread da usare, valore predefinito 4. Consigliato usare un valore uguale a 2x del vCore del computer

Suggerimento

Per altre informazioni su altre opzioni che è possibile usare con myloader, eseguire il comando seguente: myloader --help

Dopo il ripristino del database, è sempre consigliabile convalidare la coerenza dei dati tra l'origine e i database di destinazione.

Nota

Inviare eventuali problemi o commenti relativi agli strumenti mydumper/myloader qui.