N style="mso-spacerun: yes">
Clique aqui para ler todos os artigos desta edição
Como acessar um servidor Oracle a partir de um servidor SQL Server 2000
Cristiano R. Matheus
Com a grande capacidade de conectividade e ambientes heterogêneos das empresas nos dias de hoje, é cada vez mais comum a necessidade de troca de informações e integração entre sistemas, na maioria das vezes desenvolvidos com soluções completamente distintas. Em um cenário como este, trocar informações entre um servidor Oracle e um servidor SQL Server 2000 muitas vezes é algo crítico para o bom funcionamento e continuidade dos negócios da empresa. E é justamente sobre este assunto que trataremos neste artigo, falando inicialmente sobre o ambiente utilizado nos testes e, a seguir, explicando como configurar o servidor SQL 2000 para acessar um servidor Oracle. Ao final, faremos algumas considerações a respeito de algumas limitações e erros comuns.
Ambiente utilizado
Para todos os testes demonstrados neste artigo, utilizamos um servidor MS-SQL 2000 SP3a rodando sobre Windows Server 2003 SP1 e um servidor Oracle 9i também rodando sobre Windows 2003 Server SP1. Os dois servidores foram instalados com o uso do MS-Virtual PC 2004. Todos estes aplicativos podem ser obtidos em suas versões de avaliação nos sites da Microsoft (www.microsoft.com) e da Oracle (www.oracle.com).
Configurando o servidor SQL 2000
A configuração do servidor SQL 2000 deve ser feita através dos seguintes itens:
Instalação do Client do Oracle
O primeiro passo para a realização deste item é verificar a conexão entre os servidores. É considerada boa prática garantir que o servidor Oracle possa ser acessado a partir do servidor SQL Server pelo seu nome. Caso o servidor responda somente pelo endereço IP, configure o servidor DNS ou altere o arquivo HOST. local da maquina. A resolução do nome pode ser verificada como mostra a Figura 1.
Figura 1. Teste de conectividade e resolução de nomes entre os servidores.
Feito isto, é necessário é realizar a instalação do Client do Oracle 9i no servidor SQL Server 2000. Neste passo, é especificamente importante a instalação do driver Oracle Provider for OLE DB como indicado na Figura 2. Deste modo, você poderá se conectar com o servidor Oracle fazendo uso do Microsoft OLE DB Provider for Oracle (driver fornecido pela Microsoft) ou do Oracle Provider for OLE DB (driver fornecido pela Oracle).
Figura 2. Componentes selecionados na instalação do Client do Oracle 9i.
Ao final da instalação do Client do Oracle 9i, deve-se realizar a configuração do Net Service Name como mostra a Figura 3.
Figura 3. Configuração do Net Service Name após a instalação do Client do Oracle.
Em seguida, deve-se realizar um teste de conexão com o servidor Oracle a partir do servidor SQL 2000. Neste instante o objetivo é garantir que é possível acessar o servidor Oracle somente com as ferramentas instaladas pelo Client da Oracle, pois caso este teste de conexão não funcione, não será possível acessar o servidor Oracle a partir do SQL Server 2000. Para este teste podemos utilizar o SQL*Plus conforme mostra a Figura 4.
Figura 4. Teste de conexão com o servidor Oracle utilizando o SQL*Plus.
Alteração no registry para o MSDTC
A instalação do Client do Oracle não efetua uma alteração importante no registry com relação ao MSDTC. O MSDTC (acrônimo de Microsoft Distributed Transaction Coordinator) é um serviço responsável pelo controle de transações entre servidores e, se você não realizar essa alteração manualmente, não será possível realizar transações distribuídas entre o servidor SQL Server 2000 e o servidor Oracle. Para contornar esse problema, efetue as alterações das chaves apresentadas na Listagem 1 (observação: antes de modificar o registry, não se esqueça de fazer um backup!).
Listagem 1. Chaves que devem ser alteradas no registry para o correto funcionamento do MSDTC.
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTC\MTxOCI]
"OracleXaLib"="oraclient9.dll"
"OracleSqlLib"="orasql9.dll"
"OracleOciLib"="oci.dll"
Reinicie o servidor
Em seguida, devemos reinicializar o servidor SQL Server 2000. O objetivo é garantir que o SQL Server 2000 tenha acesso a todos os componentes que foram instalados. Após a reinicialização, podemos conectar no SQL Server 2000 a partir do Query Analyzer para a realização dos próximos passos.
Acessando o servidor Oracle a partir do servidor SQL 2000
Para acessar o servidor Oracle, utilizaremos os recursos descritos a seguir.
Criando Linked Servers
O acesso ao servidor Oracle a partir do servidor SQL Server 2000 será realizado através de Linked Servers. Linked Servers no SQL Server 2000 funcionam como ligações para origens de dados do tipo OLE DB. Através deste recurso, você pode referenciar sets de registros de origens de dados do tipo OLE DB como tabelas em comandos Transact-SQL. Você pode também enviar comandos diretamente para estas origens de dados do tipo OLE DB e utilizar o resultado como tabelas em comandos Transact-SQL. O uso de Linked Servers oferece as seguintes vantagens:
...