Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

TFERREIRA

Criar Trigger oracle para tabelas de outra instancia via dblink

Recommended Posts

Bom dia pessoal, estou com um problema e não sei como resolver.
Possuo três instâncias de banco de dados oracle e dos três possuo usuário em duas instâncias CPRD, CSTBY e o terceiro SISTPRD eu utilizo um usuário publico, porém este me permite escrita, já nos dois primeiros meu acesso é somente leitura.

Agora o problema, o banco CSTBY é atualizado na madrugada não tem horário certo e nem sempre a carga nele é efetuada completamente os dados da atualização vem do CPRD eu vejo as instâncias deles no SISTPRD via dblink.
Do CSTBY quando atualizado corretamente, eu rodo outra carga atualizado algumas tabelas no SISTPRD para que meus trabalhos possam ser efetuados corretamente, o que eu queria era poder criar Trigger no SISTPRD para monitorar as tabelas CSTBY via dblink (público) para que assim que a carga da madrugada fosse feita as tabelas do SISTPRD começassem a atualização automática, não consigo criar um Trigger que faça o monitoramento de outra instancia,já tentei fazer mas não tive sucesso. O erro que dá é que o banco remoto não aceita comando DDL.

Aguardo a ajuda de vocês.

Compartilhar este post


Link para o post
Compartilhar em outros sites

@TFERREIRA

 

Como é feita a atualização ?

Como o dado origem é marcado para não ser copiado novamente ?

 

Penou na hipótese de um Scheduler (Job) , disparado do Banco destino obtendo os Dados dos BDs origem via dblink.

 

O "controle" ficaria com o BD destino.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu pensei em utilizar um Job para agendar a carga, mas existe o problema da não atualização e com isso a inconsistência dos dados, por isso pensei em utilizar o trigger, mas existe o problema da não possibilidade de escrita nas outras instâncias, não sei se isso interfere em algo, mas não estou conseguindo resolver o problema.

 

Enquanto a atualização dos banco CSTBY é o lado mais obscuro do meu trabalho nós não sabemos de nada a respeito, só é informado por email se foi atualizado ou não, mais nada.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Seu maior problema parece ser as permissões de escrita , para a questão na atualização ser mais recente a trigger é a melhor solução mas ela pode trazer problema de performance e se deve pensar no caso de uma instância estar fora por algum motivo.

 

Na minha modesta opinião se devem responder as seguintes questões antes :

 

Quão crítico é esta sincronização ?

Qual o tempo máximo de defasagem que podemos ter ?

Quais os problemas de segurança envolvidos ?

Quem mais usa (este é o dono) isto ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu pensei na situação do banco estar fora e outras questões de segurança, mas essa lógica eu posso implementar depois. Agora, eu quero primeiramente poder fazer com que o trigger no SISTPR consiga monitorar as ações nas tabelas no CSTBY por dblink.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Uma triger é disparada por um evento na tabela, assim só a própria instãncia poder disparar a atualização.

 

No caso só uma trigger das tabelas da instância CSTBY podem fazer isto.

 

Uma solução alternativa seria as tabelas de CSTBY escreverem numa tabela auxiliar qualquer que sofreram alteração, um processo tipo job se encarregaria da sincronização lendo desta tabela para saber que processos atualizas nas demais instâncias.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.