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

Atenção

Este artigo faz referência ao CentOS, uma distribuição Linux que está se aproximando do status de Fim da Vida Útil (EOL). Por favor, considere o seu uso e planejamento de acordo. Para obter mais informações, consulte as diretrizes de Fim da Vida Útil do CentOS.

APLICA-SE A: Banco de Dados do Azure para MySQL - Servidor Único Banco de Dados do Azure para MySQL - Servidor Flexível

A Base de Dados do Azure para MySQL é um serviço gerido que utiliza para executar, gerir e dimensionar bases de dados MySQL de elevada disponibilidade na cloud. Para migrar bancos de dados MySQL maiores que 1 TB para o Banco de Dados do Azure para MySQL, considere o uso de ferramentas da comunidade, como mydumper/myloader, que oferecem os seguintes benefícios:

  • Paralelismo, para ajudar a reduzir o tempo de migração.
  • Melhor desempenho, evitando rotinas dispendiosas de conversão de conjuntos de caracteres.
  • Um formato de saída, com arquivos separados para tabelas, metadados, etc., que facilita a visualização/análise de dados. Consistência, mantendo o snapshot em todos os threads.
  • Posições precisas do log primário e de réplica.
  • Fácil gerenciamento, pois suportam PCRE (Perl Compatible Regular Expressions) para especificar inclusões e exclusões de banco de dados e tabelas.
  • Esquema e dados andam juntos. Não precisa lidar com isso separadamente como outras ferramentas de migração lógica.

Este guia de início rápido mostra como instalar, fazer backup e restaurar um banco de dados MySQL usando mydumper/myloader.

Pré-requisitos

Antes de começar a migrar seu banco de dados MySQL, você precisa:

  1. Crie um Banco de Dados do Azure para o servidor MySQL usando o portal do Azure.

  2. Crie uma VM do Azure executando Linux usando o portal do Azure (de preferência o Ubuntu).

    Nota

    Antes de instalar as ferramentas, considere os seguintes pontos:

    • Se sua origem for local e tiver uma conexão de alta largura de banda com o Azure (usando a Rota Expressa), considere instalar a ferramenta em uma VM do Azure.
    • Se você tiver um desafio na largura de banda entre a origem e o destino, considere instalar mydumper perto da origem e myloader perto do servidor de destino. Você pode usar as ferramentas Azcopy para mover os dados do local ou de outras soluções de nuvem para o Azure.
  3. Instale o cliente mysql, execute as seguintes etapas:

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

Instalar mydumper/myloader

Para instalar mydumper/myloader, execute as etapas a seguir.

  1. Dependendo da distribuição do seu sistema operacional, baixe o pacote apropriado para mydumper/myloader, executando o seguinte comando:

    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.

  2. Para instalar o pacote .deb para mydumper, execute o seguinte comando:

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

    Gorjeta

    O comando que você usa para instalar o pacote será diferente com base na distribuição Linux que você tem, pois 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 obter mais informações, consulte Como instalar o mydumper

Criar um backup usando mydumper

  • Para criar um backup usando mydumper, execute 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 usa as seguintes variáveis:

  • --host: O host ao qual se conectar

  • --user: Nome de usuário com os privilégios necessários

  • --password: Palavra-passe de utilizador

  • --rows: Tente dividir as tabelas em partes deste número de linhas

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

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

  • --trx-consistency-only: Apenas consistência transacional

  • --threads: Número de threads a serem usados, padrão 4. Recomendado um uso de um valor igual a 2x do vCore do computador.

    Nota

    Para obter mais informações sobre outras opções, você pode usar com mydumper, execute o seguinte comando: mydumper --help . Para obter mais detalhes, consulte a documentação mydumper\myloader
    Para despejar vários bancos de dados em paralelo, você pode modificar a variável regex como mostrado no exemplo: regex '^(DbName1.|DbName2.)

Restaure seu banco de dados usando myloader

  • Para restaurar o banco de dados do qual você fez backup usando mydumper, execute 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 usa as seguintes variáveis:

  • --host: O host ao qual se conectar
  • --user: Nome de usuário com os privilégios necessários
  • --password: Palavra-passe de utilizador
  • --directory: Local onde o backup está armazenado.
  • --queries-per-transaction: Recomende a configuração para um valor não superior a 500
  • --threads: Número de threads a serem usados, padrão 4. Recomendado um uso de um valor igual a 2x do vCore do computador

Gorjeta

Para obter mais informações sobre outras opções que você pode usar com myloader, execute o seguinte comando: myloader --help

Depois que o banco de dados é restaurado, é sempre recomendável validar a consistência de dados entre os bancos de dados de origem e de destino.

Nota

Envie quaisquer problemas ou comentários sobre as ferramentas mydumper/myloader aqui.

Próximos passos