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:
Crie um servidor Base de Dados do Azure para MySQL utilizando o portal do Azure.
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.
- 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.
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
- Atualize o índice de pacote no Azure VM que executa o Linux executando o seguinte comando:
Instalar mydumper/myloader
Para instalar o mydumper/myloader, faça os seguintes passos.
Dependendo da distribuição do seu SO, faça o download do 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 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
- Saiba mais sobre o projeto Mydumper/Myloader em GitHub.
- Saiba como migrar grandes bases de dados mySQL.
- Tutorial: Migração mínima de tempo de Base de Dados do Azure para MySQL – Servidor Único para Base de Dados do Azure para MySQL – Servidor Flexível
- Saiba mais sobre a replicação de dados Replicar dados em Base de Dados do Azure para MySQL Servidor Flexível e Configurar Base de Dados do Azure para MySQL replicação flexível de dados do servidor
- Erros de migração comumente encontrados