Tutorial: Migrar o MySQL para Base de Dados do Azure para MySQL offline usando DMS

Pode utilizar Azure Database Migration Service para realizar uma migração de base de dados completa no local do mySQL para Base de Dados do Azure para MySQL com capacidade de migração de dados de alta velocidade. Neste tutorial, migraremos uma base de dados de amostras de um caso no local do MySQL 5.7 para Base de Dados do Azure para MySQL (v5.7) utilizando uma atividade de migração offline em Azure Database Migration Service. Embora os artigos assumam que a fonte é uma instância de base de dados MySQL e alvo para ser Base de Dados do Azure para MySQL, pode ser usado para migrar de um Base de Dados do Azure para MySQL para outro apenas alterando o nome e credenciais do servidor de origem. Além disso, a migração de servidores MySQL de versão inferior (v5.6 e acima) para versões mais altas também é suportada.

Importante

Para migrações on-line, pode utilizar ferramentas de código aberto como MyDumper/MyLoader com replicação de dados.

Nota

Para uma versão scriptable baseada em PowerShell desta experiência de migração, consulte a migração offline scriptable para Base de Dados do Azure para MySQL.

Nota

O Serviço de Bases de Dados Relacionais (RDS) da Amazon para o MySQL e a Amazon Aurora (baseado no MySQL) também são apoiados como fontes de migração.

Neste tutorial, ficará a saber como:

  • Migrar o esquema da base de dados usando o utilitário mysqldump.
  • Crie uma instância do Azure Database Migration Service.
  • Crie um projeto de migração utilizando Azure Database Migration Service.
  • Executar a migração.
  • Monitorizar a migração.

Pré-requisitos

Para concluir este tutorial, precisa de:

  • Tenha uma conta Azure com uma subscrição ativa. Crie uma conta gratuita.

  • Tenha uma base de dados MySQL no local com a versão 5.7. Caso contrário, faça o download e instale a edição comunitária 5.7 do MySQL .

  • A migração offline MySQL é suportada apenas no DMS SKU Premium.

  • Criar uma instância na Base de Dados do Azure para MySQL. Consulte o artigo Use a bancada mySQL workbench para ligar e consultar dados para obter detalhes sobre como conectar e criar uma base de dados utilizando a aplicação Workbench. A versão Base de Dados do Azure para MySQL deve ser igual ou superior à versão MySQL no local. Por exemplo, o MySQL 5.7 pode migrar para Base de Dados do Azure para MySQL 5.7 ou atualizado para 8.

  • Crie um Microsoft Rede Virtual Azure para Azure Database Migration Service utilizando o modelo de implementação Resource Manager Azure, que fornece conectividade site-to-site aos servidores de origem no local, utilizando o ExpressRoute ou o VPN. Para obter mais informações sobre a criação de uma rede virtual, consulte a documentação Rede Virtual e, especialmente, os artigos de arranque rápido com detalhes passo a passo.

    Nota

    Durante a configuração virtual da redeNet, se utilizar o ExpressRoute com o estoiramento da rede para Microsoft, adicione os seguintes pontos finais de serviço à sub-rede em que o serviço será prestado:

    • Ponto final da base de dados-alvo (por exemplo, ponto final SQL, ponto final Azure Cosmos DB, e assim por diante)
    • Ponto final de armazenamento
    • Ponto final do ônibus de serviço

    Esta configuração é necessária porque Azure Database Migration Service carece de conectividade com a Internet.

  • Certifique-se de que as regras do Grupo de Segurança da Rede virtual não bloqueiam a porta de saída 443 do ServiceTag para ServiceBus, Storage e AzureMonitor. Para obter mais detalhes sobre a filtragem de tráfego NSG da rede virtual, consulte o artigo Filtrar o tráfego da rede com grupos de segurança de rede.

  • Abra a firewall do Windows para permitir que as ligações a partir de Rede Virtual para Azure Database Migration Service aceder à fonte MySQL Server, que por padrão é a porta TCP 3306.

  • Quando utilizar um aparelho de firewall em frente à sua base de dados de origem, poderá ser necessário adicionar regras de firewall para permitir que as ligações a partir de Rede Virtual para Azure Database Migration Service acederem à base de dados de origem para migração.

  • Crie uma regra de firewall ao nível do servidor ou configuure os pontos finais do serviço VNET para Base de Dados do Azure para MySQL-alvo para permitir Rede Virtual para Azure Database Migration Service acesso às bases de dados-alvo.

  • 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 utilizador deve ter o privilégio de ler dados na base de dados de origem.

Dimensionamento do Base de Dados do Azure para MySQL exemplo alvo

Para preparar o servidor Base de Dados do Azure para MySQL alvo para cargas de dados mais rápidas utilizando o Azure Database Migration Service, recomenda-se a utilização dos seguintes parâmetros do servidor e alterações de configuração.

  • max_allowed_packet – definido para 1073741824 (ou seja, 1GB) para evitar quaisquer problemas de ligação devido a grandes filas.
  • slow_query_log – definir para OFF para desligar o registo de consulta lenta. Isto eliminará a sobrecarga causada por uma consulta lenta durante as cargas de dados.
  • query_store_capture_mode – definido para NENHUM para desligar a Loja de Consultas. Isto eliminará as despesas gerais causadas pelas atividades de amostragem pela Query Store.
  • innodb_buffer_pool_size – Innodb_buffer_pool_size só podem ser aumentadas aumentando o cálculo para Base de Dados do Azure para MySQL servidor. Aumente o servidor para 64 vCore Fins Gerais SKU do nível 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 em portal do Azure para melhorar a utilização do IO para otimizar a velocidade de migração.
  • & innodb_write_io_threads innodb_write_io_threads - Altere para 4 dos parâmetros do Servidor em portal do Azure para melhorar a velocidade de migração.
  • Escalar o nível de armazenamento – Os IOPs para Base de Dados do Azure para MySQL servidor aumentam progressivamente com o aumento do nível de armazenamento.
    • Na opção de implementação do Servidor Único, para cargas mais rápidas, recomendamos aumentar o nível de armazenamento para aumentar os IOPs a provisionados.
    • Na opção de implementação do Servidor Flexível, recomendamos que possa escalar (aumentar ou diminuir) IOPS independentemente do tamanho do armazenamento.
    • Note que o tamanho do armazenamento só pode ser aumentado, não para baixo.

Uma vez concluída a migração, pode reverter os parâmetros e configuração do servidor para valores exigidos pela sua carga de trabalho.

Migrar esquema de base de dados

Para transferir todos os objetos da base de dados, como esquemas de mesa, índices e procedimentos armazenados, precisamos extrair o esquema da base de dados de origem e aplicar-nos à base de dados-alvo. Para extrair o esquema, pode utilizar mysqldump com o parâmetro --no-data. Para isso, precisa de uma máquina que possa ligar-se tanto à base de dados MySQL de origem como ao Base de Dados do Azure para MySQL alvo.

Para exportar o esquema utilizando o mysqldump, executar o seguinte comando:

mysqldump -h [servername] -u [username] -p[password] --databases [db name] --no-data > [schema file path]

Por exemplo:

mysqldump -h 10.10.123.123 -u root -p --databases migtestdb --no-data > d:\migtestdb.sql

Para importar esquemas para Base de Dados do Azure para MySQL alvo, executar o seguinte comando:

mysql.exe -h [servername] -u [username] -p[password] [database]< [schema file path]

Por exemplo:

mysql.exe -h mysqlsstrgt.mysql.database.azure.com -u docadmin@mysqlsstrgt -p migtestdb < d:\migtestdb.sql

Se tiver chaves ou gatilhos estranhos no seu esquema, a carga de dados paralela durante a migração será tratada pela tarefa de migração. Não há necessidade de deixar cair chaves ou gatilhos estrangeiros durante a migração do esquema.

Registar o fornecedor de recursos

Registe o fornecedor de recursos Microsoft.DataMigration antes de criar a primeira instância do Database Migration Service.

  1. Inicie sessão no portal do Azure. Procure e selecione Subscrições.

    Mostrar subscrições no portal

  2. Selecione a subscrição na qual pretende criar a instância de Azure Database Migration Service e, em seguida, selecione fornecedores de Recursos.

    Mostrar fornecedores de recursos

  3. Procure por migração e, em seguida, selecione Registar-se para Microsoft. DataMigration.

    Fornecedor de recursos de registo

Criar um Database Migration Service instância

  1. No portal do Azure, selecione + Criar um recurso, procure o Azure Database Migration Service e selecione Azure Database Migration Service na lista pendente.

    Azure Marketplace

  2. No ecrã Azure Database Migration Service, selecione Criar.

    Criar instância do Azure Database Migration Service

  3. 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.

  4. Selecione um nível de preços e mude para o ecrã de rede. A capacidade de migração offline está disponível apenas no nível de preços Premium.

    Para obter mais informações sobre os custos e os escalões de preços, veja a página de preços.

    Configurar Azure Database Migration Service configurações básicas

  5. Selecione uma rede virtual existente da lista ou forneça o nome da nova rede virtual a ser criada. Mover-se para a revisão + criar ecrã. Opcionalmente, pode adicionar tags ao serviço utilizando o ecrã das etiquetas.

    A rede virtual fornece Azure Database Migration Service acesso à SQL Server de origem e ao caso SQL do Azure Base de Dados alvo.

    Configurar Azure Database Migration Service definições de rede

    Para obter mais informações sobre como criar uma rede virtual no portal do Azure, consulte o artigo Criar uma rede virtual utilizando o portal do Azure.

  6. Reveja as configurações e selecione Criar para criar o serviço.

    Azure Database Migration Service criar

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.

  1. No portal do Azure, selecione Todos os serviços, procure Azure Database Migration Service e selecione Azure Database Migration Services.

    Localize todas as instâncias de Azure Database Migration Service

  2. Selecione a sua instância de serviço de migração a partir dos resultados da pesquisa e selecione + Novo Projeto de Migração.

    Criar um novo projeto de migração

  3. No novo ecrã do projeto de migração , especifique um nome para o projeto, na caixa de seleção do tipo de servidor Fonte , selecione MySQL, na caixa de seleção do tipo de servidor Target , selecione Azure Database For MySQL e na caixa de seleção do tipo de atividade de migração , selecione migração de dados. Selecione Criar e executar atividade.

    Criar Projeto do Azure Database Migration Service

    Nota

    Em alternativa, pode escolher o projeto Criar apenas para criar o projeto de migração agora e executar a migração mais tarde.

Projeto de migração de configuração

  1. No ecrã de origem Select , especifique os detalhes da ligação para a origem da instância MySQL e selecione Seguinte : Selecione o alvo>>

    Adicionar ecrã de detalhes de origem

  2. No ecrã alvo Select, especifique os detalhes da ligação para a Base de Dados do Azure para MySQL exemplo do alvo e selecione Seguinte : Selecione bases de dados>>

    Adicionar ecrã de detalhes do alvo

  3. No ecrã de bases de dados Select, mapear a origem e a base de dados-alvo para migração e selecionar As definições de migração de Configuração seguinte : Configurar as definições>> de migração. Pode selecionar a opção Make Source Server Read Only para tornar a fonte apenas para leitura, mas tenha cuidado com a definição do nível do servidor. Se selecionado, define todo o servidor apenas para ler, e não apenas para as bases de dados selecionadas.

    Se a base de dados-alvo contiver o mesmo nome de base de dados que a base de dados de origem, Azure Database Migration Service seleciona a base de dados-alvo por padrão. Selecione o ecrã de detalhes da base de dados

    Nota

    Embora possa selecionar várias bases de dados neste passo, mas existem limites para quantos e quão rápido os DBs podem ser migrados desta forma, uma vez que cada base de dados partilhará o cálculo. Com a configuração padrão do SKU Premium, cada tarefa de migração tentará migrar duas tabelas em paralelo. Estas tabelas podem ser de qualquer uma das bases de dados selecionadas. Se isto não for rápido o suficiente, você pode dividir as atividades de migração de bases de dados em diferentes tarefas de migração e escala em vários serviços. Além disso, existe um limite de 10 casos de Azure Database Migration Service por subscrição por região. Para obter um maior controlo granular sobre a produção e paralelização da migração, consulte o artigo PowerShell: Executar migração offline da base de dados MySQL para Base de Dados do Azure para MySQL utilizando DMS

  4. No ecrã de definições de migração configurar , selecione as tabelas para fazer parte da migração e selecione Seguinte : Resumo>>. Se as tabelas-alvo tiverem quaisquer dados, não são selecionadas por padrão, mas pode selecioná-los explicitamente e serão truncados antes de iniciar a migração.

    Selecione tela de tabelas

  5. No ecrã Resumo , na caixa de texto ' Nome de Atividade ', especifique um nome para a atividade de migração e reveja o resumo para garantir que os detalhes da origem e do alvo correspondem ao que especificou anteriormente.

    Resumo do projeto de migração

  6. Selecione Iniciar a migração. É apresentada a janela de atividade da migração e o Estado da atividade é A inicializar. O Estado muda para Correr quando as migrações de mesa começam.

    Migração em execução

Monitorizar a migração

  1. No ecrã de atividades de migração, selecione Refresh para atualizar o ecrã e ver o progresso sobre o número de tabelas concluídas.

  2. Pode clicar no nome da base de dados no ecrã de atividade para ver o estado de cada tabela à medida que estão a ser migrados. Selecione Refresh para atualizar o visor.

    Monitorização da migração

Complete a migração

  1. 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.

    Concluir a migração

Atividades pós-migração

O corte migratório numa migração offline é um processo dependente de aplicações que está fora do âmbito de aplicação para este documento, mas são prescritas atividades pós-migração:

  1. Crie logins, funções e permissões de acordo com os requisitos de aplicação.
  2. Recrie todos os gatilhos na base de dados-alvo tal como extraídos durante o passo de pré-migração.
  3. Realize testes de sanidade da aplicação relativamente à base de dados de destino para certificar a migração.

Limpar os recursos

Se não vai continuar a utilizar o Database Migration Service, então pode apagar o serviço com os seguintes passos:

  1. No portal do Azure, selecione Todos os serviços, procure Azure Database Migration Service e selecione Azure Database Migration Services.

    Localizar todas as instâncias de DMS

  2. Selecione a sua instância de serviço de migração a partir dos resultados da pesquisa e selecione Eliminar o Serviço.

    Apagar o serviço de migração

  3. No diálogo de confirmação, digite o nome do serviço na caixa de texto DO TIPO O NOME DO SERVIÇO DE MIGRAÇÃO DE BASE DE DADOS e selecione Eliminar

    Confirme a eliminação do serviço de migração

Passos seguintes