Abordagens da migração

Concluído

Você pode adotar muitas abordagens diferentes para a 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 personalizado ou scripts. Cada abordagem é mais apropriada para determinados cenários de negócios.

Na sua empresa start-up, por exemplo, a base de dados de comunicação com fornecedores é fundamental e você quer tentar migrar sem qualquer interrupção do serviço aos usuários. Este departamento da empresa opera 24 horas por dia, 7 dias por semana e há poucos momentos de silêncio previsíveis em que você poderia colocar o banco de dados offline. O sistema CAD (Computer Aided Design), por outro lado, só é usado durante a semana para que você possa colocá-lo offline durante um fim de semana e migrá-lo para o Azure.

Aqui, você aprenderá sobre abordagens, técnicas e ferramentas que você pode selecionar para executar a migração.

Quando usar exportação e importação

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

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

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

  • Quando você deseja 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 em nuvem.

  • Quando você deseja importar dados de fontes externas que não sejam MySQL, MariaDB ou PostgreSQL.

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

  • Você deseja executar uma migração fragmentada em que a carga de trabalho de marketing é migrada para a nuvem e testada antes da carga de trabalho de suporte de vendas. Ambas as cargas de trabalho usam tabelas do banco de dados SalesDB em 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 combinação de dados que é relevante e irrelevante para os negócios atuais. Você deseja aproveitar a oportunidade para remover dados antigos e considerar um esquema de banco de dados 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 garantir que todos os objetos que você precisa estão incluídos.

Certifique-se de entender como os seguintes objetos serão migrados:

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

Exportação e importação para MySQL e MariaDB

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

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

  • Borda do sapo. Este é um conjunto de ferramentas concorrentes desenvolvido pela Quest. Você o usa para exportar e importar dados de bancos de dados MySQL e PostgreSQL.

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

  • mysqlimport. Esta ferramenta de linha de comando 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 suportam apenas o 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.

Exportação e importação do PostgreSQL

O PostgreSQL fornece as seguintes ferramentas que você usa para exportar e importar dados:

  • pgAdmin. Este é um utilitário GUI para administradores PostgreSQL. Ele fornece uma interface para exportar e importar dados.

  • pg_dump. Esta é uma ferramenta de linha de comando que você usa 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 .

  • Borda do sapo. Este é o mesmo utilitário que você usa com o MySQL.

Cópia de segurança e restauro

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 é tirada e salva. Se um desastre destruir a cópia de trabalho, a cópia de backup será restaurada e os negócios normais poderão ser retomados.

Ao restaurar para 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. Ao restaurar no banco de dados em nuvem, você obtém exatamente os mesmos dados e esquema que tinha no sistema local. Use backup e restauração para migrar um banco de dados:

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

  • Quando você não precisa fazer nenhuma modificação nos dados, esquema ou 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 deseja elevar e transferir para a nuvem com o mínimo de modificação possível.

  • Você deseja executar uma migração fragmentada em um sistema que tenha vários bancos de dados. Cada carga de trabalho é suportada por um banco de dados completo.

Ao restaurar um banco de dados de um arquivo de backup para um local na nuvem, considere a quantidade de dados que devem ser enviados pela rede para o banco de dados 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 a partir daí. Essa restauração é mais rápida do que usar um arquivo de backup local e é menos provável que cause contenção para a largura de banda da rede.

Planeje um backup e restauração no MySQL e MariaDB

Para fazer backup de um banco de dados em um servidor local, use a mysqldump ferramenta na linha de comando. Isso cria um arquivo de .sql que você restaura para o banco de dados na nuvem passando-o para o mysql comando como um script. Se você preferir uma ferramenta GUI, escolha o aplicativo PHPMyAdmin ou o MySQL Workbench. Essas ferramentas 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 suportam apenas o mecanismo InnoDB. Certifique-se de converter todas as tabelas para InnoDB antes de executar o backup.

Para evitar problemas de compatibilidade, verifique se o número da versão do MySQL ou MariaDB usado na nuvem corresponde ao número da versão do servidor de banco de dados local. A Base de Dados do Azure para MySQL suporta as 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 o seu servidor local usa uma versão anterior, considere atualizar para uma dessas versões primeiro e solucionar quaisquer problemas no local, antes de migrar para a nuvem.

Planejar um backup e restauração no PostgreSQL

As ferramentas equivalentes de backup e restauração de linha de comando 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 de aplicação personalizado

Se você tiver requisitos abrangentes de transformação de dados ou quiser executar uma migração incomum, considere escrever 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 assumir muitas formas. A linguagem e a estrutura que você escolhe dependem principalmente da experiência da sua equipe de desenvolvimento:

  • Scripts SQL gerados a partir do banco de dados e modificados ou desenvolvidos do zero.
  • Código compilado a partir de uma estrutura de desenvolvimento como .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ê seja extremamente flexível. 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 tiver requisitos que não possam ser satisfeitos com uma ferramenta de backup ou exportação pronta para uso.

A desvantagem desta abordagem é que requer mais investimento em tempo de desenvolvimento. Para que o código personalizado migre todos os dados corretamente, ele deve ser extensivamente testado antes de ser executado em dados reais. Essa tarefa requer uma equipe de desenvolvedores e testadores qualificados e, muitas vezes, aumenta o orçamento do projeto. Se você está pensando em escrever código de migração personalizado, não se sinta tentado a subestimar o tempo e o esforço necessários para criar um código confiável.

Azure Database Migration Service

O Azure inclui um serviço flexível chamado Serviço de Migração de Banco de Dados do Azure (DMS), que você usa para fazer migrações online contínuas de várias fontes de dados para 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 DMS do Azure sempre que quiser 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 de sua escolha.
  2. Crie um novo projeto de migração de dados do Serviço de Migração de Banco de Dados do Azure (DMS).
  3. Gere o esquema a partir dos bancos de dados de origem locais. Se você estiver usando o MySQL, poderá gerar um esquema com sqldumpo . Se o banco de dados de origem for PostgreSQL, use pg_dump.
  4. Crie um banco de dados vazio para atuar como o destino da migração.
  5. Aplique o esquema ao banco de dados de destino.
  6. Configure detalhes de conexão para os bancos de dados de origem e destino em um projeto de migração DMS.
  7. Execute o projeto de migração DMS. O projeto transfere os dados e gera um relatório.
  8. Revise o relatório e corrija os problemas identificados.

Migrações online

O Azure DMS é uma boa ferramenta para usar 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. Quando a migração estiver concluída, você reconfigurará os aplicativos de usuário para se conectar ao banco de dados migrado.

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

Se você quiser mover um banco de dados hospedado localmente em um servidor de banco de dados MySQL para a nuvem do Azure — e não precisar do banco de dados em nuvem para executar o MySQL — considere migrar para o Banco de Dados SQL do Azure. O Banco de Dados SQL do Azure é uma implementação PaaS do mecanismo de banco de dados SQL Server líder do setor da Microsoft. Inclui disponibilidade, escalabilidade e segurança a nível empresarial e é fácil de monitorizar e gerir.

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 MariaDB é um fork do MySQL.

O Banco de Dados SQL do Azure tem mais recursos do que o Banco de Dados do Azure para MySQL e o Banco de Dados do Azure para MariaDB.

Nota

Talvez seja necessário modificar quaisquer aplicativos que se conectam ao seu banco de dados migrado, porque o Banco de Dados SQL do Azure usa tipos de dados diferentes, objetos de banco de dados diferentes e uma API diferente do MySQL e do MariaDB. Consulte seus desenvolvedores para determinar quanto trabalho é necessário para portar um aplicativo cliente de um banco de dados MySQL ou MariaDB local para um banco de dados SQL do Azure na nuvem.

Assistente de migração do SQL Server para 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 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 modos de exibição, 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.

Nota

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