Comparar migrações online e offline
Existem duas metodologias distintas para migrar bases de dados entre servidores, Online e Offline. As principais diferenças entre essas metodologias são a quantidade de tempo de inatividade dos aplicativos e os processos que usam os bancos de dados. Normalmente, as migrações offline têm um período mais longo de inatividade e as migrações on-line geralmente são mais curtas com o mínimo de interrupção.
Características de migração offline
Quando você executa uma atividade de migração offline, a descrição "Offline" refere-se à necessidade de interromper os aplicativos e cargas de trabalho associados ao banco de dados antes que a atividade de migração seja iniciada. Os dados ou o banco de dados são migrados do sistema de origem para o sistema de destino e verificados, antes que o aplicativo seja reconfigurado para apontar para o novo local e as cargas de trabalho reexpressas.
Os dois métodos mais comuns para uma atividade de migração offline são: um backup e uma restauração para uma migração de esquema e usar um ETL (Extract, Transform, and Load) para transferir os dados em um nível de objeto ou um processo de replicação.
As migrações offline normalmente resultam em períodos mais longos de inatividade para o sistema devido à duração necessária para executar a atividade de migração de dados. Esse tempo de inatividade cresce proporcionalmente com base no volume de dados a serem transferidos durante a migração. A largura de banda é um recurso finito e apenas tantos dados podem ser transferidos por segundo.
Existem algumas otimizações que podemos fazer para migrações off-line que podem minimizar a quantidade de tempo de inatividade com o qual temos que lidar. No entanto, essas otimizações normalmente envolvem um aumento na complexidade da migração e, portanto, os riscos de algo dar errado. Trata-se de encontrar o equilíbrio entre complexidade, risco e tempo de inatividade permitido.
Características da migração online
As migrações online são migrações que podem ocorrer enquanto os aplicativos e cargas de trabalho ainda estão em execução. Essa situação significa que o tempo de inatividade necessário para executar a transferência do banco de dados antigo para o novo banco de dados é pequeno e resulta em interrupção mínima para os usuários.
Nota
É importante entender que, mesmo com migrações online, normalmente há uma pequena janela onde o aplicativo tem que ser colocado offline para redirecioná-lo para o novo local do banco de dados. Há maneiras de projetar um aplicativo para não incorrer em tempo de inatividade, mas isso está fora do escopo deste módulo.
Normalmente, uma migração online usa uma tecnologia de mecanismo de banco de dados, como a replicação, para sincronizar dados do banco de dados de origem para o banco de dados de destino. A duração total de uma atividade de migração online é maior do que uma atividade offline porque a sincronização de dados é configurada antes do evento de transferência.
Ao avaliar se uma migração online deve ser realizada, é importante entender o potencial impacto no desempenho que o processo de sincronização aplica ao sistema de origem. Além disso, pode haver alguns requisitos do processo de sincronização, o que significa que as alterações precisam ser feitas em um banco de dados para que ele seja concluído com êxito.
Comparação offline vs. online
A tabela a seguir resume brevemente as principais diferenças entre os processos de migração offline e online.
Migração Offline | Migração Online | |
---|---|---|
Tempo de inatividade | Mais tempo | Mais curto |
Complexidade | Lower | Mais alto |
Impacto na fonte | Lower | Mais alto |
Transferência de Dados | Processo único | Synchronous (Síncrono) |
Qual método escolher
Compreender os dois métodos de migração é apenas parte da história para realizar uma migração. Precisamos entender quais ferramentas estão disponíveis para nós antes de podermos fazer uma escolha sobre como realizar nossa migração de dados.