Início > Oracle > Criação/Administração de DBLink`s Oracle

Criação/Administração de DBLink`s Oracle

Bom dia Galera Hoje eu vou falar um pouco sobre DBlink, assim como cria-lo e administra-lo, segue:

Um database link é um objeto criado em um banco de dados que possibilita o acesso a objetos de outro banco de dados.

Criando o Database Link:

CREATE DATABASE LINK nome_do_dblink
CONNECT TO usuário_banco_remoto IDENTIFIED BY senha
USING ‘connect_string’;

Há a possibilidade de criação de DBlink privado e publico, segue:

CREATE DATABASE LINK (Cria um DataBase Link Privado);
CREATE PUBLIC DATABASE LINK (Cria um DataBase Link Publico);

O valor especificado na cláusula USING é a string de conexão para o banco de dados remoto, a connect string precisa estar definida no tnsnames.ora.

Por Exemplo:

PRODUC = (DESCRIPTION = (ADDRESS = (COMMUNITY = tcp.world)
(PROTOCOL = TCP) (Host = fenix) (Port = 1521))
(CONNECT_DATA = (SID = PRODUC) (GLOBAL_NAME = PRODUC.com.br)
(SERVER = DEDICATED)))

Global name podemos pegar as informações através do select:

select GLOBAL_NAME from GLOBAL_NAME;

Administração

Verificar os DBLink`s, segue select para verificação de todos os DBLink`s do banco:

set linesize 500
set pagesize 1000
col DB_LINK for a40
col HOST for a20
select OWNER, DB_LINK, USERNAME, HOST,
to_char(CREATED,’MM/DD/YYYY HH24:MI:SS’) Criacao
from dba_db_links
order by OWNER, DB_LINK;

A SYS.LINK$ é uma tabela interna do banco de dados que contém todas as informações sobre db_links do banco de dados

SQL> desc SYS.LINK$
Nome
————————-
OWNER#
NAME
CTIME
HOST
USERID
PASSWORD
FLAG
AUTHUSR
AUTHPWD

Observem o campo PASSWORD: ele contém a senha do usuário utilizado no dblink porém só funcionaria no banco 8i e 9i, aonde que aparecerá a senha do DBLINK e você poderia pegar esta senha, segue:

SQL> SELECT NAME,HOST,USERID,PASSWORD FROM SYS.LINK$;
NAME                      HOST       USERID     PASSWORD
————————- ———- ———- ——————–
TESTE.BR.ORACLE.COM     TESTE       VITOR         ORACLE

SQL> SELECT ‘create ‘||DECODE(U.NAME,’PUBLIC’,’public ‘)||’database link ‘||CHR(10)||DECODE(U.NAME,’PUBLIC’,Null, U.NAME||’.’)|| L.NAME||chr(10)||’connect to ‘|| L.USERID || ‘ identified by “‘||L.PASSWORD||'” using ”’ || L.host || ”’;’ AS “CREATE DBLINKS” FROM sys.link$ L, sys.user$ U WHERE L.OWNER# = U.USER#;

CREATE DBLINKS
——————————————————–
create database link VITOR.TESTE.BR.ORACLE.COM connect to VITOR identified by “ORACLE” using ‘LAB1’;

Em bases 10g para você pegar o DBLINK para criar em outro ambiente sem saber a senha, seria utilizando o data pump

expdp sys/oracle SCHEMAS=VITOR INCLUDE=DB_LINK DUMPFILE=vitor_dblink.dmp DIRECTORY=DATA_PUMP_DIR

E importar o dump para a outra base, se quiser alterar o owner você pode usar o remap_schema, segue:

impdp sys/oracle REMAP_SCHEMA=VITOR:SCOTT INCLUDE=DB_LINK DUMPFILE=vitor_dblink.dmp

Agora para testar o DBLink, segue:

select * from dual@dblink

Dropar DBLink:

drop database link dblink;

Bom espero ter ajudado!!

Abraços

Categorias:Oracle
  1. Cristiano
    03/23/2012 às 19:50

    Valeu mesmo! Muito obrigado por compartilhar seus conhecimentos, me ajudou e muuuito.
    Sou estudante de banco de dados e tava quebrando a cabeça para consultar os db_links agora com sua ajuda eu sei..hehe =D
    valeu mesmo!
    abraço!

  2. Rodolfo
    04/22/2013 às 16:51

    Cara consegui criar o DBLINK mais quando vou fazer o select utilizando ele aparece a seguinte mensagem

    10:50:23 ORA-12514: TNS:listener does not currently know of service requested in connect descriptor

    Sabe oque pode ser ?

    Desde ja muito obrigado.

  1. No trackbacks yet.

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: