Migrar a carga de trabalho local ou de máquina virtual (VM) do MySQL para o Banco de Dados do Azure para MySQL - Servidor flexível usando o Banco de Dados do Azure para MySQL Importar CLI

A Importação do Banco de Dados do Azure para MySQL para migrações externas permite migrar sua carga de trabalho local ou de máquina virtual (VM) do MySQL diretamente para o Banco de Dados do Azure para MySQL - Servidor Flexível. Ele usa um arquivo de backup físico fornecido pelo usuário e restaura os arquivos de dados físicos do servidor de origem para o servidor de destino, oferecendo um caminho de migração simples e rápido. Operação pós-importação, você pode aproveitar os benefícios de um servidor flexível, que incluem melhor preço e desempenho, controle granular sobre a configuração do banco de dados e janelas de manutenção personalizadas.

Com base nas entradas do usuário, ele assume a responsabilidade de provisionar o Servidor Flexível de destino e, em seguida, restaurar o backup físico fornecido pelo usuário do servidor de origem armazenado na conta de armazenamento de Blob do Azure para a instância do Servidor Flexível de destino.

Este tutorial mostra como usar o comando Azure Database for MySQL Import CLI para migrar sua carga de trabalho Migrate MySQL on-premises ou Virtual Machine (VM) para o Banco de Dados do Azure para MySQL - Servidor Flexível.

Iniciar o Azure Cloud Shell

O Azure Cloud Shell é um shell interativo gratuito que você pode usar para executar as etapas neste artigo. Tem as ferramentas comuns do Azure pré-instaladas e configuradas para utilização com a sua conta.

Para abrir o Cloud Shell, selecione Experimente no canto superior direito de um bloco de código. Você também pode abrir o Cloud Shell em uma guia separada do navegador acessando .https://shell.azure.com/bash Selecione Copiar para copiar os blocos de código, cole-o no Cloud Shell e selecione Enter para executá-lo.

Se você preferir instalar e usar a CLI localmente, este tutorial requer a CLI do Azure versão 2.54.0 ou posterior. Executar az --version para localizar a versão. Se precisar de instalar ou atualizar, veja Install Azure CLI (Instalar o Azure CLI).

Configurar

Tem de iniciar sessão na sua conta utilizando o comando az sign-in . Observe a propriedade id, que se refere à ID de Assinatura da sua conta do Azure.

az login

Selecione a assinatura específica em sua conta onde você deseja implantar o Servidor Flexível de destino usando o comando az account set . Observe o valor id da saída az login a ser usado como o valor para o argumento de assinatura no comando. Para obter todas as suas assinaturas, use a lista de contas az.

az account set --subscription <subscription id>

Pré-requisitos

  • O servidor de origem deve ter os seguintes parâmetros:
    • Lower_case_table_names = 1
    • Innodb_file_per_table = ATIVADO
    • 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)
    • Innodb_page_size = 16348 (padrão do MySQL)
    • Somente o mecanismo INNODB é suportado.
  • Faça um backup físico de sua carga de trabalho do MySQL usando o Percona XtraBackup. A seguir estão as etapas para usar o Percona XtraBackup para fazer um backup completo:
    • Instale o Percona XtraBackup na carga de trabalho local ou de VM. Para a versão v5.7 do mecanismo MySQL, instale o Percona XtraBackup versão 2.4, consulte Instalando o Percona XtraBackup 2.4. Para a versão v8.0 do mecanismo MySQL, instale o Percona XtraBackup versão 8.0, consulte Instalando o Percona XtraBackup 8.0.
    • Para obter instruções sobre como fazer um backup completo com o Percona XtraBackup 2.4, consulte Backup completo. Para obter instruções sobre como fazer um backup completo com o Percona XtraBackup 8.0, consulte [Backup completo] (https://docs.percona.com/percona-xtrabackup/8.0/create-full-backup.html). Ao fazer o backup completo, execute os comandos abaixo na ordem:
      • - xtrabackup --backup --host={host} --user={user} --password={password} --target-dir={backup__dir_path}
      • - xtrabackup --prepare --{backup_dir_path} (Forneça o mesmo caminho de backup aqui como no comando acima)
    • Considerações ao tomar o Percona XtraBackup:
      • Certifique-se de executar a etapa de backup e preparação.
      • Certifique-se de que não há erros na etapa de backup e preparação.
      • Mantenha o backup e prepare logs de etapas para o Suporte do Azure, que é necessário em caso de falhas.
  • Crie um contêiner de Blob do Azure e obtenha o Token de Assinatura de Acesso Compartilhado (SAS) (portal do Azure ou CLI do Azure) para o contêiner. Certifique-se de conceder Adicionar, Criar e Gravar na lista suspensa Permissões . Copie e cole o token SAS de Blob e os valores de URL em um local seguro. Eles são exibidos apenas uma vez e não podem ser recuperados quando a janela é fechada.
  • Carregue o arquivo de backup completo em {backup_dir_path} para seu armazenamento de Blob do Azure. Siga estes passos para carregar um ficheiro.
  • Para executar uma migração on-line, capture e armazene a posição bin-log do arquivo de backup feito usando o Percona XtraBackup executando o comando cat xtrabackup_info e copiando a saída bin_log pos.
  • A conta de armazenamento do Azure deve ser acessível publicamente usando o token SAS. Não há suporte para a conta de armazenamento do Azure com configuração de rede virtual.

Limitações

  • A configuração do servidor de origem não é migrada. Você deve configurar o servidor flexível de destino adequadamente.
  • Não há suporte para migração para backups criptografados.
  • Os usuários e privilégios não são migrados como parte do Banco de Dados do Azure para Importação do MySQL. Você deve fazer um despejo manual de usuários e privilégios antes de iniciar o Banco de Dados do Azure para Importação MySQL para migrar logons após a operação de importação, restaurando-os no Servidor Flexível de destino.
    • user1@localhost não podem ser migrados, pois não suportamos a criação de usuários localhost no Servidor Flexível.
  • Os Servidores Flexíveis habilitados para Alta Disponibilidade (HA) são retornados como servidores desabilitados para HA para aumentar a velocidade da operação de migração após a migração de importação. Habilite a HA para o servidor flexível de destino após a migração.

Recomendações para uma experiência de migração ideal

  • Considere manter a conta de armazenamento de Blob do Azure e o Servidor Flexível de destino a serem implantados na mesma região para um melhor desempenho de importação.
  • Configuração de SKU recomendada para o Banco de Dados do Azure de destino para o Servidor Flexível MySQL –
    • Não é recomendável definir uma SKU Burstable para o destino para otimizar o tempo de migração ao executar a operação de Importação do Banco de Dados do Azure para MySQL. Recomendamos o dimensionamento para Propósito Geral/Crítico de Negócios para o curso da operação de importação, post, que você pode reduzir para Burstable SKU.

Acionar uma operação de Importação do Banco de Dados do Azure para MySQL para migrar do Banco de Dados do Azure para MySQL -Flexible Server

Acione uma operação de Importação do Banco de Dados do Azure para MySQL com o az mysql flexible-server import create comando. O comando a seguir cria um Servidor Flexível de destino e executa a importação no nível da instância do arquivo de backup para o destino de destino usando o contexto local da CLI do Azure:

az mysql flexible-server import create --data-source-type
                                --data-source
                                --data-source-sas-token
                                --resource-group
                                --name
                                --sku-name
                                --tier
                                --version
                                --location
                                [--data-source-backup-dir]
                                [--storage-size]
                                [--mode]
                                [--admin-password]
                                [--admin-user]
                                [--auto-scale-iops {Disabled, Enabled}]
                                [--backup-identity]
                                [--backup-key]
                                [--backup-retention]
                                [--database-name]
                                [--geo-redundant-backup {Disabled, Enabled}]
                                [--high-availability {Disabled, SameZone, ZoneRedundant}]
                                [--identity]
                                [--iops]
                                [--key]
                                [--private-dns-zone]
                                [--public-access]
                                [--resource-group]
                                [--standby-zone]
                                [--storage-auto-grow {Disabled, Enabled}]
                                [--subnet]
                                [--subnet-prefixes]
                                [--tags]
                                [--vnet]
                                [--zone]

The following example takes in the data source information for your source MySQL server's backup file and target Flexible Server information, creates a target Flexible Server named `test-flexible-server` in the `westus` location and performs an import from backup file to target.

azurecli-interactive
az mysql flexible-server import create --data-source-type "azure_blob" --data-source "https://onprembackup.blob.core.windows.net/onprembackup" --data-source-backup-dir "mysql_backup_percona" –-data-source-token "{sas-token}" --resource-group "test-rg"  --name "test-flexible-server" –-sku-name Standard_D2ds_v4  --tier GeneralPurpose –-version 5.7 -–location "westus"

Aqui estão os detalhes para os argumentos acima:

Definição Valor de exemplo Descrição
tipo de fonte de dados azure_blob O tipo de fonte de dados que serve como destino de origem para acionar o Banco de Dados do Azure para Importação MySQL. Valores aceites: [azure_blob]. Descrição dos valores aceitos - azure_blob: armazenamento de Blob do Azure.
fonte de dados {resourceID} A ID do recurso do contêiner de Blob do Azure.
data-source-backup-dir mysql_percona_backup O diretório do contêiner de armazenamento de Blob do Azure no qual o arquivo de backup foi carregado. Esse valor é necessário somente quando o arquivo de backup não está armazenado na pasta raiz do contêiner de Blob do Azure.
data-source-sas-token {sas-token} O token SAS (Assinatura de Acesso Compartilhado) gerado para conceder acesso à importação do contêiner de armazenamento de Blob do Azure.
resource-group teste-rg O nome do grupo de recursos do Azure do Banco de Dados do Azure de destino para o Servidor Flexível MySQL.
modo Offline O modo de importação do Banco de Dados do Azure para MySQL. Valores aceites: [Offline]; Valor padrão: Offline.
localização westus O local do Azure para o Banco de Dados do Azure de origem para o Servidor Flexível MySQL.
nome test-flexible-server Insira um nome exclusivo para seu Banco de Dados do Azure de destino para o Servidor Flexível MySQL. O nome do servidor pode conter apenas letras minúsculas, números e o caráter de hífen (-). Tem de conter entre 3 e 63 carateres. Nota: Este servidor é implantado na mesma assinatura, grupo de recursos e região que a origem.
admin-user adminuser O nome de usuário para a entrada do administrador para seu Banco de Dados do Azure de destino para o Servidor Flexível MySQL. Não pode ser azure_superuser, administrador, administrador, root, convidado ou público.
admin-password palavra-passe A senha do usuário administrador para seu Banco de Dados do Azure de destino para o Servidor Flexível MySQL. Tem de conter entre 8 e 128 carateres. Sua senha deve conter caracteres de três categorias: letras maiúsculas em inglês, letras minúsculas em inglês, números e caracteres não alfanuméricos.
sku-name GP_Gen5_2 Insira o nome da camada de preços e a configuração de computação para seu Banco de Dados do Azure de destino para o Servidor Flexível MySQL. Segue a convenção {escalão de preço}{geração de computação}{vCores} em estenografia. Consulte os níveis de preços para obter mais informações.
escalão Expansível Camada de computação do Banco de Dados do Azure de destino para o Servidor Flexível MySQL. Valores aceites: Burstable, GeneralPurpose, MemoryOptimized; Valor padrão: Burstable.
Acesso do público 0.0.0.0 Determina o acesso público para o Banco de Dados do Azure de destino para o Servidor Flexível MySQL. Insira um ou um intervalo de endereços IP a serem incluídos na lista de IPs permitidos. Os intervalos de endereços IP devem ser separados por traços e não conter espaços. Especificar 0.0.0.0 permite o acesso público de quaisquer recursos implantados no Azure para acessar seu servidor. Defini-lo como "Nenhum" define o servidor no modo de acesso público, mas não cria uma regra de firewall.
Rede virtual myVnet Nome ou ID de uma rede virtual nova ou existente. Se você quiser usar uma rede virtual de outro grupo de recursos ou assinatura, forneça uma ID de recurso. O nome deve ter entre 2 e 64 caracteres. O nome deve começar com uma letra ou número, terminar com uma letra, número ou sublinhado e pode conter apenas letras, números, sublinhados, pontos ou hífenes.
sub-rede mySubnet Nome ou ID de recurso de uma sub-rede nova ou existente. Se você quiser usar uma sub-rede de outro grupo de recursos ou assinatura, forneça ID de recurso em vez de nome. A sub-rede é delegada a flexibleServers. Após a delegação, essa sub-rede não pode ser usada para nenhum outro tipo de recursos do Azure.
Private-DNS-Zona myserver.private.contoso.com O nome ou ID da zona dns privada nova ou existente. Você pode usar a zona dns privada do mesmo grupo de recursos, grupo de recursos diferente ou assinatura diferente. Se você quiser usar uma zona de outro grupo de recursos ou assinatura, forneça a ID do recurso. A CLI cria uma nova zona dns privada dentro do mesmo grupo de recursos da rede virtual, se não for fornecida pelos usuários.
key identificador de chave de testKey O ID de recurso da chave keyvault primária para criptografia de dados.
de identidade testIdentity O nome ou ID de recurso da identidade atribuída ao usuário para criptografia de dados.
storage-size 32 A capacidade de armazenamento do Banco de Dados do Azure de destino para o Servidor Flexível MySQL. O mínimo é de 20 GiB, e o máximo é de 16 TiB.
etiquetas chave=valor Indique o nome do grupo de recursos do Azure.
versão 5.7 Versão principal do servidor do Banco de Dados do Azure de destino para o Servidor Flexível MySQL.
alta disponibilidade ZoneRedundante Habilite (ZoneRedundant ou SameZone) ou desabilite o recurso de alta disponibilidade para o Banco de Dados do Azure de destino para o Servidor Flexível MySQL. Valores aceitos: Disabled, SameZone, ZoneRedundant; Valor padrão: Desativado.
zona 1 Zona de disponibilidade na qual provisionar o recurso.
zona de espera 3 As informações da zona de disponibilidade do servidor em espera quando a Alta Disponibilidade está ativada.
crescimento automático do armazenamento Ativado(a) Habilite ou desabilite o crescimento automático do armazenamento para o Banco de Dados do Azure de destino para o Servidor Flexível MySQL. O valor padrão é Enabled. Valores aceitos: Desativado, Habilitado; Valor padrão: Habilitado.
IOPS 500 Número de IOPS a serem alocados para o Banco de Dados do Azure de destino para o Servidor Flexível MySQL. Você obtém uma certa quantidade de IOPS gratuitas com base na computação e no armazenamento provisionados. O valor padrão para IOPS é IOPS livre. Para saber mais sobre IOPS baseadas em computação e armazenamento, consulte IOPS no Banco de Dados do Azure para Servidor Flexível MySQL.

Migre para um servidor flexível com o mínimo de tempo de inatividade

Para executar uma migração online depois de concluir a propagação inicial do arquivo de backup usando o Banco de Dados do Azure para importação do MySQL, você pode configurar a replicação de dados entre a origem e o destino seguindo as etapas aqui. Você pode usar a posição bin-log capturada ao fazer o arquivo de backup usando o Percona XtraBackup para configurar a replicação baseada na posição Bin-log.

Quanto tempo o Banco de Dados do Azure para Importação MySQL leva para migrar minha instância do MySQL?

Desempenho aferido com base no tamanho do armazenamento.

Tamanho de armazenamento do arquivo de backup Tempo de importação
1 GiB 0 min 23 seg
10 GiB 4 min 24 seg
100 GiB 10 min 29 seg
500 GiB 13 min 15 seg
1 TB 22 min 56 seg
10 TB 2 horas 5 min 30 seg

À medida que o tamanho do armazenamento aumenta, o tempo necessário para a cópia de dados também aumenta, quase em uma relação linear. No entanto, é importante notar que a velocidade de cópia pode ser significativamente afetada pelas flutuações da rede. Por conseguinte, os dados aqui fornecidos devem ser tomados apenas como referência.

Próximo passo