Modernização

Migração de banco de dados: trocar de motor sem perder um registro

Licenças que sobem a cada renovação, versões sem suporte ou procedimentos armazenados que ninguém entende. Migramos o banco de dados com o esquema real medido e cada tabela conciliada antes de comutar.

O problema

Os dados são a parte que não admite erros

Uma migração de dados falha pelo que não se vê: tipos de dados diferentes, regras escondidas em triggers e procedimentos armazenados, chaves compostas e dados históricos que não cumprem as regras atuais. Na análise de um sistema ferroviário (sem o nome do cliente), o esquema real tinha 159 tabelas, 1.238 colunas, 155 chaves estrangeiras e 54 chaves primárias compostas.

Como fazemos

Do esquema medido aos dados conciliados

Esquema medido

Tabelas, colunas, chaves, índices, triggers e procedimentos armazenados são inventariados a partir do banco de dados real.

Lógica de banco de dados especificada

O que os procedimentos e triggers fazem é documentado, e decide-se se isso vai para o novo motor ou para a aplicação.

Conciliação de dados

Cada tabela é conciliada entre origem e destino com contagens e comparações antes de comutar.

Comutação reversível

A comutação é ensaiada, define-se como voltar e só então a operação é movida.

Cenário ilustrativo

Um sistema de folha de pagamento sobre Oracle com licenças em renovação

Imagine uma aplicação de folha de pagamento sobre Oracle, com boa parte da lógica em procedimentos armazenados e uma renovação de licenças pela frente.

  1. O esquema é medido e os procedimentos armazenados que a aplicação usa são inventariados.
  2. Os procedimentos são especificados com testes e portados para PostgreSQL ou para a aplicação.
  3. São feitas cargas de ensaio e cada tabela é conciliada até que os resultados coincidam.
  4. A comutação é ensaiada e executada em uma janela combinada, com um caminho de volta definido.

Cenário ilustrativo: Exemplo hipotético para explicar o método: não descreve um cliente nem um resultado medido.

O que fica com você

Dados conciliados e um esquema documentado

Dicionário de dados do esquema real, scripts de migração repetíveis e relatórios de conciliação por tabela.

Perguntas frequentes

É preciso mudar também a aplicação?

Depende de quanta lógica vive no banco de dados e de como a aplicação o acessa. O inventário indica isso antes do orçamento.

A operação para?

A comutação do banco de dados é feita em uma janela combinada e ensaiada previamente, com um caminho de volta definido.

Vocês precisam dos meus dados reais para começar?

Não. Para a amostra medida basta a estrutura do banco de dados; os dados são usados depois, nas cargas de ensaio, com os controles de acesso que a sua empresa definir.

Próximo passo

Comece por uma amostra medida: de 5 a 10 telas do seu sistema transformadas em especificação verificável, com testes e um inventário de diferenças.