Migrar grandes bases de dados para Base de Dados do Azure para MySQL usando o mydumper/myloader

APLICA-SE A: Base de Dados do Azure para MySQL - Base de Dados do Azure para MySQL de servidor único - Servidor Flexível

Base de Dados do Azure para MySQL é um serviço gerido que utiliza para executar, gerir e escalar bases de dados MySQL altamente disponíveis na nuvem. Para migrar bases de dados MySQL maiores do que 1 TB para Base de Dados do Azure para MySQL, considere a utilização de ferramentas comunitárias como o mydumper/myloader, que proporcionam os seguintes benefícios:

  • Paralelismo, para ajudar a reduzir o tempo de migração.
  • Melhor desempenho, evitando rotinas de conversão de caracteres caras.
  • Um formato de saída, com ficheiros separados para tabelas, metadados, etc., que facilita a visualização/análise de dados. Consistência, mantendo o instantâneo em todos os fios.
  • Posições de registo primárias e réplicas precisas.
  • Gestão fácil, uma vez que suportam Expressões Regulares Perl Compatível (PCRE) para especificar a base de dados e inclusão de tabelas e exclusões.
  • Schema e dados combinam. Não preciso de lidar com isto separadamente como outras ferramentas lógicas de migração.

Este quickstart mostra-lhe como instalar, fazer o back up e restaurar uma base de dados MySQL utilizando o mydumper/myloader.

Pré-requisitos

Antes de começar a migrar a sua base de dados MySQL, tem de:

  1. Crie um servidor Base de Dados do Azure para MySQL utilizando o portal do Azure.

  2. Crie um Azure VM a executar o Linux utilizando o portal do Azure (de preferência Ubuntu).

    Nota

    Antes de instalar as ferramentas, considere os seguintes pontos:

    • Se a sua fonte estiver no local e tiver uma ligação de largura de banda elevada ao Azure (utilizando o ExpressRoute), considere instalar a ferramenta num VM Azure.
    • Se tiver um desafio na largura de banda entre a fonte e o alvo, considere instalar o mydumper perto da fonte e o myloader perto do servidor alvo. Pode utilizar ferramentas Azcopy para mover os dados de instalações ou outras soluções de nuvem para Azure.
  3. Instale o cliente mysql, faça os seguintes passos:

    • Atualize o índice de pacote no Azure VM que executa o Linux executando o seguinte comando:
      $ sudo apt update
      
    • Instale o pacote cliente mysql executando o seguinte comando:
      $ sudo apt install mysql-client
      

Instalar mydumper/myloader

Para instalar o mydumper/myloader, faça os seguintes passos.

  1. Dependendo da distribuição do seu SO, faça o download do pacote apropriado para mydumper/myloader, executando o seguinte comando:

  2. $ 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) ajuda a identificar a sua distribuição.

  3. Para instalar o pacote .deb para o mydumper, executar o seguinte comando:

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

    Dica

    O comando que utiliza para instalar a embalagem diferirá com base na distribuição Linux que tem, uma vez que os instaladores são diferentes. O mydumper/myloader está disponível para as seguintes distribuições Fedora, RedHat, Ubuntu, Debian, CentOS, openSUSE e MacOSX. Para mais informações, consulte Como instalar o mydumper

Criar uma cópia de segurança usando o mydumper

  • Para criar uma cópia de segurança utilizando o mydumper, executar o seguinte comando:

    $ 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
    

Este comando utiliza as seguintes variáveis:

  • -hospedeiro: O anfitrião para ligar a

  • -utilizador: Nome de utilizador com os privilégios necessários

  • --senha: Senha de utilizador

  • --filas: Tente dividir mesas em pedaços destas muitas linhas

  • -outputdir: Diretório para despejar ficheiros de saída para

  • --regex: Expressão regular para correspondência de base de dados.

  • --trx-consistência- apenas: Consistência transacional apenas

  • --fios: Número de fios a utilizar, predefinido 4. Recomendou um valor igual a 2x do vCore do computador.

    Nota

    Para obter mais informações sobre outras opções, pode utilizar com o mydumper, executar o seguinte comando: mydumper --help . Para mais detalhes ver, mydumper\myloader documentação
    Para despejar várias bases de dados em paralelo, pode modificar a variável Regex como mostrado no exemplo: regex '^(DbName1.| DbName2.)

Restaurar a sua base de dados usando o myloader

  • Para restaurar a base de dados que ressou usando o mydumper, executar o seguinte comando:

    $ 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
    

Este comando utiliza as seguintes variáveis:

  • -hospedeiro: O anfitrião para ligar a
  • -utilizador: Nome de utilizador com os privilégios necessários
  • --senha: Senha de utilizador
  • --diretório: Local onde a cópia de segurança está armazenada.
  • -consultas por transação: Recomendar a definição de valor não superior a 500
  • --fios: Número de fios a utilizar, predefinido 4. Recomendamos um uso um valor igual a 2x do vCore do computador

Dica

Para obter mais informações sobre outras opções que pode utilizar com o myloader, executar o seguinte comando: myloader --help

Depois de restaurada a base de dados, é sempre recomendado validar a consistência dos dados entre a fonte e as bases de dados-alvo.

Nota

Envie aqui quaisquer problemas ou feedbacks sobre as ferramentas mydumper/myloader.

Passos seguintes