Ir para conteúdo

Arquivado

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

enthroned

Centralização de tabela geograficamente distribuída

Recommended Posts

Prezados

preciso centralizar os dados do seguinte cenário:

http://imageshack.us/photo/my-images/140/desenho1t.png/

 

Mais informações:

- As cidades e o central estão conectados por link próprio. Este link não deveria cair, mas pode acontecer esporadicamnete de estar fora.

- Em cada uma das cidades existe uma tabela e preciso centralizar os dados delas em uma tabela única do servidor "Central", ou seja, agrupar os dados de todas nesta única tabela do servidor central.

- Notem que é somente UMA tabela, não é todo o banco.

- A tabela centralizada será somente-leitura, no entanto este banco possui outras tabelas que são escritas pelos usuários locais.

- A replicação não precisa ser síncrona, mas é desejável que a atualização ocorra em menos de 1 hora.

- Eu não posso usar ODI nem Golden Gate.

 

Quais as soluções que vocês conhecem para isso?

- Pensei em fazer tudo manual usando trigger's e dblink. A tabela das cidades teria uma trigger e, a cada Insert/Update/Delete, conectaria via dblink no Central e faria a atualização.O que acham?

 

Alguma outra sugestão?

 

 

Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

A atualização não deve ter de ser online visto que é um DW (ou parece).

 

Um job noturno poderia ler as tabelas via dblink e atualizar a tabela principal.

 

Ficaria simples e funcional.

Compartilhar este post


Link para o post
Compartilhar em outros sites

A atualização não deve ter de ser online visto que é um DW (ou parece).

 

Um job noturno poderia ler as tabelas via dblink e atualizar a tabela principal.

 

Ficaria simples e funcional.

 

 

No caso a sugestão é fazer manual via dblink então.

 

São muitos dados, por isso pensei em ler de hora em hora.

Se deixar tudo no job noturno é provável que não dê tempo suficiente para atualizar tudo.

 

Valeu!

Compartilhar este post


Link para o post
Compartilhar em outros sites

O Job não precisa ser noturno pode rodar de x em x minutos só tome um cuidado, crie uma tabela de controle com um registro.

 

controle
--------
flag number(1)

 

No job faça

 

begin
 update contrele set flag = 1 where flag = 0;
 commit;
 if sql%rowcount > 0 then /*estava livre, segue o job*/
    /*
    processo do job
    */
    update contrele set flag = 0;/*libera acesso*/
 commit;
 else/*estava preso, nao faz nada*/
   null;
 end if;
end;

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.