sábado, 27 de agosto de 2016

Migrando Informix 11.70 para Oracle 12c

Olá pessoal,

Estive trabalhando em uma proposta de migração de Informix para Oracle e vou compartilhar o caminho das pedras.

Banco de Origem:

IBM Informix Dynamic Server Version 11.70.FC5
5TB
7.000 Tabelas
Média de 30 colunas por tabela

Banco de Destino:

Oracle Database Enterprise Edition 12.1.0.2


Algumas opções para migração:

1 - Usar ferramentas Informix para gerar arquivos e depois usar o SQL*Loader ou external tables: viável, porém extremamente trabalhoso para o elevado número de tabelas.

2 - Oracle Database Gateways: Requer licença adicional.

3 - SQL Developer's migration tools: Não suporta o Informix 11.70

4 - Oracle Migration Workbench : Não suporta o Informix 11.70

5 - Criar uma ferramenta para fazer a migração: Custo elevado e a demanda não justifica.

6 - Comprar uma ferramenta pronta.


Minha primeira opção foi em testar uma ferramenta pronta e escolhi duas:

http://www.sqlines.com/informix-to-oracle
http://www.ispirer.com/products/informix-to-oracle-migration

A que eu mais gostei, foi a SQLines Data. Porém tive alguns percalços com relação a versão do windows, drivers odbc e oracle client.

A ferramenta da Ispirer funciona bem, mas um ponto negativo é que ela gera um arquivo texto e depois importa para o Oracle. Tudo de forma automatizada, mas poderia ter a opção de fazer isso via insert direto.


Preparando o ambiente para os testes:

Criei 2 VMs, uma com Windows 7 - 32 bits (Sim, 32 bits, pois foi a única forma da SQLines Data funcionar) e outra com Oracle Linux 6.5 64 bits, onde instalei o Informix Developer Edition e o Oracle para testes.

Preparando o ambiente Windows:

  Instalar o Oracle Database 11g Release 2 Client (11.2.0.1.0) for Microsoft Windows (32-bit) 

  Configurar o tnsnames.ora apontando para o banco Oracle:



 Instalar o Java:



 Instalar Driver JDBC do Informix:


Instalar o Informix Client SDK Developer Edition for Windows x86, 32-bit:



Testando o SQLines Data


Instalar o SQLines Data:



Verificando a conexão com o Oracle:



Executar o setnet32 para configurar a conexão com o Informix:




Verificando a conexão com o Informix:


Para testes, vou deixar o default (todas as tabelas):



Log de transferência das tabelas:



Validação após a transferência:


Log da transferência:


Testando o Ispirer SQL Ways


 Instalar o Ispirer:


Criar uma conexão ODBC para o Informix no Windows e selecioná-la na ferramenta:



Informar os dados de conexão com o Oracle:


Agora é possível escolher os objetos que serão migrados:


Definir o mapeamento dos objetos:


Selecionando algumas opções para o Export dos dados:


Selecionando algumas opções para o Import dos dados:


Sumário:


Execução da migração:


Resumo da migração:


Como foi dito anteriormente, essa ferramenta gera arquivos para serem importados pelo SQL*Loader:



2 comentários:

César Carvalho disse...

Quanto tempo essa migração? Migrou objetos como procedures e funções?

Alex Zaballa disse...

Foi apenas um POC, não teve migração de uma base real!
Durante os testes, a ferramenta conseguiu migrar procedures e funções sem problemas!