Assistente de migração (migração de dados/schema)
Você está migrando dados/schema. É homogênea ou heterogênea, e qual é sua tolerância a downtime? Planeje passo a passo: avaliar → migrar → verificar. Ensaie o cutover aqui primeiro.
De onde para onde você está migrando?
Homogênea: o mesmo motor de banco de dados (por exemplo, Oracle 19 → Oracle 23, ou PostgreSQL para outro servidor). Heterogênea: um motor diferente (por exemplo, Oracle → PostgreSQL, MySQL → SQL Server). Migrações heterogêneas exigem muito mais trabalho de compatibilidade (tipos de dados, funções, PL/SQL).
- Mesmo motor, novo servidor/versão (homogênea)
- Para um motor diferente (heterogênea)
- Estou na fase de planejamento; como devo abordar?
Qual é sua tolerância a downtime?
Isso determina o método de migração. Se houver uma janela de manutenção, o caminho mais simples é dump/restore. Se for exigido downtime quase zero, você carrega os dados iniciais, os mantém sincronizados com replicação contínua (CDC) e faz um cutover curto.
- Há uma janela de manutenção (downtime é aceitável)
- É exigido downtime quase zero
Você avaliou a compatibilidade de schema e de tipos?
Em uma migração heterogênea, o trabalho real não é copiar os dados, mas resolver as diferenças: tipos de dados (VARCHAR2↔TEXT), funções (NVL↔COALESCE), valores de auto-increment, PL/SQL ↔ PL/pgSQL, recursos removidos/diferentes.
- Mapeei as diferenças de schema/tipos
- Ainda não as avaliei
Avalie a compatibilidade primeiro
Antes de migrar, mapeie as diferenças entre origem e destino; se esta etapa for pulada, a migração trava no meio do caminho.
Migração offline (dump / restore)
O método homogêneo mais simples e confiável: faça um backup consistente, carregue-o no destino, verifique e troque.
Downtime mínimo (CDC / replicação)
Carregue os dados iniciais e depois mantenha o destino sincronizado com a origem via replicação contínua; o downtime ocorre apenas durante o cutover curto.
Migração heterogênea (para outro engine)
Converta o schema, mova os dados, adapte a lógica, verifique. Avance em fases; não migre tudo de uma vez.