Bom dia estou desenvolvendo uma aplicação que realiza replicação
bidirecional entre bancos de dados, ainda não esta pronta, estou refinando
alguns aspectos mas já esta funcional e em breve deve estar disponivel para
download. Demosntrativo no link

http://www.youtube.com/watch?v=Z7_WCDLVh_o



Aplicação desenvolvida em java com sockets, threds e triggers.


2009/10/26 <[email protected]>

> Send pgbr-geral mailing list submissions to
>        [email protected]
>
> To subscribe or unsubscribe via the World Wide Web, visit
>
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
> or, via email, send a message with subject or body 'help' to
>        [email protected]
>
> You can reach the person managing the list at
>        [email protected]
>
> When replying, please edit your Subject line so it is more specific
> than "Re: Contents of pgbr-geral digest..."
>
>
> Tópicos de Hoje:
>
>   1. Re: Sincronizar bancos de dados (Professador de Idéias)
>   2. Re: Sincronizar bancos de dados (Tarcísio Sassara)
>   3. Re: Sincronizar bancos de dados (Professador de Idéias)
>   4. Re: Sincronizar bancos de dados (Tarcísio Sassara)
>   5. Re: Sincronizar bancos de dados (Professador de Idéias)
>   6. Ter uma tabela com ordem sempre mantida (Rodrigo Sperb)
>
>
> ----------------------------------------------------------------------
>
> Message: 1
> Date: Sun, 25 Oct 2009 11:21:08 -0300
> From: Professador de Idéias <[email protected]>
> Subject: Re: [pgbr-geral] Sincronizar bancos de dados
> To: Comunidade PostgreSQL Brasileira
>        <[email protected]>
> Message-ID:
>        <[email protected]>
> Content-Type: text/plain; charset="iso-8859-1"
>
> Obrigado Fabrízio,
> Já li o artigo do Fábio Telles, inclusive postei um comentário...
> É algo mais complicado que eu pensei, tem um projeto descrito no link
> abaixo
>
> http://wiki.postgresql.org.br/Palestras_do_PGCon_Brasil_2008?action=AttachFile&do=get&target=pgcon2008-wagner.pdf
> interessante que remete a um programa pago, mas pela experiência relatada,
> é
> muito difícil, como diz o Fábio, a maioria das soluções são sempre o
> contorno...
> Estou desanimamado....
> Acho que os programadores de bd deveriam investir neste caminho, acho
> queria
> a solução para muito problemas de disponibilidade e backup...
> Especificamente sobre a sincronização com os notebooks, será que tem alguma
> solução?
>
> Professador
>
> 2009/10/24 Fabrízio de Royes Mello <[email protected]>
>
> >
> > 2009/10/24 Professador de Idéias <[email protected]>
> >
> > Prezados amigos,
> >> É possível um banco de dados que funcione da seguinte maneira:
> >> uma empresa com filiais em todos os estados que tenham vendedores que
> >> trabalhem com seu laptops off line. O vendedor tem uma base de dados que
> ao
> >> sair de manhã sincroniza com a filial, inclue na base da filial novos
> >> pedidos e atualiza sua base...
> >> a filial, por sua vez, sincroniza com a central. A maioria dos dados
> devem
> >> estar nos notebook dos vendedores para leitura e escrita...
> >> inicialmente, é  razoável que os dados dos venderes estejam com um dia
> de
> >> atraso, quando os recursos de rede e disponibilidade dos servidores
> forem
> >> crescendo o tempo diminui...
> >> Dúvidas:
> >> É possivel isso no posgres?
> >> Qual ferramenta? por onde começo as buscas?
> >> Seria viável do ponto de vista da capacidade de 20 vendedores por filial
> >> sincronizar no período de 1 hora. com uma base aproximada de 50.000
> clientes
> >> e 400 pedidos por dia.
> >> A questão da segurança dos dados nos notebooks?
> >>
> >>
> >
> > Pelo que pude perceber o que você necessita é de Replicação Multi-Master
> > Assíncrona... certo???
> >
> > É um assunto bem polêmico e inúmeras vezes discutido aqui na lista...
> seria
> > interessante dares uma lida no ótimo artigo do Sr. Fábio Telles [1] que
> > considera vários pontos a respeito da solução que você deseja
> implementar.
> >
> > Uma solução nessas é possível sim... tenho um cliente que usa PostgreSQL
> e
> > tem várias filias que sincronizam com a Matriz (Replicacao Multi-Master
> > Assincrona) mas a solução foi toda construida por ele... e focada na
> > aplicação dele... não faz uso de nenhuma ferramenta de replicação do
> > PostgreSQL... e para o cenário dele funciona adequadamente... mas a
> > aplicação dele é preparada para isso (garantia de pks, sequences, entre
> > outros)...
> >
> > Para encurtarmos caminho dá uma lida no artigo [1], faça suas
> ponderações,
> > e retorne com suas dúvidas...
> >
> >
> > [1]
> >
> http://www.midstorm.org/~telles/2009/07/06/a-lenda-da-replicacao-multimaster-sincrona-em-bases-distribuidas/<http://www.midstorm.org/%7Etelles/2009/07/06/a-lenda-da-replicacao-multimaster-sincrona-em-bases-distribuidas/>
> <
> http://www.midstorm.org/%7Etelles/2009/07/06/a-lenda-da-replicacao-multimaster-sincrona-em-bases-distribuidas/
> >
> >
> > Cordialmente,
> > --
> > Fabrízio de Royes Mello
> > >> Blog sobre TI: http://fabriziomello.blogspot.com
> >
> > _______________________________________________
> > pgbr-geral mailing list
> > [email protected]
> > https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
> >
> >
> -------------- Próxima Parte ----------
> Um anexo em HTML foi limpo...
> URL:
> http://listas.postgresql.org.br/pipermail/pgbr-geral/attachments/20091025/f2098d5f/attachment-0001.htm
>
> ------------------------------
>
> Message: 2
> Date: Sun, 25 Oct 2009 16:12:37 -0200
> From: Tarcísio Sassara <[email protected]>
> Subject: Re: [pgbr-geral] Sincronizar bancos de dados
> To: Comunidade PostgreSQL Brasileira
>        <[email protected]>
> Message-ID:
>        <[email protected]>
> Content-Type: text/plain; charset=ISO-8859-1
>
> Você pode usar uma chave do tipo UUID. [1]
> Com o UUID você elimina o conflito que pode ocorrer com chaves sequenciais.
>
> Exemplo do problema com chaves sequenciais:
> Antes de sair da filial, 2 vendedores atualizam os dados de seus
> notebooks de acordo com o servidor na filial.
> Digamos que 50 é o código do ultimo pedido registrado na filial,
> se 2 vendedores fizerem um pedido em seus respectivos notebooks,
> teremos conflitos, os 2 irão gerar um código 51.
> Na hora de enviar os pedidos dos notebooks para o servidor, você terá
> problemas.
>
> Com o UUID, os vendedores poderão gerar pedidos até no mesmo segundo
> que o código gerado será diferente.
>
> Então, usando UUID você não terá o problema anteriormente descrito
> e pela data do pedido é possível saber se é um novo pedido.
>
> O UUID visto na documentação do postgres é bem grande,
> mas você pode criar um esquema de unicidade que atenda o seu problema,
> unindo por exemplo:
> O (código da filial) + (código vendedor) + (data) + (numero sequencial).
> 1-1-20081025-1
> 1-1-20081025-2
> 1-1-20081025-3
> 2-5-20081025-23
>
>
> Será que desta maneira não daria certo?
>
> Abraço
>
> --
> Tarcisio F. Sassara
>
>
> ------------------------------
>
> Message: 3
> Date: Sun, 25 Oct 2009 22:44:01 -0300
> From: Professador de Idéias <[email protected]>
> Subject: Re: [pgbr-geral] Sincronizar bancos de dados
> To: Comunidade PostgreSQL Brasileira
>        <[email protected]>
> Message-ID:
>        <[email protected]>
> Content-Type: text/plain; charset="iso-8859-1"
>
> Sobre id não há problemas, pois os códigos são únicos por vendedor, filial
> e
> ano
> o problema é como sincronizar...
>
> 2009/10/25 Tarcísio Sassara <[email protected]>
>
> > Você pode usar uma chave do tipo UUID. [1]
> > Com o UUID você elimina o conflito que pode ocorrer com chaves
> sequenciais.
> >
> > Exemplo do problema com chaves sequenciais:
> > Antes de sair da filial, 2 vendedores atualizam os dados de seus
> > notebooks de acordo com o servidor na filial.
> > Digamos que 50 é o código do ultimo pedido registrado na filial,
> > se 2 vendedores fizerem um pedido em seus respectivos notebooks,
> > teremos conflitos, os 2 irão gerar um código 51.
> > Na hora de enviar os pedidos dos notebooks para o servidor, você terá
> > problemas.
> >
> > Com o UUID, os vendedores poderão gerar pedidos até no mesmo segundo
> > que o código gerado será diferente.
> >
> > Então, usando UUID você não terá o problema anteriormente descrito
> > e pela data do pedido é possível saber se é um novo pedido.
> >
> > O UUID visto na documentação do postgres é bem grande,
> > mas você pode criar um esquema de unicidade que atenda o seu problema,
> > unindo por exemplo:
> > O (código da filial) + (código vendedor) + (data) + (numero sequencial).
> > 1-1-20081025-1
> > 1-1-20081025-2
> > 1-1-20081025-3
> > 2-5-20081025-23
> >
> >
> > Será que desta maneira não daria certo?
> >
> > Abraço
> >
> > --
> > Tarcisio F. Sassara
> > _______________________________________________
> > pgbr-geral mailing list
> > [email protected]
> > https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
> >
> -------------- Próxima Parte ----------
> Um anexo em HTML foi limpo...
> URL:
> http://listas.postgresql.org.br/pipermail/pgbr-geral/attachments/20091025/f22f84d3/attachment-0001.htm
>
> ------------------------------
>
> Message: 4
> Date: Mon, 26 Oct 2009 08:13:19 -0200
> From: Tarcísio Sassara <[email protected]>
> Subject: Re: [pgbr-geral] Sincronizar bancos de dados
> To: Comunidade PostgreSQL Brasileira
>        <[email protected]>
> Message-ID:
>        <[email protected]>
> Content-Type: text/plain; charset=ISO-8859-1
>
> 2009/10/25 Professador de Idéias <[email protected]>:
> > Sobre id não há problemas, pois os códigos são únicos por vendedor,
> filial e
> > ano
> > o problema é como sincronizar...
>
> Meu email anterior então foi desnecessário. =)
>
> Para sincronizar você pode criar scripts para isso.
> stored procedures nos notebooks conectam com o servidor da filial e
> enviam os dados.
> Depois de criar a stored procedure que envia os dados para o servidor,
> você pode criar
> um arquivo .bat que usa o psql para chamar a procedure.
> Então, como um arquivo .bat você pode rodar a atualização com 1 click.
> É possível conectar em um banco de dados por outro usando o "dblink". [1]
>
>
>
> [1] http://www.postgresql.org/docs/current/static/dblink.html
>
> --
> Tarcisio F. Sassara
>
>
> ------------------------------
>
> Message: 5
> Date: Mon, 26 Oct 2009 09:22:42 -0300
> From: Professador de Idéias <[email protected]>
> Subject: Re: [pgbr-geral] Sincronizar bancos de dados
> To: Comunidade PostgreSQL Brasileira
>        <[email protected]>
> Message-ID:
>        <[email protected]>
> Content-Type: text/plain; charset="iso-8859-1"
>
> Tarcísio,
> como são estes stored procedures? os dados são gravados em tabelas normais?
> como é que ele sabe que este dado de ser enviado e o que já foi gravado na
> filial não deve ser mandando?
> explique melhor..
>
>
>
> 2009/10/26 Tarcísio Sassara <[email protected]>
>
> > 2009/10/25 Professador de Idéias <[email protected]>:
> > > Sobre id não há problemas, pois os códigos são únicos por vendedor,
> > filial e
> > > ano
> > > o problema é como sincronizar...
> >
> > Meu email anterior então foi desnecessário. =)
> >
> > Para sincronizar você pode criar scripts para isso.
> > stored procedures nos notebooks conectam com o servidor da filial e
> > enviam os dados.
> > Depois de criar a stored procedure que envia os dados para o servidor,
> > você pode criar
> > um arquivo .bat que usa o psql para chamar a procedure.
> > Então, como um arquivo .bat você pode rodar a atualização com 1 click.
> > É possível conectar em um banco de dados por outro usando o "dblink". [1]
> >
> >
> >
> > [1] http://www.postgresql.org/docs/current/static/dblink.html
> >
> > --
> > Tarcisio F. Sassara
> > _______________________________________________
> > pgbr-geral mailing list
> > [email protected]
> > https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
> >
> -------------- Próxima Parte ----------
> Um anexo em HTML foi limpo...
> URL:
> http://listas.postgresql.org.br/pipermail/pgbr-geral/attachments/20091026/41701927/attachment-0001.htm
>
> ------------------------------
>
> Message: 6
> Date: Mon, 26 Oct 2009 14:29:17 +0100
> From: Rodrigo Sperb <[email protected]>
> Subject: [pgbr-geral] Ter uma tabela com ordem sempre mantida
> To: [email protected]
> Message-ID:
>        <[email protected]>
> Content-Type: text/plain; charset="iso-8859-1"
>
> Olá a todos,
>
> Eu tenho uma função implementada em PL\PgSQL que itera sempre pegando a
> linha do topo após ordenar por uma certa coluna. Isso se repete em todas
> iterações, e como faço atualizações nessa tabela (é uma "priority queue",
> para quem é familiarizado com notação matemática...) no intermédio, não
> possa ter a ordenação pré-estabelecida e sempre pegar o topo
> simplesmente...
> Preciso reordenar sempre.
>
> Acontece que isso leva algum tempo e eu preciso melhorar a performance do
> meu algoritmo. Ele é parte da minha tese de mestrado aqui na Holanda. Meu
> orientador me comentou que poderíamos ter as posições pré-definidas e fazer
> atualizações "inteligentes", mantendo cada registro na devida posição que
> deve ocupar... Mas ele ainda não me disse nada de como fazer. Queria,
> então,
> saber se alguém tem alguma idéia de como se pode fazer algo assim?
>
> Desde já agradeço.
>
> Rodrigo Sperb
> -------------- Próxima Parte ----------
> Um anexo em HTML foi limpo...
> URL:
> http://listas.postgresql.org.br/pipermail/pgbr-geral/attachments/20091026/cbe69589/attachment.htm
>
> ------------------------------
>
> _______________________________________________
> pgbr-geral mailing list
> [email protected]
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>
>
> Fim da Digest pgbr-geral, volume 32, assunto 79
> ***********************************************
>



-- 
Att.
Sandr[0]
msn:[email protected] <msn%[email protected]>
http://code.google.com/u/sandro.ci02/
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a