Um guia completo sobre Estratégias de Migração de Tecnologia: (Parte 3 – Migração de Banco de Dados)
Publicados: 2020-12-25Imagine um cenário em que você compra um apartamento novo, está tudo pronto para se mudar e planejou cuidadosamente o processo. Você está pronto para se mudar para sua nova casa, então, de repente, percebe que há um problema. Os móveis e artefatos não se encaixam bem com seu novo apartamento.
Como você se sentiria se tivesse que despejar todos os seus móveis e começar do zero? Levando essa analogia adiante, considere o novo apartamento como seu novo banco de dados e os móveis como os dados. Temos certeza de que os dados seriam muito mais importantes do que os móveis para sua empresa e, portanto, você deseja reter cada pedacinho deles enquanto planeja migrar.
Como continuação de nossa série de migração de tecnologia, neste blog, tentaremos descobrir os fundamentos da migração de banco de dados (DBM), o que se deve entender, considerar e cuidar ao realizar a migração de banco de dados.
Por que e quando a migração de banco de dados é necessária?

Como continuação de nosso blog anterior sobre migração de aplicativos, o artigo de hoje gira em torno da migração de banco de dados (também conhecida como migração de esquema) porque é uma das migrações mais importantes que lida principalmente com a seleção, extração, transferência/atualização dos dados de uma estrutura de banco de dados para outro.
Essencialmente, a necessidade de migração de banco de dados pode ser específica para um requisito de negócios ou até mesmo para satisfazer as várias políticas regulatórias mais recentes instituídas por vários reguladores. Embora não haja situações definidas quando o DBM é necessário, listamos algumas situações em que isso é inevitável:
- Um motivo comum é mover seu sistema desatualizado para um sistema que atenda aos seus requisitos de negócios e necessidades de dados modernos. Novas e modernas técnicas de armazenamento tornaram-se uma necessidade nos tempos de Big Data.
- Certos reguladores tornaram obrigatório que os dados permaneçam apenas em uma determinada geografia. Portanto, é necessário que os dados distribuídos sejam migrados para um único local.
- Algumas empresas preferem mover um banco de dados local para um banco de dados na nuvem. Isso normalmente economiza infraestrutura e recursos especializados necessários para dar suporte aos dados, além de tornar os sistemas mais rápidos.
- A migração para uma nova plataforma garante a integridade abrangente dos dados. Reduz os custos de armazenamento e mídia, o que resulta em uma melhoria significativa no ROI.
- Muitas empresas modernas desejam manter todos os seus dados em um só lugar. Dessa forma, os dados ficam acessíveis a todos os departamentos da empresa.
A migração do sistema de banco de dados para uma nova plataforma reduz a interrupção que ocorre nas operações comerciais diárias. Isso pode ser feito com esforços manuais mínimos se a seleção de uma nova plataforma de banco de dados for feita com sabedoria.
Tipos de Bancos de Dados
Antes de prosseguir com a migração do banco de dados, vamos primeiro dar uma olhada nos diferentes tipos de bancos de dados:

- Banco de dados relacional – Os bancos de dados relacionais são conhecidos como os burros de carga da indústria de banco de dados. Esses bancos de dados são classificados por um conjunto de tabelas. As tabelas consistem em linhas e colunas em que a linha contém a instância de dados e a coluna contém a entrada de dados para uma categoria específica. SQL – Structured Query Language é uma interface de programação padrão para Banco de Dados Relacional.
- Banco de dados distribuído – Como o nome sugere, os dados são distribuídos em vários locais de qualquer organização. Os links de comunicação são usados para conectar sites entre si. Isso ajuda a acessar o banco de dados distribuído facilmente.
- Banco de dados orientado a objetos – Este tipo de banco de dados mescla atributos de banco de dados relacional e programação orientada a objetos. Vários itens criados em C++ e Java podem ser armazenados em bancos de dados relacionais, no entanto, um banco de dados orientado a objetos é mais adequado para eles.
- Banco de dados NoSQL – O banco de dados NoSQL pode analisar com eficiência grandes dados não estruturados armazenados em vários servidores virtuais. Em contraste, um banco de dados relacional não pode lidar com algumas performances de big data de forma eficiente. Os bancos de dados NoSQL podem gerenciar facilmente esses casos e são usados para um grande conjunto de dados distribuídos.
- Banco de Dados em Nuvem – O Banco de Dados em Nuvem é um ambiente virtual que oferece a flexibilidade de pagar por uso. O usuário só precisa pagar pela largura de banda e pela capacidade de armazenamento que atenda às suas necessidades.
- Banco de dados de grafos – Em termos simples, um grafo é uma coleção de nós e arestas. O banco de dados gráfico contém nós que representam entidades e a borda descreve os relacionamentos entre essas entidades. É um tipo de banco de dados NoSQL e usa a teoria dos grafos para mapear, armazenar e consultar relacionamentos.
- Banco de dados centralizado – Com esse tipo de banco de dados, os dados são armazenados em um único local centralizado. O banco de dados contém essencialmente procedimentos de aplicativo que permitem que os usuários acessem o banco de dados também de locais remotos.
Abordagens de migração de banco de dados
Migrar os dados de uma plataforma de banco de dados para outra pode ser uma tarefa crucial. Se a migração for planejada em um Ambiente LIVE, a migração deve ser feita com o máximo de cuidado. Deve-se escolher um horário de migração conveniente antes de avançar com a migração de dados. Os sistemas ativos geralmente passam por tempo de inatividade quando os dados estão sendo transferidos para um novo banco de dados.
Existem basicamente duas abordagens para a migração de banco de dados:
Migração de dados do Big Bang:
Essa abordagem é onde se opta por migrar o banco de dados completo de uma só vez em um período de tempo limitado. Embora a migração de dados do big bang pareça menos complexa, ela requer tempo de inatividade suficiente para o site ativo. Além disso, com essa abordagem, uma reversão completa do processo de migração pode não ser fácil de alcançar caso a migração falhe a qualquer momento.
Migração de dados de gotejamento
Com essa abordagem, é preciso dividir o processo de migração em partes ou fases menores. Quase como uma abordagem ágil para migração, se uma fase única falhar, apenas essa fase precisará ser revertida e o processo repetido. No entanto, a migração de dados do Trickle consome muito tempo e, portanto, pode aumentar o custo do projeto.
Diferentes tipos de migração

DB relacional para banco de dados relacional
Essa abordagem é a migração mais direta. Existem toneladas de ferramentas disponíveis que realizam esse tipo de migração de maneira bastante eficiente, quase 100% eficaz.
DB relacional para banco de dados não relacional e vice-versa
Esta migração é mais difícil em comparação com a anterior. Como o banco de dados relacional e o banco de dados não relacional são fundamentalmente diferentes, sua migração pode não ser 100% eficiente. Essencialmente, migrar para BD Não Relacional significa sacrificar as propriedades ACID (atômicas, consistentes, isoladas e duráveis) que garantem a escalabilidade de um banco de dados.
No entanto, existem várias ferramentas gratuitas disponíveis que oferecem suporte à migração de banco de dados de banco de dados relacional para banco de dados não relacional. Embora usá-los não seja amplamente recomendado, pois essas ferramentas não suportam a estrutura do esquema do sistema e a maioria parece muito rígida para adaptar os requisitos do sistema.
Embora existam algumas dicas básicas de conversão que podemos renderizar para esse tipo de migração que podemos considerar (para facilitar, vamos considerar o MySQL como nosso banco de dados relacional e o MongoDB como nosso banco de dados não relacional)

- Converta o tipo de dados MySQL String para String no MongoDB. Isso pode incluir char, varchar, blob, text, etc.
- Converta o tipo de dados numérico do MySQL para número no MongoDB. Isso pode incluir int, float, decimal, double, etc.
- Converta o tipo de dados MySQL Date em Date no MongoDB. Isso pode incluir a data, ano, carimbo de data/hora, etc.
- Converta o tipo de dados MySQL Bool & Boolean para Boolean no MongoDB.
- Você pode avaliar outros casos da mesma maneira.
Migrando com um modelo híbrido
O design do modelo híbrido integra os dois modelos de banco de dados populares em uma única estrutura, enquanto mitiga as desvantagens de cada sistema. Por exemplo, sempre podemos optar por uma abordagem híbrida onde podemos explorar um banco de dados relacional para operações menos exigentes, em combinação com um banco de dados não relacional para iniciativas com uso intenso de dados.

Backup de dados
Planejar a estratégia de migração antes da execução pode garantir um processo de migração tranquilo. Dito isso, precisamos sempre ter um Plano B. Assumindo um cenário de pior caso onde há alguma perda de dados, ou os dados são corrompidos durante a execução da migração; você deve estar preparado para restaurar os dados ao seu estado original antes de tentar novamente. É por isso que o Data Backup é uma etapa altamente imperativa durante o DBM (Database Migration). Então, quais opções existem para garantir o backup seguro de dados, vamos nos aprofundar.
Backup em nuvem

Um dos métodos mais eficientes e seguros para proteger sua iniciativa de migração é executar um backup no armazenamento em nuvem. Essencialmente, quando você faz backup de seus dados no armazenamento em nuvem, seus arquivos são armazenados fora do local. Isso elimina vulnerabilidades de hardware local que podem causar problemas. Então, por que um backup na nuvem?
- Os backups em nuvem são acessíveis porque você precisa pagar apenas por uso.
- Um backup em nuvem é seguro, pois fornece criptografia de ponta a ponta.
- Permite fácil recuperação de desastres e restauração de dados
- As opções robustas de backup na nuvem incluem todo o backup da imagem do sistema. Assim, você não precisa reinstalar o sistema operacional. Computadores e servidores são restaurados para a última versão em funcionamento.
Software de compartilhamento de arquivos

Pacotes de software como o Dropbox estão crescendo para atender às necessidades de seus usuários. O Dropbox mantém versões de arquivos que podem ser restauradas quando necessário. Semelhante ao backup na nuvem, esta opção é acessível e os arquivos são armazenados fora do local. Quais são suas vantagens?
- Os arquivos podem ser restaurados para qualquer sistema em qualquer local.
- É gratuito e suporta colaboração.
- Altamente seguro (o armazenamento em nuvem criptografa seus arquivos em trânsito)
- Capacidades de trabalho offline
Uma desvantagem, no entanto, é que a restauração não é automatizada. Você precisa copiar e colar os dados na estrutura de diretórios de compartilhamento de arquivos para salvar os dados. Os arquivos devem residir em uma estrutura definida, caso contrário não será feito backup. Se os arquivos estiverem em uma pasta ou diretório compartilhado, você provavelmente precisará de mais largura de banda para fazer backup desses arquivos.
De um modo geral, existem outras mídias disponíveis para backup, como um backup em uma unidade flash ou disco rígido externo. Mas essas opções não são recomendadas, pois não são totalmente seguras em comparação com o backup em nuvem ou o software de compartilhamento de arquivos. Por exemplo, qualquer dano físico a um disco rígido pode causar perda de dados. Além disso, eles são mais vulneráveis e suscetíveis a ataques de ransomware e vírus criptográficos.
Como garantir que os dados estejam seguros?
Ao realizar a migração de dados, você precisa garantir que dados confidenciais não sejam violados ou adulterados. Se a migração der errado, pode levar a consequências maiores e resultar em vazamentos ou perda de dados, como os exemplos citados aqui em 2020.
Infelizmente, vazamentos de dados podem causar danos à reputação do cliente, levar à perda de negócios e clientes; ou em alguns casos, pode provocar ações legais. Para evitar todas essas consequências, você precisa elaborar um plano de segurança com antecedência, tendo em mente a estratégia de migração.
- Para começar, o acesso ao servidor confiável e seguro e o acesso aos dados devem estar na sua lista de prioridades.
- Aumente o número de permissões necessárias para a transferência de dados. Em organizações maiores, os departamentos de segurança limitam o acesso aos servidores e definem a migração de dados entre os servidores envolvidos.
- Os dados correm alto risco quando mais partes estão envolvidas. Portanto, evite transferências entre partes por meio de dispositivos de armazenamento portáteis ou e-mails. Nesses casos, os dados podem ser facilmente comprometidos.
- Para garantir acesso seguro, armazenamento e recuperação de dados, deve-se praticar constantemente a criptografia e a descriptografia. Você pode usar algoritmos de criptografia híbridos para garantir a máxima segurança dos dados. Mas isso não é recomendado para todos. Se a migração falhar, os dados ficarão confusos e poderão causar corrupção ou perda de dados.
Para garantir uma migração segura, evite usar ferramentas primitivas. O uso de ferramentas primitivas pode enfraquecer seu sistema e deixar brechas para hackers acessarem. Você deve empregar ferramentas robustas para migração de dados que sejam funcionalmente específicas.
Processo de migração de dados
A migração de dados é principalmente um processo multifásico, e as etapas a seguir devem ser seguidas para evitar a perda de dados e garantir a migração segura do banco de dados.
- Avaliação :
- Colete a análise de requisitos de negócios e defina o objetivo principal que se precisa alcançar com o DBM.
- Defina o escopo
- Conduza uma ampla criação de perfis de dados:
- Revise os dados de origem, o formato dos dados, revise a estrutura do esquema, o conteúdo e os relacionamentos entre as instâncias de dados
- Entenda o sistema de destino
- Identifique os interessados
- Faça o orçamento de toda a atividade
- Backup de dados
- Certifique-se de que os dados que você está migrando tenham um backup seguro. O uso de um backup em nuvem é recomendado.
- Certifique-se de que o destino esteja limpo e protegido contra qualquer invasão de dados.
- Disponibilidade de recursos :
- A disponibilidade de tempo para a migração e o tempo de inatividade para o sistema de destino.
- Certifique-se de que o recurso humano contratado tenha o conjunto de habilidades correto.
- Identifique a ferramenta e os scripts certos.
- Execução de migração de dados :
- O processo de migração pode incluir scripts, ferramentas ETL ou outras ferramentas comparáveis para mover os dados.
- No momento da migração, você transformará os dados, normalizará os tipos de dados e, por fim, verificará possíveis erros.
- Teste e ajuste :
- A equipe e a equipe do cliente precisam ter certeza de que todos os dados foram migrados corretamente
- Portanto, verifique se os dados são movidos corretamente, se os dados estão completos e certifique-se de que não haja valores ausentes.
- Além disso, certifique-se de que os dados sejam válidos e não contenham valores nulos.
- Caso haja alguma incompatibilidade de dados, deve haver uma reversão de dados e todo o processo deve ser reiniciado.
- Auditoria
Assim que o novo banco de dados estiver ativo, um sistema pode ser configurado para auditar os dados. Isso garantirá a precisão da migração do banco de dados e chamará a atenção para dados incompletos e imprecisos.
Riscos potenciais com migração de banco de dados

A migração de banco de dados é um procedimento altamente intrincado e vem com seu risco e incerteza. Você sempre pode superá-los com planejamento e execução adequados. Os riscos que podem ser encontrados são:
- Sistemas de fonte desatualizados: aqui, a fonte de dados pode estar desatualizada, redundante, obsoleta ou trivial
- Arquitetura de banco de dados diferente: nesse cenário, os bancos de dados de origem podem estar localizados em vários locais e podem ter arquiteturas totalmente diferentes umas das outras, mas o banco de dados de destino precisa que tudo esteja sincronizado.
- Tempo de Inatividade Estendido: Há casos em que a migração planejada demora mais do que o esperado, e devido a isso há um tempo de inatividade estendido para o sistema. Isso pode causar perda de negócios para o cliente final e pode não ser aceitável.
- Potencial perda de dados: Nem todas as perdas de dados podem ser identificadas durante a fase de teste. Algumas instâncias de perda de dados podem ser identificadas eventualmente quando o sistema recebe tráfego suficiente.
Migração de um banco de dados em tempo real: Para qualquer site de alta transação, migrar o banco de dados é sempre difícil, pois há constantes atualizações de dados ocorrendo; e a migração de dados ao vivo e em tempo real não é possível. Tem que haver um tempo de inatividade para que qualquer migração aconteça.
Considerações finais
Você sempre pode buscar orientação de especialistas terceirizados sobre migração de banco de dados. Somos Creole Studios especializados em migrações de banco de dados e ficaremos felizes em ajudar ou consultar em qualquer empreendimento. Fique ligado no quarto e último blog da série de migração de tecnologia.