Atenção: esse artigo tem um vídeo complementar. Clique e assista!
De que se trata o artigo:
O artigo apresenta como consultar informações de um banco de dados remoto utilizando o recurso Linked Server do SQL Server 2008 e Heterogeneous Services do Oracle 10g. Para isso, exemplos práticos são descritos. Ao final, é apresentado como criar um link entre duas instâncias do SQL Server, consultar registros de uma base de dados Oracle e como fazer com que o Oracle obtenha dados do SQL Server.
Para que serve:
O artigo auxilia DBAs na implantação de links em base de dados no SQL Server 2008 e Oracle 10g, apresentando os principais mecanismos para executar consultas remotas entre estes SGBDs por meio de exemplos práticos e de fácil acompanhamento por parte dos leitores.
Em que situação o tema é útil:
Em um ambiente distribuído, os links entre banco de dados em servidores separados é um requisito essencial em qualquer organização onde o mesmo poderá ser acessado por meio de uma única transação ou consulta. O objetivo com os links de banco de dados é permitir o acesso aos dados por pessoas autorizadas de maneira transparente para o usuário.
O SQL Server 2008 e o Oracle 10g oferecem mecanismos para se trabalhar com consultas remotas. Neste artigo, será apresentado como o SQL Server pode consultar informações de outra instância do SQL Server e como ele pode consultar dados de uma instância do Oracle 10g e vice-versa.
Para isso, serão mostrados exemplos que possibilitarão o entendimento de forma simples e fácil sobre como podemos consultar informações de banco de dados localizados em servidores diferentes. Para isso, será utilizada uma facilidade no SQL Server 2008 (linked Server) e Oracle 10g (heterogeneous services), de maneira que as informações sejam retornadas de maneira transparente para o usuário final.
Bancos de Dados Distribuidos
A implementação de um banco de dados distribuído pode envolver diversos servidores de banco de dados corporativos que executam operações que sejam capazes de replicarem dados entre os diversos SGBDs de uma determinada empresa, que podem ou não estar em lugares distintos (Figura 1). Todo banco de dados suporta aplicações clientes locais, assim como também tem a capacidade de se comunicar com outros bancos de dados que façam parte da mesma rede. Se um dos servidores envia uma solicitação de banco de dados para outro servidor, o servidor que envia a solicitação funciona como um cliente, e o servidor que recebe deverá ser capaz de executar as instruções SQL que é passada para depois retornar o resultado positivo ou as condições de erro ao emissor.
Figura 1. Arquitetura Servidor / Servidor
Consultas Remotas
Para que seja possível executar uma consulta remota, devemos primeiramente ter em mente o banco de dados alvo a ser consultado. Para que isso seja possível, um link de banco de dados deve ser criado no banco de dados de origem da consulta. O link de banco de dados especifica o nome do serviço para o banco de dados remoto e também pode especificar o nome de usuário com o qual o mesmo irá se conectar no banco de dados remoto. Quando um link de banco de dados é referenciado por uma instrução SQL, o banco de dados no servidor local é responsável por abrir uma sessão no banco de dados remoto para em seguida executar a instrução SQL passada, e nessa mesma sessão retornar os dados.
Os servidores vinculados, como são comumente chamados no SQL Server, são capazes de oferecer algumas vantagens, por exemplo: acesso ao servidor remoto, onde ele deve apontar para o nome do Servidor e logo depois especificar o nome do usuário que irá se conectar na instância remota. Além disso, ele é capaz de emitir consultas e operações sobre as fontes de dados de uma empresa e ter a capacidade de lidar com diversas fontes de dados da mesma forma, tornando o processo transparente para o usuário final.
Mecanismos de Vínculo do SQL Server e do Oracle
Um link de banco de dados do SQL Server pode ser feito através do mecanismo conhecido como Linked Server, e no Oracle podemos utilizar o recurso chamado de Database Link. O Link de banco de dados possibilita o acesso a objetos de outro banco de dados seja ele SQL Server ou Oracle. Esse tipo de sistema é conhecido como sistema de banco de dados distribuídos e pode ser:
· Homogêneo quando acessa outros bancos de dados que sejam igual ao banco de dados local, como por exemplo, duas instâncias do SQL Server, e;
· Heterogêneo quando acessam outros tipos de banco de dados, como por exemplo o SQL Server consulta entidades de um banco de dados Oracle.
As próximas seções descreverão um pouco sobre cada mecanismo citado.
Conhecendo o Linked Server do SQL Server
O Linked Server do SQL Server tem a definição de servidor vinculado onde ele especifica dois objetos:
· Um provedor OLE DB;
...