Conexão com o banco remoto

DBA Geral (instalação, configuração do banco, scripts do Sql*Plus, shell scripts, batch scripts, etc...)
Responder
priajf
Rank: DBA Pleno
Rank: DBA Pleno
Mensagens: 297
Registrado em: Ter, 21 Dez 2010 8:45 am
Localização: Florianopolis

Boa tarde,
Como poderia fazer a seguinte conexão.

Banco/Sistema Local, conectar, com Banco/Sistema de outro local.
POr exemplo. o Sistema de São Paulo, Se conectar com o Sistema do Rio de Janeiro.
Att
Avatar do usuário
stcoutinho
Moderador
Moderador
Mensagens: 850
Registrado em: Qua, 11 Mai 2011 5:15 pm
Localização: são Paulo - SP

Olá priajf,

Caso os bancos estejam em uma mesma rede, você poderia criar um DBLINK no banco de "São Paulo" apontando para o banco de "Rio de Janeiro".

Digamos que você deseje criar um DBLINK no banco "SP".

Esta seria uma sintaxe simples para você criar um DBLINK privado (que só vale para o usuário em que você criou o mesmo):

Selecionar tudo

create database link [NOME_DBLINK]
  connect to [USUARIO_REMOTO_RJ] identified by [SENHA_USUARIO_REMOTO_RJ]  
         using '[NOME_SERVICO_RJ_TNSNAMES]';
Ex: create database link DB_RJ
connect to SCOTT identified by "Oracle2010"
using 'BASE_RJ.WORLD';

Esta seria uma sintaxe simples para você criar um DBLINK público (que só vale para o usuário em que você criou o mesmo):

Selecionar tudo

create PUBLIC database link [NOME_DBLINK]
  connect to [USUARIO_REMOTO_RJ] identified by [SENHA_USUARIO_REMOTO_RJ]  
         using '[NOME_SERVICO_RJ_TNSNAMES]';
Às vezes, você precisa criar o nome do DBLINK exatamente com o "service name" do banco remoto. Se por exemplo o "service_name" de RJ é "xptorj32", você precisa criar o DBLINK com este nome na base SP.

Quando você cria o DBLINK na base SP, você precisa informar um "usuário de banco"/"senha" que realmente existam na base de RJ.

Com relação ao "nome servico rj tnsnames" você precisa editar o arquivo "TNSNAMES.ORA" do SERVIDOR DE BANCO DE DADOS de SP e adicionar a "string de conexão" relativo à base de RJ.

No mais, sempre tome cuidado ao utilizar o DBLINK. Se você desenvolver alguma rotina PL/SQL para replicação de dados, sempre tome o cuidado de colocar verificações em seu código PL/SQL (se o DBLINK está OK, se uma carga foi transferida com sucesso, etc). Em rotinas de replicação, eu geralmente costumo armazenar os dados em "tabelas de saída" (ex: SP) e "tabelas entrada" (ex: RJ), e desenvolvo rotinas para replicar os dados entre estas tabelas e só a partir daí alimentar as tabelas finais dos bancos.

Agora, se os bancos não estiverem em uma mesma rede ou - se estiverem - a performance for ruim, talvez os outros foristas do GLUFKE possam dar alternativas para você.

Abraços e boa sorte,

Sergio Coutinho
nor.dbajunior
Rank: Estagiário Sênior
Rank: Estagiário Sênior
Mensagens: 9
Registrado em: Qui, 02 Dez 2010 10:32 pm
Localização: cuiaba

Bom aproveitando o fórum
01 Tem um banco de dados de terceiros a qual possuo apenas select nas tabelas
02 O banco da terceirzada é Mysql e esta geograficamente distante, inclusive para acessar é um ip publico 200.xxx.
03 O Nosso banco é Oracle 11gR2.
Todo fim de semana acesso via workbrench e extraio os dados via insert e rodo no nosso banco oracle.
Preciso automatizar esta tarefa, alguém tem uma ideia ?.
Pensei em criar uma procedure para inserir estes dados e agendar com um job.
O problema é fui configurar um gateway via odbc e não consegui.
Avatar do usuário
fbifabio
Moderador
Moderador
Mensagens: 199
Registrado em: Ter, 22 Fev 2011 1:51 pm
Localização: São Paulo - SP
Contato:
Fábio Prado
www.fabioprado.net

@nor.dbajunior

Segue abaixo o link de um artigo que eu escrevi após fazer algo parecido com a sua necessidade. Eu precisava criar um dblink no Oracle para executar uma stored procedure do Mysql. Siga o procedimento do artigo e qualquer dúvida deixe um comentário lá:
http://www.fabioprado.net/2013/12/crian ... essar.html


[]s
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 9 visitantes