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
