Migrar um servidor MySQL local usando a CLI de Importação do Banco de Dados do Azure para MySQL

Concluído

É hora de migrar o servidor MySQL local para um servidor flexível do Banco de Dados do Azure para MySQL. Você decidiu executar uma migração offline porque as configurações de rede impedem uma conexão direta entre os servidores de origem e de destino. O diagrama a seguir resume o procedimento:

Captura de tela do procedimento azure-import-cli-migration-procedure.

Pré-requisitos

  • No servidor de origem, verifique se as seguintes configurações estão configuradas:

    • lower_case_table_names = 1  
      innodb_file_per_table = ON
      innodb_page_size = 16348 (MySQL Default)
      
    • O nome do tablespace do sistema deve ser ibdata1.

    • O tamanho do espaço de tabela do sistema deve ser maior ou igual a 12 MB. (Padrão MySQL)

    • Somente o mecanismo INNODB tem suporte.

  • Um contêiner do Armazenamento de Blobs do Azure. Se você não tiver um contêiner apropriado, crie um com este início rápido. Você precisa do token de assinatura de acesso compartilhado (SAS) do Contêiner de Blob do Azure. Para otimizar o desempenho, mantenha o armazenamento e o servidor flexível de destino na mesma região.

  • Você precisa desligar o aplicativo para evitar alterações no banco de dados.

Procedimento

  1. Faça um backup físico do banco de dados MySQL. Usamos a ferramenta de software livre XtraBackup, da Percona.

    1. Instale a ferramenta de acordo com essas instruções (para MySQL 8.0).

    2. Crie um backup completo; por exemplo:

      xtrabackup --backup --target-dir=/data/backups/
      
  2. Carregue o arquivo de backup no Armazenamento de Blobs do Azure seguindo essas etapas.

  3. Dispare a importação executando esse comando depois de preencher variáveis. Você também pode modificar o tamanho da computação alterando Standard_D2ds_v4.

    1. az mysql flexible-server import create --data-source-type "azure_blob" --data-source $BLOB_DATA_URL --data-source-backup-dir "mysql_backup_percona" –-data-source-token $SAS_TOKEN --resource-group $RESOURCE_GROUP --name $FLEXIBLE_SERVER_NAME –-sku-name Standard_D2ds_v4 --tier GeneralPurpose –-version 8.0 -–location westus --auto-scale-iops Enabled
      
    2. A importação deve levar mais tempo em proporção ao arquivo de backup. Um arquivo de backup de 1 GiB leva cerca de meio minuto para ser importado, enquanto um arquivo de 1 TB leva cerca de 23 minutos.

Lembre-se do seguinte:

  • Usuários e privilégios não são migrados. Você precisa despejar manualmente usuários e privilégios para migrar logons após a conclusão da operação de importação.
  • A alta disponibilidade não está disponível durante a importação, portanto, habilite a alta disponibilidade após a conclusão da migração.

Depois de migrar usuários e privilégios, conecte seus aplicativos ao servidor flexível e a migração será concluída.

Dica

Como alternativa, se você estivesse executando uma migração online, teria realizado a exportação e importação conforme explicado anteriormente, e configurado a replicação da origem para o destino. Quando o destino estiver totalmente preso à origem, você teria cortado o aplicativo antes de desligar o banco de dados de origem.