Abordagens de migração

Concluído

Você pode usar muitas abordagens diferentes na migração de banco de dados, como migração online ou offline, migração de backup e restauração ou migração com código SQL ou scripts personalizados. Cada abordagem é mais apropriada para determinados cenários comerciais.

Em sua empresa start-up, por exemplo, o banco de dados de comunicação com o fornecedor é essencial e você quer tentar migrar sem interromper o serviço para os usuários. Esse departamento da empresa opera 24 horas por dia, 7 dias por semana, e há alguns momentos de calma previsíveis que são ideais para colocar o banco de dados offline. O sistema de CAD (design auxiliado por computador), por outro lado, é usado apenas durante a semana, ou seja, você pode colocá-lo offline durante um fim de semana e migrá-lo para o Azure.

Aqui, você aprenderá abordagens, técnicas e ferramentas que podem ser escolhidas para executar a migração.

Quando usar as opções de exportar e importar

As técnicas de exportação e importação oferecem controle sobre os dados e o esquema que são movidos na migração. Use as ferramentas de exportação e importação se desejar selecionar quais dados serão migrados para o novo banco e, talvez, limpar ou modificar os dados durante a migração.

Considere usar técnicas de exportação e importação:

  • Quando você quiser escolher um subconjunto das tabelas no banco de dados local para migrar para o banco de dados de nuvem.

  • Quando você desejar migrar objetos de banco de dados, como restrições, exibições, funções, procedimentos e gatilhos, e controlar como esses objetos são configurados no banco de dados de nuvem.

  • Quando desejar importar dados de fontes externas diferentes de MySQL, MariaDB ou PostgreSQL.

Por exemplo, você pode considerar exportar e importar nestes cenários:

  • Você deseja executar uma migração por etapas em que a carga de trabalho de marketing é migrada para a nuvem e testada antes da carga de trabalho de suporte a vendas. Ambas as cargas de trabalho usam tabelas do banco de dados SalesDB no seu sistema local. Você deseja migrar as tabelas de marketing somente na primeira fase do projeto e as tabelas de vendas somente na segunda fase.

  • Seus dados locais são antigos e contêm uma mistura de dados que são relevantes e irrelevantes para os negócios atuais. Você deseja aproveitar a oportunidade de remover dados antigos e considerar um esquema de banco de dado mais simplificado.

  • Você tem uma planilha grande que contém dados sobre produtos. Você deseja migrar esses dados para o banco de dados na nuvem.

Planejar uma migração de exportação e importação

A vantagem de usar exportação e importação é o nível extra de controle que você tem sobre os dados que estão sendo migrados. No entanto, uma desvantagem é que você deve planejar com mais cuidado para ter certeza de que todos os objetos necessários foram incluídos.

Tenha certeza de que sabe como os seguintes objetos serão migrados:

  • O esquema de banco de dados.
  • Restrições, incluindo chaves primárias, chaves estrangeiras e índices.
  • Exibições, funções, procedimentos e gatilhos.
  • Contas de usuário e permissões.

Exportar e importar para MySQL e MariaDB

Você pode usar scripts SQL para executar a exportação e a importação seletivas de um banco de dados para outro. No entanto, se o banco de dados local estiver no MySQL ou no MariaDB, há várias ferramentas disponíveis para ajudar, incluindo:

  • Workbench do MySQL. É uma ferramenta de design de banco de dados popular com uma GUI (interface gráfica do usuário) desenvolvida pela Oracle Corporation. Ela inclui uma ferramenta de Exportação de Dados com opções de seleção de dados flexíveis.

  • Toad Edge. É um conjunto de ferramentas concorrente desenvolvido pela Quest. Você deve usá-lo para exportar e importar dados de bancos de dados MySQL e PostgreSQL.

  • Navicat. Uma ferramenta de GUI de administração de banco de dados que também é compatível com os bancos de dados MariaDB.

  • mysqlimport. Uma ferramenta de linha de comando que pode importar dados de arquivos de texto.

Importante

O Banco de Dados do Azure para MySQL e o Banco de Dados do Azure para MariaDB dão suporte apenas ao mecanismo de armazenamento InnoDB. Se você tiver tabelas que usam outros mecanismos, como o mecanismo MyISAM, deverá convertê-las em InnoDB antes de migrar para o Azure.

Exportar e importar em PostgreSQL

O PostgreSQL fornece as seguintes ferramentas para exportar e importar dados:

  • pgAdmin. É um utilitário de GUI para administradores do PostgreSQL. Ele fornece uma interface para exportar e importar dados.

  • pg_dump. É uma ferramenta de linha de comando usada para exportar um banco de dados em vários formatos, incluindo teste. Você pode editar os arquivos .sql resultantes antes de importá-los usando o utilitário psql.

  • Toad Edge. É o mesmo utilitário que você usa com o MySQL.

Backup e restauração

As operações de backup e restauração geralmente são feitas para proteger um banco de dados contra desastres. Uma cópia exata do banco de dados é feita e salva. Se um desastre destruir a cópia funcional, a cópia de backup será restaurada e os negócios poderão ser retomados normalmente.

Com a restauração em um local diferente, você usa um backup para migrar o banco de dados completo para outro local, como um banco de dados na nuvem.

Quando usar backup e restauração

As ferramentas de backup fazem uma cópia simples e precisa do banco de dados. Quando você restaura no banco de dados de nuvem, obtém exatamente os mesmos esquemas e dados que tinha no sistema local. Use backup e restauração para migrar um banco de dados:

  • Quando você desejar migrar um banco de dados inteiro ou um conjunto de bancos de dados em uma única operação.

  • Quando você não precisar fazer modificações nos dados, no esquema ou em outros objetos de banco de dados durante a migração.

Você pode considerar o uso de backup e restauração para executar uma migração em casos como estes:

  • Você tem um único sistema de banco de dados que deve passar por lift-and-shift para a nuvem com o mínimo de modificações possível.

  • Você deseja executar uma migração por etapas em um sistema que tem vários bancos de dados. Cada carga de trabalho tem suporte por um banco de dados completo.

Quando você restaura um banco de dados de um arquivo de backup em um local de nuvem, considere a quantidade de arquivos que devem ser enviados pela rede para o banco de dado na nuvem. Para otimizar essa transferência de dados, copie o banco de dados de backup para uma máquina virtual na mesma região do banco de dados de destino e restaure daí. Essa restauração é mais rápida do que com o uso de um arquivo de backup local e é menos provável que cause contenção de largura de banda de rede.

Planejar um backup e uma restauração no MySQL e no MariaDB

Para fazer backup de um banco de dados em um servidor local, use a ferramenta mysqldump na linha de comando. Ela cria um arquivo .sql que você restaura no banco de dados de nuvem com a transmissão para o comando mysql como um script. Se você preferir uma ferramenta de GUI, escolha o aplicativo PHPMyAdmin ou o MySQL Workbench. Essas ferramentas de GUI podem fazer backup e restaurar os dados.

Lembre-se de que o Banco de Dados do Azure para MySQL e o Banco de Dados do Azure para MariaDB dão suporte apenas ao mecanismo InnoDB. Converta todas as tabelas em InnoDB antes de executar o backup.

Para evitar problemas de compatibilidade, verifique se o número de versão do MySQL ou do MariaDB usado na nuvem corresponde ao número de versão do servidor de banco de dados local. O Banco de Dados do Azure para MySQL dá suporte às versões 5.6, 5.7 e 8.0. O Banco de Dados do Azure para MariaDB dá suporte às versões 10.2 e 10.3. Se seu servidor local usa uma versão anterior, considere atualizar para uma dessas versões primeiro e solucionar problemas locais antes de migrar para a nuvem.

Planejar um backup e uma restauração no PostgreSQL

As ferramentas de backup e restauração de linha de comando equivalentes no PostgreSQL são pg_dump e pg_restore. Para uma ferramenta de backup e restauração de GUI, use o Toad Edge.

Código do aplicativo personalizado

Se você tiver requisitos de transformação de dados extensivos ou desejar executar uma migração incomum, considere criar seu próprio código personalizado para mover dados de um banco de dados MySQL, PostgreSQL ou MariaDB local para a nuvem.

Seu código personalizado pode ter muitas formas. A linguagem e a estrutura que você escolher dependerão principalmente do conhecimento da sua equipe de desenvolvimento:

  • Scripts SQL gerados do banco de dados e modificados ou desenvolvidos do zero.
  • Código compilado de uma estrutura de desenvolvimento, por exemplo, .NET ou Java.
  • Scripts em PHP ou Node.js.
  • Scripts de Shell para Bash ou PowerShell.

A abordagem de código personalizado permite que você tenha bastante flexibilidade. Você personaliza como os dados são filtrados, agregados e transformados e pode migrar para vários destinos ou mesclar dados de várias fontes. Use essa abordagem se você tiver requisitos que não possam ser satisfeitos com uma ferramenta de backup ou exportação pronta para uso.

A desvantagem dessa abordagem é que ela requer mais investimento em tempo de desenvolvimento. Para que o código personalizado migre todos os dados corretamente, ele deve ser amplamente testado antes de ser executado em dados reais. Essa tarefa requer uma equipe de desenvolvedores e testadores capacitados e, muitas vezes, aumenta o orçamento do projeto. Se você estiver considerando criar código de migração personalizado, não subestime o tempo e o esforço necessários para criar um código confiável.

Serviço de Migração de Banco de Dados do Azure

O Azure inclui um serviço flexível chamado DMS (Serviço de Migração de Banco de Dados do Azure), que você pode usar a fim de fazer migrações online diretas de várias fontes de dados para as plataformas de dados do Azure. Essas plataformas incluem o Banco de Dados do Azure para MySQL, o Banco de Dados do Azure para MariaDB e o Banco de Dados do Azure para PostgreSQL.

Considere usar o Azure DMS sempre que desejar executar uma migração de banco de dados online para o Azure.

Migração inicial

Para executar uma migração com o DMS, conclua estas tarefas:

  1. Crie um novo banco de dados de destino no Azure na plataforma desejada.
  2. Crie um novo projeto de migração de dados do DMS (Serviço de Migração de Banco de Dados do Azure).
  3. Gere o esquema nos bancos de dados de origem locais. Se você estiver usando o MySQL, poderá gerar um esquema com sqldump. Se o banco de dados de origem for PostgreSQL, use pg_dump.
  4. Crie um banco de dados vazio para atuar como o destino de migração.
  5. Aplique o esquema ao banco de dados de destino.
  6. Configure os detalhes de conexão para os bancos de dados de origem e de destino em um projeto de migração do DMS.
  7. Execute o projeto de migração do DMS. O projeto transfere os dados e gera um relatório.
  8. Examine o relatório e corrija os problemas identificados.

Migrações online

O Azure DMS é uma boa ferramenta a ser usada em migrações online, nas quais o banco de dados original permanece disponível enquanto a migração é executada. Os usuários continuam a fazer alterações nos dados no banco de dados de origem. O Azure DMS usa a replicação para sincronizar essas alterações com o banco de dados migrado. Após a conclusão da migração, você reconfigura os aplicativos do usuário para se conectarem ao banco de dados migrado.

Migrar MySQL ou MariaDB para o Banco de Dados SQL do Azure

Se quiser mover um banco de dados hospedado localmente em um servidor de banco de dados MySQL para a nuvem do Azure (mas o banco de dados de nuvem não é necessário para a execução do MySQL), considere migrar para o Banco de Dados SQL do Azure. O banco de dados SQL do Azure é uma implementação de PaaS do mecanismo de banco de dados SQL Server líder do setor da Microsoft. Ele inclui disponibilidade, escalabilidade e segurança de nível empresarial, além de ser fácil de monitorar e gerenciar.

Da mesma forma, se o servidor de banco de dados local executar o MariaDB, você poderá considerar a migração para o Banco de Dados SQL do Azure. O processo é muito semelhante porque o MariaDB é uma bifurcação do MySQL.

O Banco de Dados SQL do Azure é mais completo do que o Banco de Dados do Azure para MySQL e o Banco de Dados do Azure para MariaDB.

Observação

Talvez seja necessário modificar os aplicativos que se conectam ao seu banco de dados migrado, já que o Banco de Dados SQL do Azure usa tipos de dados, objetos de banco de dados e API diferentes dos do MySQL e do MariaDB. Confira seus desenvolvedores para determinar a quantidade de trabalho necessária para migrar um aplicativo cliente de um banco de dados MySQL ou MariaDB local para um banco de dados SQL do Azure na nuvem.

SQL Server Migration Assistant for MySQL

Se você decidir migrar do MySQL para o Banco de Dados SQL do Azure, poderá usar uma ferramenta especializada: Assistente de Migração do SQL Server para MySQL. Essa ferramenta de GUI se conecta a um banco de dados MySQL de origem e a um banco de dados SQL Server, que pode ser um banco de dados no serviço Banco de Dados SQL do Azure.

Quando está conectado, o assistente copia o esquema completo para o Banco de Dados SQL do Azure e converte todos os tipos de dados em seus equivalentes do SQL Server. Ele também migra exibições, procedimentos, gatilhos e outros objetos. Em seguida, você pode começar a migrar os dados do MySQL para o Banco de Dados SQL do Azure.

Observação

O Assistente de Migração do SQL Server para MySQL não foi testado para migrar bancos de dados do MariaDB para o Banco de Dados SQL do Azure.