terça-feira, 3 de junho de 2014

Migração de Dados do SQL Server para Oracle - Via SQL LOADER [Exportação e Importação em massa];

Pessoal, Boa tarde!

Em um outro Post demonstrei a vocês o processo para migrar os dados do SQL Server para o Oracle.
Leia: http://dbaduarte.blogspot.com.br/2014/05/migracao-de-dados-do-sql-server-para.html

Hoje irei apenas mostrar um passo para otimizar o procedimento com exportação e importação em massa.
Após efetuado todos os passos do Post anterior, agora vamos no desenvolvimento da melhoria!

Com todos os comandos BCPs e arquivos CTLs desenvolvidos, será necessário salvá-los em uma pasta do Servidor SQL Server.
















Exemplo *.BCP:







Exemplo *.CTL:


















Ok ! Agora vamos desenvolver uma BAT para exportar todos os dados das tabelas de uma só vez.
Usei o utilitário osql pelo motivo do SQL Server estar na versão 2000, caso fosse uma superior usaria o sqlcmd.

-U: Usuário
-P: Senha
-S: Nome do Servidor (SQL Server)
-d: Nome da Base de dados
%1, %2, %3, %4: Parâmetros que iremos passar - Para não ser chumbado na BAT.
-i: Entrada (Arquivo)
-o: Saída (Arquivo)

osql -U%1 -P%2 -S%3 -d%4  -iTABLESQLSERVER.bcp  -oTABLESQLSERVER.log











Salvar a BAT na mesma pasta dos outros arquivos.


Iremos executar a BAT pelo cmd do Servidor SQL Server:
>cd C:\Migracao
>bcp.bat usuario senha nomedoservidor nomebasededados
OBS: Passando os parâmetros dos %1, %2, %3, %4










Os arquivos foram exportados em .TXT no C:\ do Servidor SQL Server - Conforme definimos nos arquivos .BCP. 
Salvá-los na mesma pasta dos outros arquivos.



















Feito ! Vamos a criação da BAT para a importação dos dados em massa no Servidor Oracle.

sqlldr userid=%1/%2@%3  control=TABLESQLSERVER.ctl   log=TABLESQLSERVER.log  
Salvar a BAT na mesma pasta dos outros arquivos.



















Para a importação, será necessário copiar a pasta com todos os arquivos para o Servidor Oracle, ou em algum outro local que tenha o Client do Oracle instalado e o TNSNAMES configurado com os dados do Servidor - No meu caso copiei para a minha máquina local.

Iremos executar a BAT pelo cmd (No meu caso da minha máquina local).
>cd C:\Migracao
>loader.bat usuario senha instanciaoracle









Pronto! Todas as suas tabelas foram migradas em massa de uma só vez!

Valeu,
Bruno Duarte.

Nenhum comentário:

Postar um comentário