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
2019-2 - BD I - Aula 02 - Camadas de aplicação a Banco de Dados e Introd MER
Integração de bases de dados através do Oracle DBLink
1. Instituto Nacional de Telecomunicações - INATEL
Oracle DBLink
Danilo Braga
ICC – Software II
http://goo.gl/uF3iuy
2. Definição
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
http://goo.gl/1ax99P
objetos em um banco externo B
3. Para que “linkar”
Bancos de dados?
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
4. Cenário: uma
aplicação acessa
mais de um banco
que não se
relacionam entre si.
Nenhum problema!
database A
select * from A.table_1
http://goo.gl/VONNDl http://goo.gl/CZ3QYg
database B
select * from B.table_2
5. 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
INSERT INTO B.table_2 (
select * from A.table_1 )
database A
database B
SELECT * FROM
A.table_1 JOIN B.table_2B.table_2
select * from A.table_1
select * from
http://goo.gl/VONNDl
6. Aplicação com acesso a
duas bases de dados
BD Principal
•
•
•
•
Clientes
Contratos
Estoque
Entrega ...
BD de Reports/BI
• Dados agrupados
• Normalmente D-1
http://goo.gl/VONNDl http://goo.gl/CZ3QYg
Módulo que possui acesso
somente ao BD de Reports
• 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
7. Aplicação com acesso a
duas bases de dados
Módulo que possui acesso
somente ao BD de Reports
Com DB Link evita-se
acessos desnecessários
ao BD
BD Principal
•
•
•
•
Clientes
Contratos
Estoque
Entrega
BD de Reports/BI
• Dados agrupados
• Normalmente D-1
http://goo.gl/VONNDl http://goo.gl/CZ3QYg
• 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
8. Criação do DBLink
CREATE PUBLIC DATABASE LINK
mylink
CONNECT TO
remote_username
IDENTIFIED BY
A
B
mypassword
USING
uma das
'myserver:1521/MYSID'; Esta é apenascriar um DB
formas de se
http://goo.gl/uuNyzH
http://goo.gl/CZ3QYg
Link, existem outras, que
levam em conta
principalmente questões de
10. Uso com sinônimo
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;
http://goo.gl/RklCeU
11. Integração com outros provedores
Oracle -> Oracle
– Ainda bem que funciona!
Oracle -> MySql
Demais provedores
somente consultas
SQL-ANSI
– 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 ;
http://goo.gl/1sYZTL