Migrar o Amazon RDS for MySQL para o Banco de Dados do Azure para MySQL usando o MySQL Workbench

APLICA-SE A: Banco de Dados do Azure para MySQL - Servidor Único

Importante

O servidor único do Banco de Dados do Azure para MySQL está no caminho de desativação. É altamente recomendável que você atualize para o Banco de Dados do Azure para o servidor flexível MySQL. Para obter mais informações sobre como migrar para o Banco de Dados do Azure para servidor flexível MySQL, consulte O que está acontecendo com o Banco de Dados do Azure para Servidor Único MySQL?

Você pode usar vários utilitários, como o MySQL Workbench Export/Import, o Azure Database Migration Service (DMS) e o despejo e restauração do MySQL, para migrar o Amazon RDS for MySQL para o Banco de Dados do Azure para MySQL. No entanto, usar o Assistente de migração do MySQL Workbench fornece uma maneira fácil e conveniente de mover seus bancos de dados do Amazon RDS for MySQL para o Banco de Dados do Azure para MySQL.

Com o Assistente de Migração, você pode selecionar convenientemente quais esquemas e objetos migrar. Ele também permite que você visualize os logs do servidor para identificar erros e gargalos em tempo real. Como resultado, você pode editar e modificar tabelas ou estruturas de banco de dados e objetos durante o processo de migração quando um erro é detetado e, em seguida, retomar a migração sem ter que reiniciar do zero.

Nota

Você também pode usar o Assistente de Migração para migrar outras fontes, como Microsoft SQL Server, Oracle, PostgreSQL, MariaDB, etc., que estão fora do escopo deste artigo.

Pré-requisitos

Antes de iniciar o processo de migração, é recomendável garantir que vários parâmetros e recursos estejam configurados e configurados corretamente, conforme descrito abaixo.

  • Verifique se o conjunto de caracteres dos bancos de dados de origem e de destino são os mesmos.

  • Defina o tempo limite de espera para um tempo razoável, dependendo da quantidade de dados ou da carga de trabalho que você deseja importar ou migrar.

  • Defina o max_allowed_packet parameter para uma quantidade razoável, dependendo do tamanho do banco de dados que você deseja importar ou migrar.

  • Verifique se todas as suas tabelas usam InnoDB, pois o Banco de Dados do Azure para MySQL Server dá suporte apenas ao mecanismo de armazenamento InnoDB.

  • Remover, substituir ou modificar todos os gatilhos, procedimentos armazenados e outras funções que contenham definidores de usuário raiz ou superusuário (o Banco de Dados do Azure para MySQL não oferece suporte ao privilégio de Superusuário). Para substituir os definers pelo nome do usuário administrador que está executando o processo de importação, execute o seguinte comando:

    DELIMITER; ;/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`127.0.0.1`*/ /*!50003
    DELIMITER;
    /* Modified to */
    DELIMITER;
    /*!50003 CREATE*//*!50017 DEFINER=`AdminUserName`@`ServerName`*/ /*!50003
    DELIMITER;
    
    
  • Se UDFs (User Defined Functions) estiverem em execução no seu servidor de banco de dados, você precisará excluir o privilégio para o banco de dados mysql. Para determinar se alguma UDFs está em execução no servidor, use a seguinte consulta:

    SELECT * FROM mysql.func;
    

    Se você descobrir que UDFs estão em execução, você pode descartar os UDFs usando a seguinte consulta:

    DROP FUNCTION your_UDFunction;
    
  • Certifique-se de que o servidor no qual a ferramenta está sendo executada e, finalmente, o local de exportação, tenha amplo espaço em disco e poder de computação (vCores, CPU e memória) para executar a operação de exportação, especialmente ao exportar um banco de dados muito grande.

  • Crie um caminho entre a instância local ou da AWS e o Banco de Dados do Azure para MySQL se a carga de trabalho estiver atrás de firewalls ou outras camadas de segurança de rede.

Iniciar o processo de migração

  1. Para iniciar o processo de migração, entre no MySQL Workbench e selecione o ícone inicial.

  2. Na barra de navegação à esquerda, selecione o ícone do Assistente de Migração, conforme mostrado na captura de tela abaixo.

    Tela inicial do MySQL Workbench

    A página Visão geral do Assistente de Migração é exibida, conforme mostrado abaixo.

    Página de boas-vindas do MySQL Workbench Migration Wizard

  3. Determine se você tem um driver ODBC para o MySQL Server instalado selecionando Abrir administrador ODBC.

    No nosso caso, na guia Drivers , você notará que já existem dois drivers ODBC do MySQL Server instalados.

    Página Administrador de Fonte de Dados ODBC

    Se um driver ODBC do MySQL não estiver instalado, use o MySQL Installer que você usou para instalar o MySQL Workbench para instalar o driver. Para obter mais informações sobre a instalação do driver ODBC do MySQL, consulte os seguintes recursos:

  4. Feche a caixa de diálogo Administrador da Fonte de Dados ODBC e continue com o processo de migração.

Configurar parâmetros de conexão do servidor de banco de dados de origem

  1. Na página Visão geral, selecione Iniciar migração.

    A página Seleção de origem é exibida. Use esta página para fornecer informações sobre o RDBMS do qual você está migrando e os parâmetros para a conexão.

  2. No campo Sistema de banco de dados, selecione MySQL.

  3. No campo Conexão Armazenada, selecione uma das configurações de conexão salvas para esse RDBMS.

    Você pode salvar conexões marcando a caixa de seleção na parte inferior da página e fornecendo um nome de sua preferência.

  4. No campo Método de Conexão, selecione TCP/IP Padrão.

  5. No campo Nome do host, especifique o nome do servidor de banco de dados de origem.

  6. No campo Porta, especifique 3306 e digite o nome de usuário e a senha para se conectar ao servidor.

  7. No campo Banco de dados, digite o nome do banco de dados que você deseja migrar se souber, caso contrário, deixe esse campo em branco.

  8. Selecione Testar conexão para verificar a conexão com sua instância do MySQL Server.

    Se você tiver inserido os parâmetros corretos, será exibida uma mensagem indicando uma tentativa de conexão bem-sucedida.

    Página de parâmetros de conexão do banco de dados de origem

  9. Selecione Seguinte.

Configurar parâmetros de conexão do servidor de banco de dados de destino

  1. Na página Seleção de Destino , defina os parâmetros para se conectar à instância do MySQL Server de destino usando um processo semelhante ao da configuração da conexão com o servidor de origem.

  2. Para verificar uma conexão bem-sucedida, selecione Testar conexão.

    Página de parâmetros de conexão do banco de dados de destino

  3. Selecione Seguinte.

Selecione os esquemas a serem migrados

O Assistente de Migração se comunicará com sua instância do MySQL Server e buscará uma lista de esquemas do servidor de origem.

  1. Selecione Mostrar logs para exibir esta operação.

    A captura de tela abaixo mostra como os esquemas estão sendo recuperados do servidor de banco de dados de origem.

    Página de listagem de esquemas de busca

  2. Selecione Avançar para verificar se todos os esquemas foram obtidos com êxito.

    A captura de tela abaixo mostra a lista de esquemas buscados.

    Página de seleção de esquemas

    Você só pode migrar esquemas que aparecem nesta lista.

  3. Selecione os esquemas que pretende migrar e, em seguida, selecione Seguinte.

Migração de objetos

Em seguida, especifique o(s) objeto(s) que deseja migrar.

  1. Selecione Mostrar Seleção e, em Objetos Disponíveis, selecione e adicione os objetos que deseja migrar.

    Quando você adicionar os objetos, eles aparecerão em Objetos a serem migrados, conforme mostrado na captura de tela abaixo.

    Página de seleção de objetos de origem

    Nesse cenário, selecionamos todos os objetos de tabela.

  2. Selecione Seguinte.

Editar dados

Nesta seção, você tem a opção de editar os objetos que deseja migrar.

  1. Na página Edição manual, observe o menu suspenso Exibir no canto superior direito.

    Página de seleção de edição manual

    A caixa suspensa Exibir inclui três itens:

    • Todos os objetos – Exibe todos os objetos. Com essa opção, você pode editar manualmente o SQL gerado antes de aplicá-lo ao servidor de banco de dados de destino. Para fazer isso, selecione o objeto e selecione Mostrar código e mensagens. Você pode ver (e editar!) o código MySQL gerado que corresponde ao objeto selecionado.
    • Problemas de migração – Exibe quaisquer problemas que ocorreram durante a migração, que você pode revisar e verificar.
    • Mapeamento de coluna – Exibe informações de mapeamento de coluna. Você pode usar essa exibição para editar o nome e alterar a coluna do objeto de destino.
  2. Selecione Seguinte.

Criar o banco de dados de destino

  1. Marque a caixa de seleção Criar esquema no RDBMS de destino.

    Você também pode optar por manter esquemas já existentes, para que eles não sejam modificados ou atualizados.

    Página Opções de Criação de Destino

    Neste artigo, optamos por criar o esquema no RDBMS de destino, mas você também pode marcar a caixa de seleção Criar um arquivo de script SQL para salvar o arquivo em seu computador local ou para outros fins.

  2. Selecione Seguinte.

Execute o script MySQL para criar os objetos de banco de dados

Como optamos por criar o esquema no RDBMS de destino, o script SQL migrado será executado no servidor MySQL de destino. Você pode ver seu progresso como mostrado na captura de tela abaixo:

Página Criar esquemas

  1. Após a conclusão da criação dos esquemas e seus objetos, selecione Avançar.

    Na página Criar Resultados de Destino, é apresentada uma lista dos objetos criados e notificação de quaisquer erros encontrados durante a sua criação, conforme mostrado na captura de tela a seguir.

    Página Criar Resultados de Destino

  2. Reveja os detalhes nesta página para verificar se tudo foi concluído como pretendido.

    Para este artigo, não temos erros. Se não houver necessidade de endereçar mensagens de erro, você poderá editar o script de migração.

  3. Na caixa Objeto, selecione o objeto que deseja editar.

  4. Em Script SQL CREATE para o objeto selecionado, modifique o script SQL e selecione Aplicar para salvar as alterações.

  5. Selecione Recriar objetos para executar o script, incluindo suas alterações.

    Se o script falhar, talvez seja necessário editar o script gerado. Em seguida, você pode corrigir manualmente o script SQL e executar tudo novamente. Neste artigo, não estamos mudando nada, então vamos deixar o script como está.

  6. Selecione Seguinte.

Transferir dados

Esta parte do processo move dados da instância de banco de dados MySQL Server de origem para sua instância de banco de dados MySQL de destino recém-criada. Use a página Configuração de transferência de dados para configurar esse processo.

Página Configuração de transferência de dados

Esta página fornece opções para configurar a transferência de dados. Para os fins deste artigo, aceitaremos os valores padrão.

  1. Para iniciar o processo real de transferência de dados, selecione Avançar.

    O progresso do processo de transferência de dados aparece como mostrado na captura de tela a seguir.

    Página Transferência de Dados em Massa

    Nota

    A duração do processo de transferência de dados está diretamente relacionada ao tamanho do banco de dados que você está migrando. Quanto maior o banco de dados de origem, mais tempo o processo levará, potencialmente até algumas horas para bancos de dados maiores.

  2. Após a conclusão da transferência, selecione Avançar.

    A página Relatório de migração é exibida, fornecendo um relatório resumindo todo o processo, conforme mostrado na captura de tela abaixo:

    Página Relatório de Progresso da Migração

  3. Selecione Concluir para fechar o Assistente de Migração.

    A migração foi concluída com êxito.

Verificar a consistência dos esquemas e tabelas migrados

  1. Em seguida, faça login em sua instância de banco de dados de destino MySQL para verificar se os esquemas e tabelas migrados são consistentes com seu banco de dados de origem MySQL.

    No nosso caso, você pode ver que todos os esquemas (sakila, moda, itens, cliente, roupas, mundo e world_x) do banco de dados do Amazon RDS for MySQL: MyjolieDB foram migrados com êxito para o Banco de Dados do Azure para MySQL: instância azmysql .

  2. Para verificar as contagens de tabelas e linhas, execute a seguinte consulta em ambas as instâncias:

    SELECT COUNT (*) FROM sakila.actor;

    Você pode ver na captura de tela abaixo que a contagem de linhas para o Amazon RDS MySQL é 200, que corresponde à instância do Banco de Dados do Azure para MySQL.

    Banco de dados de origem de tamanho de tabela e linha

    Banco de dados de destino de tamanho de tabela e linha

    Embora você possa executar a consulta acima em cada esquema e tabela, isso será bastante trabalhoso se você estiver lidando com centenas de milhares ou até milhões de tabelas. Você pode usar as consultas abaixo para verificar o esquema (banco de dados) e o tamanho da tabela.

  3. Para verificar o tamanho do banco de dados, execute a seguinte consulta:

    SELECT table_schema AS "Database", 
    ROUND(SUM(data_length + index_length) / 1024 / 1024, 2) AS "Size (MB)" 
    FROM information_schema.TABLES 
    GROUP BY table_schema;
    
  4. Para verificar o tamanho da tabela, execute a seguinte consulta:

    SELECT table_name AS "Table",
    ROUND(((data_length + index_length) / 1024 / 1024), 2) AS "Size (MB)"
    FROM information_schema.TABLES
    WHERE table_schema = "database_name"
    ORDER BY (data_length + index_length) DESC;
    

    Você vê nas capturas de tela abaixo que o tamanho do esquema (banco de dados) da instância MySQL do Amazon RDS de origem é o mesmo da instância de destino do Banco de Dados do Azure para MySQL.

    Banco de dados de origem do tamanho do banco de dados

    Tamanho do banco de dados de destino

    Como os tamanhos do esquema (banco de dados) são os mesmos em ambas as instâncias, não é realmente necessário verificar os tamanhos de tabela individuais. Em qualquer caso, você sempre pode usar a consulta acima para verificar os tamanhos das tabelas, conforme necessário.

    Agora você confirmou que sua migração foi concluída com êxito.

Próximos passos