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

Concluído

É hora de migrar o servidor MySQL local para um banco de dados do Azure para o servidor flexível 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 de 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 espaço de tabela 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 é suportado.

  • Você precisa de um contêiner de armazenamento de Blob 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 de destino flexíveis na mesma região.

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

Procedimento

  1. Faça um backup físico do seu banco de dados MySQL. Usamos a ferramenta XtraBackup de código aberto da Percona.

    1. Instale a ferramenta de acordo com estas 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 Blob do Azure, seguindo estas etapas.

  3. Acione a importação executando este comando depois de preencher as 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. Espere que a importação demore 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.

Tenha em mente as seguintes limitações:

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

Gorjeta

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