Upload
danilo-braga
View
1.121
Download
0
Embed Size (px)
DESCRIPTION
Uma apresentação dos conceitos iniciais da ferramenta Oracle DBLink. Esta ferramenta facilita a distribuição dos dados em várias instâncias, permitindo a movimentação e a busca em bases de dados distintas
Citation preview
Danilo BragaICC – Software II
Oracle DBLink
Instituto Nacional de Telecomunicações - INATEL
http://goo.gl/uF3iuy
O DB Link permite a comunicação
entre um BD Oracle com outro BD,
não necessariamente Oracle
A conexão é “one-way”, ou seja,
possibilita um usuário local logado
num banco A acessar objetos em
um banco externo B
Definição
http://goo.gl/1ax99P
Aplicações podem utilizar de mais de uma instância
de banco de dados
É possível distribuir dados em locais distintos
Mover dados entre várias bases
Realizar buscas em mais de uma base no mesmo
select
- Isso mesmo! joins entre tabelas de bancos
distintos
Para que “linkar” Bancos de dados?
database Bdatabase A
select * from A.table_1 select * from B.table_2
http://goo.gl/VONNDl http://goo.gl/CZ3QYg
Cenário: uma aplicação acessa mais de um banco que não se relacionam entre si. Nenhum problema!
database Bdatabase A
select * from A.table_1 select * from B.table_2
SELECT * FROM A.table_1 JOIN B.table_2
INSERT INTO B.table_2 ( select * from A.table_1 )
http://goo.gl/VONNDl
Cenário: uma aplicação que deseja mover/buscar dados em mais de um DB.
Trazer todos os dados para a aplicação poderia acarretar em perda de performance
BD Principal
• Clientes• Contratos• Estoque• Entrega ...
BD de Reports/BI
• Dados agrupados
• Normalmente D-1
• O Relatório contém, além dos dados do DB de report, informações de cadastro de clientes, por exemplo, que estão no DB Principal
Aplicação com acesso a duas bases de dados
Módulo que possui acesso somente ao BD de Reports
http://goo.gl/VONNDl http://goo.gl/CZ3QYg
A tabela de clientes não foi replicada entre as bases por
questões de redundância
Com DB Link evita-se acessos desnecessários
ao BD
http://goo.gl/VONNDl http://goo.gl/CZ3QYg
Módulo que possui acesso somente ao BD de Reports
BD Principal
• Clientes• Contratos• Estoque• Entrega
BD de Reports/BI
• Dados agrupados
• Normalmente D-1
Aplicação com acesso a duas bases de dados
• O Relatório contém, além dos dados do DB de report, informações de cadastro de clientes, por exemplo, que estão no DB Principal
A tabela de clientes não foi replicada entre as bases por
questões de redundância
CREATE PUBLIC DATABASE LINK mylink
CONNECT TO remote_username
IDENTIFIED BY mypassword
USING 'myserver:1521/MYSID';
Criação do DBLink
http://goo.gl/uuNyzHhttp://goo.gl/CZ3QYg
A B
Esta é apenas uma das formas de se criar um DB Link, existem outras, que levam em conta principalmente questões de segurança.
SELECT T1.NAME, T2.CONTRACT_ID
FROM TABLE_1 T1,TABLE_2@mylink T2
WHERE T1.ID = T2.ID;
Utilização do DBLink
CREATE PUBLIC SYNONYM TABLE_2 FOR TABLE_2@mylink;
SELECT T1.NAME, T2.CONTRACT_ID
FROM TABLE_1 T1,TABLE_2 T2
WHERE T1.ID = T2.ID;
Aurélio
Uso com sinônimo
http://goo.gl/RklCeU
Oracle -> Oracle
– Ainda bem que funciona!
Oracle -> MySql
– Necessária a configuração de parâmetros em
arquivos de configuração
Oracle -> PostgreSQL / Oracle -> SqlServer
– Exige a instalação de plugins externos (terceiros)
– Encontrei mais gente falando dos erros, do que como
fazer ;
Integração com outros provedores
Demais provedores somente consultas
SQL-ANSI
http://goo.gl/1sYZTL
Muito Obrigado!!
http://goo.gl/i3gbc9
Danilo Bragahttp://www.slideshare.net/bragadanilo
• http://www.dba-oracle.com/t_how_create_databas
e_link.htm
• http://docs.oracle.com/cd/B12037_01/server.101/
b10759/statements_5005.htm
• http://docs.oracle.com/cd/B28359_01/server.111/
b28310/ds_concepts002.htm
Links