Comparar migrações online e offline
Há duas metodologias distintas para migrar bancos de dados entre servidores: online e offline. As principais diferenças entre essas metodologias são a quantidade de tempo de inatividade para os aplicativos e os processos que usam os bancos de dados. Normalmente, as migrações offline têm um período mais longo de tempo de inatividade e as online normalmente são mais curtas com interrupção mínima.
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 do início da atividade de migração. Os dados ou o banco de dados são entã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 cargas de trabalho reajustadas.
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 processo ETL (Extrair, Transformar e Carregar) para transferir os dados em um nível de objeto ou em um processo de replicação.
As migrações offline normalmente resultam em períodos mais longos de tempo de inatividade para o sistema porque a duração necessária para executar a atividade de migração de dados. Esse tempo de inatividade aumenta proporcionalmente com base no volume de dados a serem transferidos durante a migração. A largura de banda é um recurso finito e apenas muitos dados podem ser transferidos por segundo.
Há algumas otimizações que podemos fazer para migrações offline que podem minimizar a quantidade de tempo de inatividade com que 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 de 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 substituição do banco de dados antigo pelo novo banco de dados é pequeno e resulta em uma interrupção mínima para os usuários.
Observação
É importante entender que, mesmo com as migrações online, normalmente há uma pequena janela em que o aplicativo precisa 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 que 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 da origem para o banco de dados de destino. A duração geral de uma atividade de migração online é maior do que uma atividade offline porque a sincronização de dados é configurada antes do evento de recortar.
Ao avaliar se uma migração online deve ser executada, é importante entender o potencial impacto de 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 sucesso.
Comparação offline versus online
A tabela a seguir resume brevemente as principais diferenças entre processos de migração offline e online.
Migração offline | Migração online | |
---|---|---|
Tempo de inatividade | Maior | Menor |
Complexidade | Inferior | Superior |
Impacto na origem | Inferior | Superior |
Transferência de dados | Processo único | Síncrono |
Qual método escolher
Entender os dois métodos de migração é apenas uma parte da história para executar uma migração. Precisamos entender quais ferramentas estão disponíveis para nós antes de podermos escolher como executar nossa migração de dados.