[SSIS] Integração SQL Server e Oracle

Fala Galera,

Sei que estou sumido. As coisas tem estado um tanto quanto caóticas. Muitos projetos simultâneos e tecnologias novas para aprender; Eu destacaria Websphere MQ, AIX e Oracle Forms.

Mas hoje, aproveitando a madrugada do feriado do dia do trabalho, vou fazer post simples e objetivo sobre como fazer integração entre uma base de dados Oracle 11g (rodando em um red hat) e um SQL Server 2012, através do integration services. O assunto está dividido em duas partes;

  1. Preparando o ambiente [obtendo e instalando o driver Oracle ODBC e configurando o tnsnames.ora]
  2. Criando um pacote para transferência de dados entre as bases.

obs: Eu fiz o mesmo procedimento como o SQL 2008, a diferença é que para o 2008 só conseguimos usar um driver ODBC e para o 2012 conseguimos usar o OLEDB ou ODBC 🙂

Imagem

 

Vamos lá..

Preparando o ambiente

Primeira coisa: Precisamos fazer o download do provider ODBC 32bits da Oracle.

http://download.oracle.com/otn/nt/oracle11g/112010/win32_11gR2_client.zip

 

  • Descompactar o Client do Oracle Driver ODBC 32 bits
  • Execute o C:\comp\win32_11gR2_client\client\setup.exe

Selecione a instalação como administrador e vá em Next

Imagem

  • Reinicie o servidor
  • Configure o tnsnames.ora localizado em: [UNIDADE INSTALAÇÂO DO DRIVER ]:\app\Administrator\product\11.2.0\client_1\network\admin
    O tnsnames é um arquivo de configuração, onde todos os dados de acesso do seu banco deverão ser armazenados./
    mais informações podem ser encontradas em: http://docs.oracle.com/cd/B28359_01/network.111/b28317/tnsnames.htm#NETRF007

Linux1=

  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = localhost.localdomain)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = dev1ora.devlin.com)
    )
  )

 

Após configurarmos nosso tnsnames.ora, iremos utilizar o comando “tnsping” para que a conexão entre os dois hosts (SQL e ORACLE) seja validada.

Imagem

 

Criando seu pacote de integração

Pré–requisito: Criação de sinônimos das tabelas que farão parte da integração.

Faça o login na sua base de dados oracle, encontre a tabela que você deseja que faça parte da integração e crie um sinonimo para ela; caso contrário ela não será listada como uma entidade válida para fazer parte da task.

Imagem

Abra o Visual Studio

  • Crie um novo projeto do integration services.
  • Adicione uma “DATA FLOW TASK”. Clique 2x nela
  • Adicione uma fonte de dados (ADO NET SOURCE)
  • configure a conexão com seu banco SQL Server

Imagem

  • Adicione uma “OLE DB Destination”. Clique 2x
  • Clique em “new” para configurar a nova fonte de dados. Uma nova janela será aberta “configure OLE DB connection manager”. Clique em new.

Imagem

  • No topo da tela, no list box “provider”; selecione o Oracle provider for OLE DB e clique OK

Imagem

  • Preencha os dados de conexão, conforme no arquivo TNSNAMES.ORA. Depois clique em testar conexão.:

Imagem

  • Se tudo tiver configurado adequadamente, a seguinte mensagem será apresentada

Imagem

  • De OK nas próximas 2 janelas. Até que a seguinte janela seja apresentada. Ao clicar no list box “Name of the table or the view”, todas as tabelas do oracle serão apresentadas.(Lembrando que será necessário que exista um sinônimo da tabela.)

Imagem

  • Depois clique em Mapping e faça o apontamento de onde cada campo (fonte / destino) e clique em OK

Imagem

  • Ligue as duas tasks recém adicionadas (source > destination)
  1. Imagem
  • Altere o parâmetro Run64RunTime to false.
  1. Botao direito no nome do projeto (1)
  2. Vá em propriedades (2)
  3. Configuration Properties > Debugging > Debug Options > Run64BitRunTime e altere para “false” (3).

Imagem

  • Execute seu pacote.

Imagem

 

e é isso 🙂

 

[]’s

 

Sobre dhiegopiroto
Graduado em sistemas de informação, atuou boa parte de sua carreira como desenvolvedor e DBA. Atualmente desempenha o papel de arquiteto de soluções.

3 Responses to [SSIS] Integração SQL Server e Oracle

  1. Alex Souza says:

    Republicou isso em Alex Souza.

  2. Reginaldo says:

    Dhiego, Muito bom o seu post. Obrigado.

    Você sabe dizer se isso funciona para um ambiente semelhante, mas sendo 64bits?

Deixe um comentário

BLOG DO ZOUZA

"Lifelong Learner" - Compartilhando e Adquirindo Conhecimentos!

Blog - Thiago Carlos de Alencar

Aprendendo SQL Server !

SQL Authority with Pinal Dave

SQL Server Performance Tuning Expert

Vitor Fava

Let s Learn, Practice and Share some knowledge

Diego Nogare

DBCC DumpMemory 'TECH','ALL'

Gustavo Maia Aguiar

Artigos, dicas e algumas reflexões sobre o SQL Server

Kimberly L. Tripp

DBCC DumpMemory 'TECH','ALL'

Thiago Zavaschi R2

www.zavaschi.com

Blog do Luti

DBCC DumpMemory 'TECH','ALL'

Luan.Moreno a.k.a [SQL.Soul]

Lead Database Consultant at Pythian

Blog do Leka

let's make things better