Migrar bases de dados grandes para a Base de Dados do Azure para MySQL com o mydumper/myloader
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:
Crie um Banco de Dados do Azure para o servidor MySQL usando o portal do Azure.
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.
- 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.
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.
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.
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, 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.
Conteúdos relacionados
- Projeto mydumper/myloader no GitHub
- como migrar grandes bancos de dados MySQL
- Migração mínima de tempo de inatividade do Banco de Dados do Azure para MySQL – Servidor único para o Banco de Dados do Azure para MySQL – Servidor flexível
- Replicar dados no Banco de Dados do Azure para o Servidor Flexível MySQL
- Configurar o Banco de Dados do Azure para replicação de dados do Servidor Flexível MySQL
- Erros de migração