Tutorial: Migrar o MySQL para o Banco de Dados do Azure para MySQL offline usando DMS
Você pode usar o Serviço de Migração de Banco de Dados do Azure para executar uma migração perfeita de sua instância externa do MySQL para o Banco de Dados do Azure para MySQL com capacidade de migração de dados de alta velocidade. Neste tutorial, migraremos um banco de dados de exemplo de uma instância local do MySQL 5.7 para o Banco de Dados do Azure para MySQL (v5.7) usando uma atividade de migração offline no Serviço de Migração de Banco de Dados do Azure. Embora os artigos assumam que a origem seja uma instância de banco de dados MySQL e o destino seja o Banco de Dados do Azure para MySQL, ele pode ser usado para migrar de um Banco de Dados do Azure para outro para outro apenas alterando o nome e as credenciais do servidor de origem. Além disso, a migração de servidores MySQL de versão inferior (v5.6 e superior) para versões superiores também é suportada.
Nota
Para obter uma versão programável baseada em PowerShell dessa experiência de migração, consulte Migração offline programável para o Banco de Dados do Azure para MySQL.
O Amazon Relational Database Service (RDS) para MySQL e o Amazon Aurora (baseado em MySQL) também são suportados como fontes de migração.
Neste tutorial, irá aprender a:
- Crie uma instância DMS.
- Crie um projeto de migração MySQL no DMS.
- Migre um esquema MySQL usando DMS.
- Executar a migração.
- Monitorizar a migração.
Pré-requisitos
Para concluir este tutorial, precisa de:
Ter uma conta do Azure com uma assinatura ativa. Crie uma conta gratuitamente.
Tenha um banco de dados MySQL local com a versão 5.7. Se não, então baixe e instale o MySQL community edition 5.7.
Crie uma Rede Virtual do Microsoft Azure para o Serviço de Migração de Banco de Dados do Azure usando o modelo de implantação do Azure Resource Manager, que fornece conectividade site a site para seus servidores de origem locais usando ExpressRoute ou VPN. Para obter mais informações sobre como criar uma rede virtual, consulte a Documentação da Rede Virtual e, especialmente, os artigos de início rápido com detalhes passo a passo.
Durante a configuração da rede virtual, se você usar a Rota Expressa com emparelhamento de rede para a Microsoft, adicione os seguintes pontos de extremidade de serviço à sub-rede na qual o serviço será provisionado:
- Ponto final da base de dados de destino (por exemplo, ponto final do SQL, ponto final do Azure Cosmos DB, etc.)
- Ponto final de armazenamento
- Ponto final do Service Bus
Esta configuração é necessária porque o Azure Database Migration Service não tem conectividade à Internet.
Certifique-se de que as regras do Grupo de Segurança de Rede da rede virtual não bloqueiem a porta de saída 443 do ServiceTag para ServiceBus, Storage e AzureMonitor. Para obter mais detalhes sobre a filtragem de tráfego do NSG da rede virtual, veja o artigo Filtrar o tráfego de rede com grupos de segurança de rede.
Abra o firewall do Windows para permitir conexões da Rede Virtual para o Serviço de Migração de Banco de Dados do Azure para acessar o MySQL Server de origem, que por padrão é a porta TCP 3306.
Ao usar um dispositivo de firewall na frente do(s) seu(s) banco(s) de dados de origem, talvez seja necessário adicionar regras de firewall para permitir que conexões da Rede Virtual para o Serviço de Migração de Banco de Dados do Azure acessem o(s) banco(s) de dados de origem para migração.
Crie uma regra de firewall no nível de servidor ou configure pontos de extremidade de serviço VNET para o Banco de Dados do Azure de destino para MySQL para permitir que a Rede Virtual para o Serviço de Migração de Banco de Dados do Azure acesse os bancos de dados de destino.
O MySQL de origem tem de estar na edição de comunidade do MySQL suportada. Para determinar a versão da instância do MySQL, no utilitário MySQL ou no MySQL Workbench, execute o seguinte comando:
SELECT @@VERSION;
A Base de Dados do Azure para MySQL suporta apenas tabelas InnoDB. Para converter tabelas MyISAM para InnoDB, veja o artigo Converting Tables from MyISAM to InnoDB (Converter Tabelas de MyISAM para InnoDB)
O usuário deve ter os privilégios para ler dados no banco de dados de origem.
Para concluir a migração de um esquema com êxito, no servidor de origem, o utilizador que executa a migração tem que ter os seguintes privilégios:
- Privilégio "SELECT" no nível do servidor na origem.
- Ao migrar modos de exibição, o usuário deve ter o privilégio "SHOW VIEW" no servidor de origem e o privilégio "CREATE VIEW" no servidor de destino.
- Se migrar gatilhos, o usuário deve ter o privilégio "TRIGGER" no servidor de origem e de destino.
- Ao migrar rotinas (procedimentos e/ou funções), o usuário deve ter os privilégios "CREATE ROUTINE" e "ALTER ROUTINE" concedidos no nível do servidor no destino.
- Se migrar eventos, o usuário deve ter o privilégio "EVENT" no servidor de origem e de destino.
- Se migrar usuários/logins, o usuário deve ter o privilégio "CREATE USER" no servidor de destino.
- Privilégio "DROP" no nível do servidor no destino, para descartar tabelas que já possam existir. Por exemplo, ao tentar novamente uma migração.
- Privilégio "REFERÊNCIAS" no nível do servidor no destino, a fim de criar tabelas com chaves estrangeiras.
- Se migrar para o MySQL 8.0, o usuário deve ter o privilégio "SESSION_VARIABLES_ADMIN" no servidor de destino.
- Privilégio "CRIAR" no nível do servidor no destino.
- Privilégio "INSERT" no nível do servidor no destino.
- Privilégio "UPDATE" no nível do servidor no destino.
- Privilégio "DELETE" no nível do servidor no destino.
Dimensionar o Banco de Dados do Azure de destino para a instância do MySQL
Para preparar o Banco de Dados do Azure de destino para o servidor MySQL para carregamentos de dados mais rápidos usando o Serviço de Migração de Banco de Dados do Azure, os seguintes parâmetros de servidor e alterações de configuração são recomendados.
max_allowed_packet – definido como 1073741824 (ou seja, 1GB) para evitar quaisquer problemas de conexão devido a linhas grandes.
slow_query_log – defina como OFF para desativar o log de consulta lenta. Isto eliminará a sobrecarga causada pelo registo de consultas lentas durante o carregamento de dados.
query_store_capture_mode – defina como NONE para desativar o Repositório de Consultas. Isto eliminará a sobrecarga causada pela amostragem de atividades pelo Query Store.
innodb_buffer_pool_size – Innodb_buffer_pool_size só pode ser aumentada dimensionando a computação para o Banco de Dados do Azure para o servidor MySQL. Aumente a escala do servidor para 64 vCore General Purpose SKU a partir da camada de preços do portal durante a migração para aumentar o innodb_buffer_pool_size.
innodb_io_capacity & innodb_io_capacity_max - Altere para 9000 a partir dos parâmetros do Servidor no portal do Azure para melhorar a utilização de E/S para otimizar a velocidade de migração.
innodb_write_io_threads & innodb_write_io_threads - Altere para 4 a partir dos parâmetros do Servidor no portal do Azure para melhorar a velocidade da migração.
Aumentar verticalmente o escalão de armazenamento – as IOPs da Base de Dados do Azure para o servidor MySQL aumentam progressivamente com o aumento do escalão de armazenamento.
- Na opção de implementação de Servidor Único, para cargas mais rápidas, recomendamos aumentar o escalão de armazenamento para aumentar as IOPs aprovisionadas.
- Na opção de implantação Servidor flexível, recomendamos que você possa dimensionar (aumentar ou diminuir) IOPS independentemente do tamanho do armazenamento.
- O tamanho do armazenamento só pode ser ampliado e não reduzido.
Selecione o tamanho da computação e a camada de computação para o servidor flexível de destino com base na camada de preços do servidor único de origem e VCores com base nos detalhes da tabela a seguir.
Escalão de Preço do Servidor Único VCores de Servidor Único Tamanho da Computação do Servidor Flexível Escalão de Computação do Servidor Flexível Básico 1 1 Fins Gerais Standard_D16ds_v4 Básico 1 2 Fins Gerais Standard_D16ds_v4 Finalidade geral 1 4 Fins Gerais Standard_D16ds_v4 Finalidade geral 1 8 Fins Gerais Standard_D16ds_v4 Fins Gerais 16 Fins Gerais Standard_D16ds_v4 Fins Gerais 32 Fins Gerais Standard_D32ds_v4 Fins Gerais 64 Fins Gerais Standard_D64ds_v4 Otimizada para Memória 4 Crítico para a Empresa Standard_E4ds_v4 Otimizada para Memória 8 Crítico para a Empresa Standard_E8ds_v4 Otimizada para Memória 16 Crítico para a Empresa Standard_E16ds_v4 Otimizada para Memória 32 Crítico para a Empresa Standard_E32ds_v4 1 Para a migração, selecione Computação vCores de uso geral 16 para o servidor flexível de destino para migrações mais rápidas. Dimensione novamente para o tamanho de computação pretendido para o servidor de destino após a conclusão da migração ao seguir a recomendação de tamanho de computação na secção Executar atividades pós-migração mais à frente neste artigo.
Quando a migração estiver concluída, você poderá reverter os parâmetros e a configuração do servidor para os valores exigidos pela sua carga de trabalho.
Configurar o DMS
Com seu servidor flexível de destino implantado e configurado, você precisará configurar o DMS para migrar seu único servidor para um servidor flexível.
Registar o fornecedor de recursos
Para registrar o provedor de recursos Microsoft.DataMigration, execute as etapas a seguir.
Antes de criar sua primeira instância do DMS, entre no portal do Azure e pesquise e selecione Assinaturas.
Selecione a subscrição que pretende utilizar para criar a instância DMS e, em seguida, selecione Fornecedores de recursos.
Procure o termo "Migração" e, em seguida, para Microsoft.DataMigration, selecione Registrar.
Criar uma instância do Serviço de Migração de Banco de Dados
No portal do Azure, selecione + Criar um recurso, procure Serviço de Migração de Banco de Dados do Azure e selecione Serviço de Migração de Banco de Dados do Azure na lista suspensa.
No ecrã Azure Database Migration Service, selecione Criar.
No ecrã Criar Serviço de Migração, especifique um nome para o serviço, a subscrição e um grupo de recursos novo ou já existente.
Selecione um nível de preço e vá para a tela de rede. O recurso de migração offline está disponível apenas no nível de preço Premium.
Para obter mais informações sobre os custos e os escalões de preços, veja a página de preços.
Selecione uma rede virtual existente na lista ou forneça o nome da nova rede virtual a ser criada. Vá para a tela de revisão + criação. Opcionalmente, você pode adicionar tags ao serviço usando a tela de tags.
A rede virtual fornece ao Serviço de Migração de Banco de Dados do Azure acesso ao SQL Server de origem e à instância de destino do Banco de Dados SQL do Azure.
Para obter mais informações sobre como criar uma rede virtual no portal do Azure, consulte o artigo Criar uma rede virtual usando o portal do Azure.
Revise as configurações e selecione Criar para criar o serviço.
Criar um projeto de migração
Após a criação do serviço, localize-o no portal do Azure, abra-o e crie um projeto de migração novo.
No portal do Azure, selecione Todos os serviços, procure Azure Database Migration Service e selecione Azure Database Migration Services.
Selecione sua instância de serviço de migração nos resultados da pesquisa e selecione + Novo projeto de migração.
Na tela Novo projeto de migração, especifique um nome para o projeto, na caixa de seleção Tipo de servidor de origem, selecione MySQL, na caixa Seleção de tipo de servidor de destino, selecione Banco de Dados do Azure para MySQL e, na caixa de seleção Tipo de atividade de migração, selecione Migração de dados. Selecione Criar e executar atividade.
Como alternativa, você pode escolher Criar projeto apenas para criar o projeto de migração agora e executar a migração mais tarde.
Configurar projeto de migração
Na tela Select source (Selecionar código-fonte), especifique os detalhes da conexão para a instância MySQL de origem e selecione Next : Select target>>
Na tela Selecionar destino, especifique os detalhes de conexão para o Banco de Dados do Azure de destino para a instância MySQL e selecione Avançar: Selecionar bancos de dados>>
Na tela Selecionar bancos de dados, mapeie o banco de dados de origem e de destino para migração e selecione Avançar: Configurar configurações de>> migração. Você pode selecionar a opção Tornar o servidor de origem somente leitura para tornar a fonte como somente leitura, mas tenha cuidado se essa for uma configuração no nível do servidor. Se selecionado, ele define todo o servidor como somente leitura, não apenas os bancos de dados selecionados.
Se o banco de dados de destino contiver o mesmo nome de banco de dados que o banco de dados de origem, o Serviço de Migração de Banco de Dados do Azure selecionará o banco de dados de destino por padrão.
Na tela Configurar configurações de migração, selecione as tabelas que farão parte da migração e selecione Avançar: Resumo>>. Se as tabelas de destino tiverem dados, elas não serão selecionadas por padrão, mas você poderá selecioná-las explicitamente e elas serão truncadas antes de iniciar a migração.
Na tela Resumo, na caixa de texto Nome da atividade, especifique um nome para a atividade de migração e revise o resumo para garantir que os detalhes de origem e destino correspondam ao que você especificou anteriormente.
Selecione Iniciar migração. É apresentada a janela de atividade da migração e o Estado da atividade é A inicializar. O Status muda para Em execução quando as migrações de tabela são iniciadas.
Monitorize a migração
Na tela de atividade de migração, selecione Atualizar para atualizar a exibição e ver o progresso sobre o número de tabelas concluídas.
Você pode selecionar o nome do banco de dados na tela de atividade para ver o status de cada tabela à medida que elas são migradas. Selecione Atualizar para atualizar a exibição.
Concluir a migração
No ecrã de atividade de migração, selecione Atualizar para atualizar a vista até que o Estado da migração apareça como Concluída.
Atividades pós-migração
A substituição de migração em uma migração offline é um processo dependente do aplicativo que está fora do escopo deste documento, mas as seguintes atividades pós-migração são prescritas:
- Crie logins, funções e permissões de acordo com os requisitos do aplicativo.
- Recrie todos os gatilhos no banco de dados de destino conforme extraídos durante a etapa de pré-migração.
- Realize testes de sanidade da aplicação relativamente à base de dados de destino para certificar a migração.
Clean up resources (Limpar recursos)
Se você não vai continuar a usar o Serviço de Migração de Banco de Dados, poderá excluir o serviço com as seguintes etapas:
No portal do Azure, selecione Todos os serviços, procure Azure Database Migration Service e selecione Azure Database Migration Services.
Selecione sua instância de serviço de migração nos resultados da pesquisa e selecione Excluir serviço.
Na caixa de diálogo de confirmação, digite o nome do serviço na caixa de texto DIGITE O NOME DO SERVIÇO DE MIGRAÇÃO DE BANCO DE DADOS e selecione Excluir.
Conteúdos relacionados
- Solucionar problemas e erros comuns do Serviço de Migração de Banco de Dados do Azure (clássico)
- Resolver problemas de erros do DMS ao ligar às bases de dados de origem
- O que é o Azure Database Migration Service?
- O que é o Banco de Dados do Azure para MySQL?
- Migrar o MySQL para o Banco de Dados do Azure para MySQL offline com o PowerShell & Serviço de Migração de Banco de Dados do Azure