Re: [pgbr-geral] Biometria.

2013-05-16 Por tôpico izaque Maciel
Ok, pessoal, irei pesar as opções, e escolher as melhores.
Obrigado a todos.
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


[pgbr-geral] Query Lenta

2013-05-16 Por tôpico Marco Aurelio
Caros,

Gostaria da ajuda de vocês para fazer uma determinada query ficar mais
rápida.

Query:
SELECT docnumero FROM frete01 WHERE docserie = '  U2' AND (codfilorig = 94
OR codfilorig=95 OR codfilorig=98 OR codfilorig=99 OR codfilorig=100 OR
codfilorig=118 ) AND datalancam IS NOT NULL ORDER BY datalancam DESC,
docserie DESC, docnumero DESC LIMIT 1

Explain:
Limit  (cost=0.00..10.27 rows=1 width=23)
  -  Index Scan Backward using frete01_x01 on frete01
 (cost=0.00..321102.79 rows=31270 width=23)
Index Cond: (docserie = '  U2'::bpchar)
Filter: (((codfilorig = 94::numeric) OR (codfilorig = 95::numeric)
OR (codfilorig = 98::numeric) OR (codfilorig = 99::numeric) OR (codfilorig
= 100::numeric) OR (codfilorig = 118::numeric)) AND (datalancam IS NOT
NULL))

Se eu tiver um indice por docserie + codfilorig ajuda ?

Desde já agradeço a atenção recebida.

-- 
Marco Aurélio Ventura da Silva
marcoprod...@gmail.com
Prodata Informática e Cadastro LTDA
(33)3322-
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Query Lenta

2013-05-16 Por tôpico Matheus de Oliveira
On Thu, May 16, 2013 at 8:44 AM, Marco Aurelio marcoprod...@gmail.comwrote:

 Caros,

 Gostaria da ajuda de vocês para fazer uma determinada query ficar mais
 rápida.

 Query:
 SELECT docnumero FROM frete01 WHERE docserie = '  U2' AND (codfilorig = 94
 OR codfilorig=95 OR codfilorig=98 OR codfilorig=99 OR codfilorig=100 OR
 codfilorig=118 ) AND datalancam IS NOT NULL ORDER BY datalancam DESC,
 docserie DESC, docnumero DESC LIMIT 1

 Explain:
 Limit  (cost=0.00..10.27 rows=1 width=23)
   -  Index Scan Backward using frete01_x01 on frete01
  (cost=0.00..321102.79 rows=31270 width=23)
 Index Cond: (docserie = '  U2'::bpchar)
 Filter: (((codfilorig = 94::numeric) OR (codfilorig =
 95::numeric) OR (codfilorig = 98::numeric) OR (codfilorig = 99::numeric) OR
 (codfilorig = 100::numeric) OR (codfilorig = 118::numeric)) AND (datalancam
 IS NOT NULL))

 Se eu tiver um indice por docserie + codfilorig ajuda ?

 Desde já agradeço a atenção recebida.


De cara, troque o `codfilorig=X or codfilorig=Y...` por `codfilorig IN
(X,Y,Z,...)`.

Tem como mandar o EXPLAIN ANALYZE? E se possível usar o explain.depesz.com.

O que nessa query é dinâmico e o que é estático? Exemplo: datalancam IS NOT
NULL é sempre usado?

Valeu.

-- 
Matheus de Oliveira
Analista de Banco de Dados
Dextra Sistemas - MPS.Br nível F!
www.dextra.com.br/postgres
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Query Lenta

2013-05-16 Por tôpico Marco Aurelio
Caro Matheus,

Segue o EXPLAIN ANALYZE:
Limit  (cost=0.00..10.27 rows=1 width=23) (actual
time=27455.446..27455.446 rows=0 loops=1)
  -  Index Scan Backward using frete01_x01 on frete01
 (cost=0.00..320637.77 rows=31215 width=23) (actual
time=27455.417..27455.417 rows=0 loops=1)
Index Cond: (docserie = '  U2'::bpchar)
Filter: (((codfilorig = 94::numeric) OR (codfilorig = 95::numeric)
OR (codfilorig = 98::numeric) OR (codfilorig = 99::numeric) OR (codfilorig
= 100::numeric) OR (codfilorig = 118::numeric)) AND (datalancam IS NOT
NULL))
Total runtime: 27467.570 ms

O DATALANCAM IS NOT NULL é sempre usado, a serie sempre será especificada,
o que é dinamico é o CODFILORIG que poder 1 ou várias, eu criei um indice
docserie+codfilorig mas o postgresql insiste em usar um indice
datalancam+docserie+docnumer.
Uma duvida eu posso rodar um ANALYZE enquanto estão usando o banco de dados
? Eu tenho os processos agendados para serem executados a noite, mas
gostaria de saber se pode ser usado um ANALYZE durante o expediente.

Desde já agradeço a atenção recebida.



Em 16 de maio de 2013 09:00, Matheus de Oliveira
matioli.math...@gmail.comescreveu:




 On Thu, May 16, 2013 at 8:44 AM, Marco Aurelio marcoprod...@gmail.comwrote:

 Caros,

 Gostaria da ajuda de vocês para fazer uma determinada query ficar mais
 rápida.

 Query:
 SELECT docnumero FROM frete01 WHERE docserie = '  U2' AND (codfilorig =
 94 OR codfilorig=95 OR codfilorig=98 OR codfilorig=99 OR codfilorig=100 OR
 codfilorig=118 ) AND datalancam IS NOT NULL ORDER BY datalancam DESC,
 docserie DESC, docnumero DESC LIMIT 1

 Explain:
 Limit  (cost=0.00..10.27 rows=1 width=23)
   -  Index Scan Backward using frete01_x01 on frete01
  (cost=0.00..321102.79 rows=31270 width=23)
 Index Cond: (docserie = '  U2'::bpchar)
 Filter: (((codfilorig = 94::numeric) OR (codfilorig =
 95::numeric) OR (codfilorig = 98::numeric) OR (codfilorig = 99::numeric) OR
 (codfilorig = 100::numeric) OR (codfilorig = 118::numeric)) AND (datalancam
 IS NOT NULL))

 Se eu tiver um indice por docserie + codfilorig ajuda ?

 Desde já agradeço a atenção recebida.


 De cara, troque o `codfilorig=X or codfilorig=Y...` por `codfilorig IN
 (X,Y,Z,...)`.

 Tem como mandar o EXPLAIN ANALYZE? E se possível usar o explain.depesz.com
 .

 O que nessa query é dinâmico e o que é estático? Exemplo: datalancam IS
 NOT NULL é sempre usado?

 Valeu.

 --
 Matheus de Oliveira
 Analista de Banco de Dados
 Dextra Sistemas - MPS.Br nível F!
 www.dextra.com.br/postgres


 ___
 pgbr-geral mailing list
 pgbr-geral@listas.postgresql.org.br
 https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral




-- 
Marco Aurélio Ventura da Silva
marcoprod...@gmail.com
Prodata Informática e Cadastro LTDA
(33)3322-
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Material para replicação de dados Multi-master

2013-05-16 Por tôpico Fábio Thomaz
Olá Euler,

  Primeiramente muito obrigado por suas considerações!

  Baseado nas dificuldades em manter múltiplos masters sincronizados,
estive pensando em estar criando o seguinte senário:

- 1 banco na nuvem e um em cada unidade;
- Usar a replicação nativa hoje existente: Nuvem - Bancos Locais;
- Fazer alterações apenas na Nuvem, conectando o sistema pela internet;
- Direcionar a conexão para a base local apenas para consultas, estas
usadas para relatórios ou caso a conexão venha a cair, fazendo que pelo
menos o cliente possa consultar as informações no sistema até que a conexão
seja restabelecida;

  Neste caso acima eu teria que investir em banda de internet, já que todos
os registros que subirem para o servidor, irão voltar novamente para
sincronizar a base principal, passando estes registros pela rede esterna
duas vezes, o que não seria muito legal.

  Também estive pensando em liberar operações em algumas partes críticas do
sistema na base local, gerando uma PK com uma sequência de valores que ao
invés de ser incrementada, seria decrementada a partir de zero, tendo assim
uma sequência negativa. Estas, após o restabelecimento da conexão, seriam
transportadas para o servidor principal, e neste momento, receberiam uma
PK real.
  Para o uso da chave primária desta forma, estou criando os campos desta
forma:

create table nome_tabela(
  id integer NOT NULL DEFAULT nextval('nome_sequencia'::regclass),
  ...
);

  Será que existirá algum grave problema com isto?

Att,
Fábio Thomaz


Em 16 de maio de 2013 00:44, Euler Taveira eu...@timbira.com.br escreveu:

 On 15-05-2013 20:51, Fábio Thomaz wrote:
O cenário é básico: 1 matriz e 3 filiais precisando compartilhar
  informações, onde algumas destas informações (tabelas) serão únicas para
  todas as filiais, como um exemplo eu poderia dar o cadastro de produto.
 
 Não é.

Pensei em criar uma aplicação que acessasse o servidor na nuvem, mas
  não posso correr o risco de deixar a empresa sem sistema por uma
  eventual falha na rede externa.
 
Então teríamos 5 SGDB's: Nuvem (Principal), Matriz, Filial-1, Filial-2
  , Filial-3.
 
 É um cenário complexo e, se tratando de SGBD, você tem que procurar um
 cenário mais simples possível. Aconselho que veja a literatura [1][2][3]
 sobre a complexidade de um cenário com múltiplos mestres e
 principalmente sobre resolução de conflitos.

 Sobre a sua arquitetura, minimize ao máximo o número de servidores
 principais (aka master). Dependendo do seu orçamento, eu pensaria em
 investir mais em infraestrutura (a não ser que seu cliente esteja
 localizado no Amapá ou Roraima, por exemplo -- onde a disponibilidade de
 bons links é quase escassa) do que em uma solução complexa que (i) é
 frágil tecnicamente e (ii) a manutenção toma muito tempo.

 Já vou logo adiantando que não há como ter algo transparente (a não ser
 que vá adotar algum middleware perfeito) para a aplicação com esse
 cenário, ou seja, a aplicação deve ser moldada para isso.

 Sobre as soluções para Postgres, começe por [4] (está meio desatualizado
 mas ainda é uma boa fonte).

 [1]
 http://www.amazon.com/Database-Systems-Complete-Book-Edition/dp/0131873253
 [2]

 http://www.amazon.com/Database-System-Concepts-Abraham-Silberschatz/dp/0073523321
 [3]

 http://www.amazon.com/Database-Management-Systems-Raghu-Ramakrishnan/dp/0072465638
 [4]

 http://wiki.postgresql.org/wiki/Replication,_Clustering,_and_Connection_Pooling


 --
Euler Taveira   Timbira - http://www.timbira.com.br/
PostgreSQL: Consultoria, Desenvolvimento, Suporte 24x7 e Treinamento
 ___
 pgbr-geral mailing list
 pgbr-geral@listas.postgresql.org.br
 https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


[pgbr-geral] Drop FK demorado

2013-05-16 Por tôpico Luiz Carlos L. Nogueira Jr.
Pessoal,

Existe algum motivo pra um drop de uma FK demorar?
No momento o banco tinha sido reiniciado e não tinha ninguém conectado.
PG 8.4

Agradecido,
Luiz Carlos
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] programa para gerenciar

2013-05-16 Por tôpico Juliano Atanazio
Vamos lá...


Em 15 de maio de 2013 16:08, Rogério D'Andréa rolemo...@gmail.comescreveu:




 Sou leigo em postgre mas gostaria de criar uma base de dados, um
 relacionamento e um relatório bem simples.


Não querendo ser chato, postgre, como diria o Pe. Quevedo isso non
ecziste, o nome do SGBD é PostgreSQL, ou por seu apelido, que respeita
sua história: Postgres. :)
Quanto ao fato de ser leigo, seja bem vindo ao mundo PostgreSQL! Se você já
tiver uma base de SQL (a linguagem) e modelagem de dados, te ajudará
bastante.


 Vocês poderiam me ajudar em um programa que faça isso?


Creio que você deve estar se referindo a alguma ferramenta gráfica/web para
modelagem/gerenciamento...
Tem o famoso pgAdmin [1], o phpPgAdmin [2] e outros aí que não vou lembrar
agora.

[1] http://pgadmin.org/
[2] http://phppgadmin.sourceforge.net



 A outra alternativa é usarmos em nossa empresa para dar aula o Acess. Sou
 voto vencido (3x1) mas se eu levar uma solução fácil de usar seria +1 para
 vários alunos nossos.
 Conheço um pouco de mysql e já usei base em um 486. Trabalhei 1 ano com
 acess na caixa econômica para saber que ele não é legal.


Access? Definitivamente não é nada legal. Não serve para ser uma solução
profissional de banco de dados. Mas se for o caso, como na resposta
anterior utilize o LibreOffice Base, com o driver pra PostgreSQL para se
ter o mesmo efeito de facilidade.

Só pra concluir aqui te aconselho a antes de tudo, de apresentar uma
proposta, ela tem que ser solidificada. Procure não depender de ferramentas
gráficas do tipo que faz de vc um piloto de mouse.
Vai brincando no psql (cliente padrão do Postgres: modo texto), pra te
ajudar ele tem o recurso de completar comandos, auxiliará muito no
aprendizado.

Abraço!


 -- Bom dia para coisas simples voce pode usar o libreoffice base, se
 quiser mais segurança aconselho a usar o libreoffice base com banco de
 dados externo, que é justamente o que eu estou fazendo usando o Postgresql
 ou usa o mysql que você já conhece.



 ___
 pgbr-geral mailing list
 pgbr-geral@listas.postgresql.org.br
 https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Material para replicação de dados Multi-master

2013-05-16 Por tôpico Euler Taveira
On 16-05-2013 10:18, Fábio Thomaz wrote:

[evite top-posting]

 - 1 banco na nuvem e um em cada unidade;
 - Usar a replicação nativa hoje existente: Nuvem - Bancos Locais;
 - Fazer alterações apenas na Nuvem, conectando o sistema pela internet;
 - Direcionar a conexão para a base local apenas para consultas, estas
 usadas para relatórios ou caso a conexão venha a cair, fazendo que pelo
 menos o cliente possa consultar as informações no sistema até que a
 conexão seja restabelecida;
 
É um cenário mais realista.

   Neste caso acima eu teria que investir em banda de internet, já que
 todos os registros que subirem para o servidor, irão voltar novamente
 para sincronizar a base principal, passando estes registros pela rede
 esterna duas vezes, o que não seria muito legal.
 
Geralmente o inbound (entrada) *não* é taxado; somente o outbound (saída).

   Também estive pensando em liberar operações em algumas partes críticas
 do sistema na base local, gerando uma PK com uma sequência de valores
 que ao invés de ser incrementada, seria decrementada a partir de zero,
 tendo assim uma sequência negativa. Estas, após o restabelecimento da
 conexão, seriam transportadas para o servidor principal, e neste
 momento, receberiam uma PK real.
 
Fuja disso! Tecnicamente frágil.


-- 
   Euler Taveira   Timbira - http://www.timbira.com.br/
   PostgreSQL: Consultoria, Desenvolvimento, Suporte 24x7 e Treinamento
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


[pgbr-geral] Material Functions e Store procedures

2013-05-16 Por tôpico Erison Gmail
Bom dia amigos,
Venho através deste pedir ajuda com documentação, e exemplos

Tenho um sistema de gerenciamento escolar, e migrando-o de sdk, porem, estou
tentando implementar o Maximo possível de funções para o sgbd.

Imaginem que quero por exemplo, atualizar medias de uma disciplina de uma
turma, ou a media da turma geral, ou a media geral da matricula

Já fiz algumas outras funções mas estou com dificuldade em trabalhar com
laços e resultados de consultas dentro da função

Exemplo,  selecionar todas as notas de uma turma, e para cada aluno fazer a
media dele, e depois ao final a media da turma...

Agradeço qualquer ajuda, vou continuar tentando e vasculhando...

Erison


___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Drop FK demorado

2013-05-16 Por tôpico Euler Taveira
On 16-05-2013 10:46, Luiz Carlos L. Nogueira Jr. wrote:
 Pessoal,
 
 Existe algum motivo pra um drop de uma FK demorar?
 No momento o banco tinha sido reiniciado e não tinha ninguém conectado.
 PG 8.4
 
O que você quis dizer com drop de uma FK? Remover a restrição (aka
constraint) ou remover a coluna? Ambos requerem um AccessExclusiveLock
[1] na tabela, ou seja, até mesmo um SELECT na referida tabela em uma
transação em aberto pode bloquear a execução de ALTER TABLE ... DROP
CONSTRAINT. Uma outra hipótese é o autovacuum trabalhando nessa tabela.

Utilize uma das consultas em [2] para verificar quem está bloqueando o
ALTER TABLE.


[1]
http://www.postgresql.org/docs/8.4/static/explicit-locking.html#LOCKING-TABLES
[2] http://wiki.postgresql.org/wiki/Lock_dependency_information


-- 
   Euler Taveira   Timbira - http://www.timbira.com.br/
   PostgreSQL: Consultoria, Desenvolvimento, Suporte 24x7 e Treinamento
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Query Lenta

2013-05-16 Por tôpico Euler Taveira
On 16-05-2013 08:44, Marco Aurelio wrote:
 Gostaria da ajuda de vocês para fazer uma determinada query ficar mais
 rápida.
 
Cadê a definição da tabela e dos índices da mesma?

Você executou um ANALYZE na tabela envolvida antes do EXPLAIN ANALYZE?

Qual é a versão exata do PostgreSQL?

Quais os valores modificados no postgresql.conf? Vide a consulta em [1].


[1] http://wiki.postgresql.org/wiki/Server_Configuration


-- 
   Euler Taveira   Timbira - http://www.timbira.com.br/
   PostgreSQL: Consultoria, Desenvolvimento, Suporte 24x7 e Treinamento
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Material para replicação de dados Multi-master

2013-05-16 Por tôpico Alexsander Rosa
Em 15 de maio de 2013 20:51, Fábio Thomaz fabio_...@yahoo.com.br escreveu:

   Olá pessoal, sou iniciante no uso do PostgreSQL, entrei na lista
 recentemente e venho em busca de maiores informações para que eu possa
 criar um modelo que atenda um cliente.

   O cenário é básico: 1 matriz e 3 filiais precisando compartilhar
 informações, onde algumas destas informações (tabelas) serão únicas para
 todas as filiais, como um exemplo eu poderia dar o cadastro de produto.

   Pensei em criar uma aplicação que acessasse o servidor na nuvem, mas não
 posso correr o risco de deixar a empresa sem sistema por uma eventual falha
 na rede externa.

   Então teríamos 5 SGDB's: Nuvem (Principal), Matriz, Filial-1, Filial-2 ,
 Filial-3.


   Bem, com estas informações acima, os nobres colegas do grupo poderiam me
 ajudar, direcionando-me a fontes de pesquisa onde eu possa implementar este
 cenário?

 Desde já agradeço

 Att,
 Fábio Thomaz


Olhou o Bucardo?


-- 
Atenciosamente,
Alexsander da Rosa
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Material para replicação de dados

2013-05-16 Por tôpico Marcus Diogo
 Vamos lá...

 Em 15 de maio de 2013 16:08, Rogério D'Andréa rolemo...@gmail.com
 escreveu:



 Não querendo ser chato, postgre, como diria o Pe. Quevedo isso non
 ecziste, o nome do SGBD é PostgreSQL, ou por seu apelido, que respeita
 sua história: Postgres. :)
 Quanto ao fato de ser leigo, seja bem vindo ao mundo PostgreSQL! Se você já
 tiver uma base de SQL (a linguagem) e modelagem de dados, te ajudará
 bastante.


Ei Rogério tu é chato. hehehe. Mas tudo bem eu já sabia destas diferenças
só não me familiarizo com elas pois meu mundo percorre um pouco longe de bd


  Vocês poderiam me ajudar em um programa que faça isso?
 
 
 Creio que você deve estar se referindo a alguma ferramenta gráfica/web para
 modelagem/gerenciamento...
 Tem o famoso pgAdmin [1], o phpPgAdmin [2] e outros aí que não vou lembrar
 agora.

 [1] http://pgadmin.org/
 [2] http://phppgadmin.sourceforge.net


Vou testar mas elas tiram relatório? Criar base e modificar é fácil o meu
problema era criar relatório sem usar o php. Preparamos um material e ficou
muito ruim para os alunos, estou procurando outro.



  A outra alternativa é usarmos em nossa empresa para dar aula o Acess. Sou
  voto vencido (3x1) mas se eu levar uma solução fácil de usar seria +1
 para
  vários alunos nossos.
  Conheço um pouco de mysql e já usei base em um 486. Trabalhei 1 ano com
  acess na caixa econômica para saber que ele não é legal.
 
 
 Access? Definitivamente não é nada legal. Não serve para ser uma solução
 profissional de banco de dados. Mas se for o caso, como na resposta
 anterior utilize o LibreOffice Base, com o driver pra PostgreSQL para se
 ter o mesmo efeito de facilidade.


Libreoffice não rola pois sou voto vencido ainda mais acima (nivel de
gerência) conheço base já ajudei um pouco o broffice.org tempos atrás e
temos em nossa equipe outro conhecedor de libreoffice que ta me colocando é
para o acess.
Minha batata está assando por aqui. hehehe



 Só pra concluir aqui te aconselho a antes de tudo, de apresentar uma
 proposta, ela tem que ser solidificada. Procure não depender de ferramentas
 gráficas do tipo que faz de vc um piloto de mouse.
 Vai brincando no psql (cliente padrão do Postgres: modo texto), pra te
 ajudar ele tem o recurso de completar comandos, auxiliará muito no
 aprendizado.


Esta proposta não é para mim e sim para meus alunos. Já estou com muito
tempo dedicado a outras coisas como microcontroladores não daria tempo
aprender SQL na unha. :(




 Abraço!


Valeu




  -- Bom dia para coisas simples voce pode usar o libreoffice base, se
  quiser mais segurança aconselho a usar o libreoffice base com banco de
  dados externo, que é justamente o que eu estou fazendo usando o
 Postgresql
  ou usa o mysql que você já conhece.


Marcus
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Material para replicação de dados Multi-master

2013-05-16 Por tôpico Fábio Thomaz
Olá Anexsander,

  Estive fazendo um levantamento de algumas ferramentas que poderiam me
ajudar com isto, dentre as que replicam Mestre-Meste estão:

1 - Bucardo;
2 - SymmetricDS;
3 - RubyRep;
4 - Daffodil Replicator;

Algum dos colegas usa alguma destas soluções? Se sim, poderiam comentar
sobre a experiência do uso com estas ferramentas?

Att,
Fábio Thomaz
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Material para replicação de dados Multi-master

2013-05-16 Por tôpico Flavio Henrique Araque Gurgel


Em 16-05-2013 13:02, Fábio Thomaz escreveu:

Olá Anexsander,

   Estive fazendo um levantamento de algumas ferramentas que poderiam me
ajudar com isto, dentre as que replicam Mestre-Meste estão:

1 - Bucardo;
2 - SymmetricDS;
3 - RubyRep;
4 - Daffodil Replicator;

Algum dos colegas usa alguma destas soluções? Se sim, poderiam comentar
sobre a experiência do uso com estas ferramentas?



Já usei Bucardo e Rubyrep.

Ambas são programas de um homem só e tive problemas de consistência de 
replicação com o Rubyrep que *não* consegui resolver.


O Bucardo é bastante estável, mas como toda replicação multi-mestre 
exige planejamento e cuidado na implantação. Mas tenho ele em produção 
em alguns lugares com alto grau de sucesso.


Recomendo que você teste num ambiente controlado e siga adiante. Não 
existe mágica. Você terá que aprender a usar corretamente.


[]s

__
Flavio Henrique A. Gurgel
Líder de Projetos Especiais
Consultoria, Projetos  Treinamentos 4LINUX
Tel1: +55-11.2125-4747 ou 2125-4748
www.4linux.com.br
email: fla...@4linux.com.br
__
FREE SOFTWARE SOLUTIONS
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Material para replicação de dados Multi-master

2013-05-16 Por tôpico Fábio Thomaz
Olá Euler,

  Quando você diz: Fuja disso! Tecnicamente frágil., seria pela possível
falha na geração deste número sequencial negativo?

  Pois para estas tabelas pensei em ter uma sequencia normal, mas sendo
chamada através de um Trigger que iria capturar o próximo valor,
multiplicar por -1 e atribuir ao campo. Neste caso eu também terei que
padronizar algumas coisas, tipo, se o ID vier nulo do meu comento SQL de
inclusão, o banco pega o valor da sequencia e pronto, se vier com o valor
0 por exemplo, o Trigger testa o valor e gera um valor negativo.

  Há, e neste caso eu teria duas sequencias para a mesma tabela, uma
sequencia normal e outra apenas para esta ocasião dos negativos, lembrando
que seria apenas em algumas tabelas usadas em recursos que o sistema não
irá poder parar, o restante eu informo que a operação está indisponível por
problemas de comunicação com o servidor e pronto.

Att,
Fábio Thomaz
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Material Functions e Store procedures

2013-05-16 Por tôpico Osvaldo Kussama
Em 16/05/13, Erison Gmailnos...@gmail.com escreveu:
 Bom dia amigos,
 Venho através deste pedir ajuda com documentação, e exemplos

 Tenho um sistema de gerenciamento escolar, e migrando-o de sdk, porem,
 estou
 tentando implementar o Maximo possível de funções para o sgbd.

 Imaginem que quero por exemplo, atualizar medias de uma disciplina de uma
 turma, ou a media da turma geral, ou a media geral da matricula

 Já fiz algumas outras funções mas estou com dificuldade em trabalhar com
 laços e resultados de consultas dentro da função

 Exemplo,  selecionar todas as notas de uma turma, e para cada aluno fazer a
 media dele, e depois ao final a media da turma...

 Agradeço qualquer ajuda, vou continuar tentando e vasculhando...



Veja:
http://postgres.cz/wiki/PL/pgSQL_%28en%29

Se ainda tiver dificuldade poste o que tentou, a definição das tabelas
e um exemplo do resultado desejado que procuraremos ajuda-lo.

Osvaldo
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Bucardo: Erro no Perl do Postgresql

2013-05-16 Por tôpico Nelson Luiz Gonzaga
Ola Flavio,


Em 15 de maio de 2013 14:49, Flavio Henrique Araque Gurgel 
fla...@4linux.com.br escreveu:


 Em 15-05-2013 14:46, Nelson Luiz Gonzaga escreveu:

 Srs,
 Segui o passo a passo da instalacao do Bucardo e nao consegui finalizar.
 Ele solicitou a linguaguem Perl no postgresql, quando mando criar ocorre
 o erro:

 CREATE LANGUAGE plperl;

 ** Error **

 ERROR: could not load library /home/local/pgsql/lib/plperl.**so:
 /home/local/pgsql/lib/plperl.**so: undefined symbol: boot_DynaLoader
 SQL state: 58P01

 Ja reinstalei o Postgresql com a opcao --with-perl e nao resolveu.

 Ambiente:
 Linux Debian 5.0 (Lenny)
 PostgreSQL 9.0.2 on i686-pc-linux-gnu, compiled by GCC gcc (Debian
 4.3.2-1.1) 4.3.2, 32-bit

 Alguma ideia?


 A máquina onde você compilou, é a mesma da que está rodando?

 Sim.

Já verificou ld_library_path?

Se for uma variavel do ambiente, ela nao existe no meu ambiente.

Ao compilar, tem certeza de que não houve erro?

O postgresql esta rodando normal, portanto quase certeza que nao houve erro.


 Ao compilar, perl-dev estava instalado?

Nao lembro, mexi tanto depois disso.


 Já que estás em Debian, por que não utiliza os pacotes PGDG? Eles se
 instalam bonitinho, padrão Debian, via apt, e tem o módulo plperl
 instalável da mesma forma. É mito mais fácil.

 []s

 Ainda nao fiz isso porque decobri que o Bucardo nao replica o pg_catalog e
eu uso a tabela pg_largeobject pra colocar arquivos.

Minha dúvida agora é: A replicacao nativa (stream replication) replica o
pg_catalog?

Valeu,
Nelson L Gonzaga




 __**
 Flavio Henrique A. Gurgel
 Líder de Projetos Especiais
 Consultoria, Projetos  Treinamentos 4LINUX
 Tel1: +55-11.2125-4747 ou 2125-4748
 www.4linux.com.br
 email: fla...@4linux.com.br
 __
 FREE SOFTWARE SOLUTIONS
 __**_
 pgbr-geral mailing list
 pgbr-geral@listas.postgresql.**org.brpgbr-geral@listas.postgresql.org.br
 https://listas.postgresql.org.**br/cgi-bin/mailman/listinfo/**pgbr-geralhttps://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


[pgbr-geral] Trocar Firebird por PostgreSQL

2013-05-16 Por tôpico André Geraldo dos Santos
Caros,
Boa tarde.

Aqui na empresa usamos o Firebird e venho esbarrando em uma série de
problemas e deficiências do mesmo quando temos um alto volume de
transações. Decidimos compatibilizar a nossa aplicação com PostgreSQL e
para isso acontecer preciso estudar e estou com algumas dúvidas.

1)  É vantajoso separar os tablespaces entre dados e índices?

2)  É possível reservar memória RAM para o banco e parametrizar o
número de processadores usados?

3)  O Autovacum é realmente eficiente?

Estou precisando de material de estudo e indicação de livros, vocês podem
contribuir comigo neste sentido?

Desde já agradeço pela atenção.

Tenham uma boa tarde.

-- 

Atenciosamente,

André Geraldo dos Santos
Certified Delphi® Developer XE2
Analista Desenvolvedor e Consultor
Belo Horizonte / Minas Gerais
E-mail:andresanto...@gmail.com
E-mail:andresan...@modulartecnologia.com.br
Telefone : +55 31 3047-6506 8746-9651
Skype : modulartecnologia_andre
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Configuração e Tunning Postgre 8.4

2013-05-16 Por tôpico Robson Kobayashi - TRE/MS
Olá Euler,

Agradeço pelas observações,

Realmente 100 transações é pouco. Na verdade me utilizei estes valores pois 
foram utilizados em outro benchmark que está publicado na Internet e precisava 
saber se a minha máquina estava melhor, semelhante ou pior ao do teste 
(felizmente ficou 6x melhor).

- Mensagem original -
De: Euler Taveira eu...@timbira.com.br
Para: Comunidade PostgreSQL Brasileira pgbr-geral@listas.postgresql.org.br
Enviadas: Quarta-feira, 15 de Maio de 2013 15:57:01
Assunto: Re: [pgbr-geral] Configuração e Tunning Postgre 8.4

100 transações é um valor muito baixo; o teste será somente por alguns
segundos. Uma alternativa é o utilizar o parâmetro -T (tempo) ao invés
do parâmetro -t (número de transações). Um bom teste deve durar pelo
menos 10 minutos.

Além disso, *nunca* utilize um valor de conexões (-c) maior do que fator
de escala (-s); vários UPDATEs estarão concorrendo pelas mesmas tuplas.

-- 
!-
Atenciosamente: Robson Massaki Kobayashi
SSOP/COINF/STI - TRE/MS
(67)3326-5428 ou (67)3326-4166 ramal 218
!-
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Bucardo: Erro no Perl do Postgresql

2013-05-16 Por tôpico Euler Taveira
On 16-05-2013 13:46, Nelson Luiz Gonzaga wrote:
 Minha dúvida agora é: A replicacao nativa (stream replication) replica o
 pg_catalog?
 
Sim. Replica todo cluster (incluindo o catálogo).


-- 
   Euler Taveira   Timbira - http://www.timbira.com.br/
   PostgreSQL: Consultoria, Desenvolvimento, Suporte 24x7 e Treinamento
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Bucardo: Erro no Perl do Postgresql

2013-05-16 Por tôpico Flavio Henrique Araque Gurgel

Minha dúvida agora é: A replicacao nativa (stream replication) replica o
pg_catalog?


Sim.
A replicação nativa às vezes dá medo. Replica *tudo*.
Observe, inclusive, que ao criar novas tablespaces no mestre, o mesmo 
diretório tem de existir no escravo, senão o escravo se desliga sozinho 
até você fazer isso.


[]s

__
Flavio Henrique A. Gurgel
Líder de Projetos Especiais
Consultoria, Projetos  Treinamentos 4LINUX
Tel1: +55-11.2125-4747 ou 2125-4748
www.4linux.com.br
email: fla...@4linux.com.br
__
FREE SOFTWARE SOLUTIONS
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Trocar Firebird por PostgreSQL

2013-05-16 Por tôpico Flavio Henrique Araque Gurgel


Em 16-05-2013 13:52, André Geraldo dos Santos escreveu:

Caros,
Boa tarde.

Aqui na empresa usamos o Firebird e venho esbarrando em uma série de
problemas e deficiências do mesmo quando temos um alto volume de
transações. Decidimos compatibilizar a nossa aplicação com PostgreSQL e
para isso acontecer preciso estudar e estou com algumas dúvidas.

1) É vantajoso separar os tablespaces entre dados e índices?


Depende de como sua aplicação os utiliza.
Às vezes, separar uma tabela e seus índices de outras dá mais resultado.
Com a aplicação em funcionamento, utilizar os catálogos 
pg_statio_user_tables e pg_statio_user_indexes te ajuda a saber quem são 
os que fazem mais I/O.



2) É possível reservar memória RAM para o banco e parametrizar o número
de processadores usados?


Memória RAM dá pra ter um bom controle, processadores não.


3) O Autovacum é realmente eficiente?


É fundamental para o funcionamento normal do PostgreSQL e deve estar 
sempre ativo.



Estou precisando de material de estudo e indicação de livros, vocês
podem contribuir comigo neste sentido?


Pesquise um pouco porque existem dezenas, infelizmente uma minoria em 
português. Indico sempre os livros do Greg Smith, Joshua Drake e o que 
mais me ajudou (mas tem muitos erros) do Korry Douglas.


[]s

__
Flavio Henrique A. Gurgel
Líder de Projetos Especiais
Consultoria, Projetos  Treinamentos 4LINUX
Tel1: +55-11.2125-4747 ou 2125-4748
www.4linux.com.br
email: fla...@4linux.com.br
__
FREE SOFTWARE SOLUTIONS
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Material para replicação de dados Multi-master

2013-05-16 Por tôpico Euler Taveira
On 16-05-2013 13:15, Fábio Thomaz wrote:
   Quando você diz: Fuja disso! Tecnicamente frágil., seria pela
 possível falha na geração deste número sequencial negativo? 
 
Não. Imagine você ter que corrigir uma chave estrangeira em n tabelas a
cada inserção, atualização ou remoção? É muito trabalhoso além de ser
susceptível a falha.

E se múltiplas instâncias pegarem o mesmo valor? Como será a resolução
de conflitos?

Minimize os pontos de falha no projeto adicionando alguns requisitos
tais como supor que a conexão *não* vai falhar em 99% dos casos; 1% é o
risco assumido. Lembre-se, não existe 100% de garantia em uma solução
(nem mesmo uma que custa 10⁶ dilmas).

   Há, e neste caso eu teria duas sequencias para a mesma tabela, uma
 sequencia normal e outra apenas para esta ocasião dos negativos,
 lembrando que seria apenas em algumas tabelas usadas em recursos que o
 sistema não irá poder parar, o restante eu informo que a operação está
 indisponível por problemas de comunicação com o servidor e pronto.
 
Isso complicaria muito a sua integridade referencial. Lembre-se de
seguir o princípio KISS.


-- 
   Euler Taveira   Timbira - http://www.timbira.com.br/
   PostgreSQL: Consultoria, Desenvolvimento, Suporte 24x7 e Treinamento
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


[pgbr-geral] replicacao Hot_standby com problemas

2013-05-16 Por tôpico Douglas Fabiano Specht
boa tarde Pessoal,
estou fazendo uma replicação hot_standby em ambiente de homologação, ocorre
que precisaria fazer com o postgresql rodando no servidor principal.
utilizei o material do Euler [1], e funcionou com o servidor principal
parado, qdo faço com ele rodando, no secundário nao consigo iniciar o
postgres, me diz que falta um arquivo 0001000800AD do log.
No tutorial ele exclui a pasta pg_xlog,se eu copia-la o postgres inicia
no secundário  mas depois de um tempo da erro que nao
consegue substituir esses arquivos do log..

alguem tem alguma ideia??


[1]
http://eulerto.blogspot.com.br/2010/11/hot-standby-e-streaming-replication.html

-- 

Douglas Fabiano Specht
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] replicacao Hot_standby com problemas

2013-05-16 Por tôpico Euler Taveira
On 16-05-2013 14:27, Douglas Fabiano Specht wrote:
 estou fazendo uma replicação hot_standby em ambiente de homologação,
 ocorre que precisaria fazer com o postgresql rodando no servidor principal.
 utilizei o material do Euler [1], e funcionou com o servidor principal
 parado, qdo faço com ele rodando, no secundário nao consigo iniciar o
 postgres, me diz que falta um arquivo 0001000800AD do log.
 No tutorial ele exclui a pasta pg_xlog,se eu copia-la o postgres inicia
 no secundário  mas depois de um tempo da erro que nao
 consegue substituir esses arquivos do log..
 
Esse material é muito antigo; tenho que atualizá-lo. Quanto a sua
dúvida, você tem duas opções:

(i) aumentar o wal_keep_segments;
(ii) configurar o arquivamento (archive_command) copiando os logs para o
servidor secundário ou mesmo algum local onde o servidor secundário
tenha acesso e, depois disso, no servidor secundário utilizar o
parâmetro restore_command no arquivo recovery.conf.

A opção (i) nem sempre funciona pois se a cópia de segurança física
demorar muito o PostgreSQL pode reciclar um arquivo de log de transação
que é necessário no servidor secundário.

A opção (ii) apesar de ser trabalhosa, sempre funciona.


-- 
   Euler Taveira   Timbira - http://www.timbira.com.br/
   PostgreSQL: Consultoria, Desenvolvimento, Suporte 24x7 e Treinamento
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Query Lenta

2013-05-16 Por tôpico Marco Aurelio
Grande Euller,

Vamos la, valores das consultas que me pediu:
PostgreSQL 8.1.4 on i386-portbld-freebsd6.1, compiled by GCC cc (GCC)
3.4.4 [FreeBSD] 20050518
client_encoding;SQL_ASCII;session
client_min_messages;notice;session
DateStyle;ISO, MDY;session
effective_cache_size;39321;configuration file
lc_messages;C;configuration file
lc_monetary;C;configuration file
lc_numeric;C;configuration file
lc_time;C;configuration file
listen_addresses;*;configuration file
log_destination;stderr;configuration file
log_directory;pg_log;configuration file
log_duration;off;configuration file
log_filename;postgresql-%Y-%m-%d.log;configuration file
log_line_prefix;%t [%p]: [%l-1] user=%u,db=%d ;configuration file
log_min_duration_statement;150;configuration file
log_rotation_age;1440;configuration file
log_statement;none;configuration file
maintenance_work_mem;234905;configuration file
max_connections;150;configuration file
max_locks_per_transaction;256;configuration file
random_page_cost;2;configuration file
redirect_stderr;on;configuration file
shared_buffers;39321;configuration file
silent_mode;on;configuration file
TimeZone;Brazil/East;command line
work_mem;16517;configuration file

PC: Core I3 4GB de RAM:

Definições da tabela e dos indices:
CREATE TABLE frete01
(
  ctadebrece character(6),
  ctacrerece character(6),
  ctamda character(8),
  cpf_cgcrem character varying(18),
  cpf_cgcdes character varying(18),
  cpf_cgccon character varying(18),
  cpf_cgcrd character varying(18),
  cpf_cgcpag character varying(18),
  tipocarro character(1),
  codremeten numeric(6,0) DEFAULT 0,
  coddestina numeric(6,0) DEFAULT 0,
  coddespach numeric(6,0) DEFAULT 0,
  codredespa numeric(6,0) DEFAULT 0,
  codpagador numeric(6,0) DEFAULT 0,
  codtrajeto numeric(5,0) DEFAULT 0,
  leitcarga character(1),
  leitscob character(1),
  codempresa character(5),
  docnumero numeric(6,0) DEFAULT 0,
  docserie character(4),
  codfatura character(6),
  seriefatur character(4),
  codfuncion numeric(5,0) DEFAULT 0,
  redespacho character(1),
  redenumero numeric(6,0) DEFAULT 0,
  redeserie character(4),
  totalnotas numeric(13,2) DEFAULT 0,
  datalancam date,
  datadespac date,
  dataapagar date,
  datarecebi date,
  calculaate numeric(5,0) DEFAULT 0,
  valorunida numeric(13,2) DEFAULT 0,
  fretevalor numeric(13,2) DEFAULT 0,
  seccat numeric(13,2) DEFAULT 0,
  despacho numeric(13,2) DEFAULT 0,
  pedagio numeric(13,2) DEFAULT 0,
  outros numeric(13,2) DEFAULT 0,
  valorapaga numeric(13,2) DEFAULT 0,
  valorreceb numeric(13,2) DEFAULT 0,
  valorrepas numeric(13,2) DEFAULT 0,
  basecalcul numeric(6,2) DEFAULT 0,
  aliquota numeric(6,2) DEFAULT 0,
  icms numeric(13,2) DEFAULT 0,
  coleta numeric(13,2) DEFAULT 0,
  ademe numeric(13,2) DEFAULT 0,
  formapagam character(1),
  peso numeric(11,3) DEFAULT 0,
  cubagem numeric(7,0) DEFAULT 0,
  volumes numeric(4,0) DEFAULT 0,
  codfilorig numeric(5,0) DEFAULT 0,
  codfildest numeric(5,0) DEFAULT 0,
  codfilarre numeric(5,0) DEFAULT 0,
  observacao character varying(120),
  codmanifes character(6),
  seriemanif character(4),
  veiculo character(8),
  motorista character(6),
  natureza character varying(15),
  tipocarga character(1),
  descricao character varying(50),
  databaixa date,
  codtabela character(4),
  codtarifa character(3),
  codtributa character(7),
  recibonume character(6),
  reciboseri character(4),
  hrdespacho character(5),
  confdesc character(2),
  rmd character(6),
  dtconsigna date,
  dtentrega date,
  hrentrega character(5),
  ocorrencia character varying(30),
  dttickets date,
  dttickets2 date,
  dtproducao date,
  codtabicms character(3),
  valorfrete numeric(13,5) DEFAULT 0,
  aliq_subs numeric(5,2) DEFAULT 0,
  itr numeric(13,5) DEFAULT 0,
  totalnf numeric(13,2) DEFAULT 0,
  tptribut character(1),
  loccolet character varying(20),
  locentre character varying(20),
  usucolet character(10),
  usuentre character(10),
  veiculo2 character(8),
  veiculo3 character(8),
  motorista2 character(6),
  motorista3 character(6),
  veicx character(1),
  loc_imprer boolean,
  loc_imprec boolean,
  loc_impred boolean,
  loc_imprep boolean,
  stationid character(3),
  datestamp date,
  timestamp character(8),
  updcounter numeric(3,0) DEFAULT 0,
  espcar character varying(15),
  sr_recno numeric(15,0) NOT NULL DEFAULT nextval('frete01_sq'::regclass),
  sr_deleted character(1) NOT NULL DEFAULT ' '::bpchar,
  indkey_001 character varying(254),
  indkey_002 character varying(254),
  indkey_003 character varying(254),
  indkey_004 character varying(254),
  indkey_005 character varying(254),
  indkey_006 character varying(254),
  indkey_007 character varying(254),
  indkey_008 character varying(254),
  numcem character(8),
  numdvf character(8),
  numrcf character(6),
  dtlanentr date,
  codfilial numeric(5,0),
  desconto numeric(13,2),
  CONSTRAINT frete01_sr_recno_key UNIQUE (sr_recno),
  CONSTRAINT frete01_unicod UNIQUE (docserie, docnumero)
)
WITHOUT OIDS;
ALTER TABLE frete01
  OWNER TO sysadmin;

-- 

Re: [pgbr-geral] Material para replicação de dados Multi-master

2013-05-16 Por tôpico Alexsander Rosa
Em 16 de maio de 2013 13:15, Fábio Thomaz fabio_...@yahoo.com.br escreveu:

 Olá Euler,

   Quando você diz: Fuja disso! Tecnicamente frágil., seria pela possível
 falha na geração deste número sequencial negativo?

   Pois para estas tabelas pensei em ter uma sequencia normal, mas sendo
 chamada através de um Trigger que iria capturar o próximo valor,
 multiplicar por -1 e atribuir ao campo. Neste caso eu também terei que
 padronizar algumas coisas, tipo, se o ID vier nulo do meu comento SQL de
 inclusão, o banco pega o valor da sequencia e pronto, se vier com o valor
 0 por exemplo, o Trigger testa o valor e gera um valor negativo.

   Há, e neste caso eu teria duas sequencias para a mesma tabela, uma
 sequencia normal e outra apenas para esta ocasião dos negativos, lembrando
 que seria apenas em algumas tabelas usadas em recursos que o sistema não
 irá poder parar, o restante eu informo que a operação está indisponível por
 problemas de comunicação com o servidor e pronto.

 Att,
 Fábio Thomaz


Não achei esta mensagem do Euler que você respondeu...


-- 
Atenciosamente,
Alexsander da Rosa
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Material para replicação de dados Multi-master

2013-05-16 Por tôpico Fábio Thomaz
Olá Alexsander, está uma mensagem antes de você entrar nesta thread:

   Também estive pensando em liberar operações em algumas partes críticas
 do sistema na base local, gerando uma PK com uma sequência de valores
 que ao invés de ser incrementada, seria decrementada a partir de zero,
 tendo assim uma sequência negativa. Estas, após o restabelecimento da
 conexão, seriam transportadas para o servidor principal, e neste
 momento, receberiam uma PK real.

Fuja disso! Tecnicamente frágil.

Att,
Fábio Thomaz


Em 16 de maio de 2013 16:00, Alexsander Rosa
alexsander.r...@gmail.comescreveu:



 Em 16 de maio de 2013 13:15, Fábio Thomaz fabio_...@yahoo.com.brescreveu:

 Olá Euler,

   Quando você diz: Fuja disso! Tecnicamente frágil., seria pela
 possível falha na geração deste número sequencial negativo?

   Pois para estas tabelas pensei em ter uma sequencia normal, mas sendo
 chamada através de um Trigger que iria capturar o próximo valor,
 multiplicar por -1 e atribuir ao campo. Neste caso eu também terei que
 padronizar algumas coisas, tipo, se o ID vier nulo do meu comento SQL de
 inclusão, o banco pega o valor da sequencia e pronto, se vier com o valor
 0 por exemplo, o Trigger testa o valor e gera um valor negativo.

   Há, e neste caso eu teria duas sequencias para a mesma tabela, uma
 sequencia normal e outra apenas para esta ocasião dos negativos, lembrando
 que seria apenas em algumas tabelas usadas em recursos que o sistema não
 irá poder parar, o restante eu informo que a operação está indisponível por
 problemas de comunicação com o servidor e pronto.

 Att,
 Fábio Thomaz


 Não achei esta mensagem do Euler que você respondeu...



 --
 Atenciosamente,
 Alexsander da Rosa


 ___
 pgbr-geral mailing list
 pgbr-geral@listas.postgresql.org.br
 https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Query Lenta

2013-05-16 Por tôpico Marco Aurelio
Acrescentando informações e duvidas. Testando a seguinte query:

SELECT docnumero FROM frete01 WHERE docserie = '  U2' limit 10

Com EXPLAIN vi que o postgresql utiliza SEQSCAN, mas se eu tirar um espaço
no '  U2' ele passa a usar o indice. Eu tenho um problema com os dados
desta tabela e estamos trabalhando no programa para corrigir este problema
do campo ter espaços no inicio do dado, mas seria possivel resolver por
agora este problema ? Fazer ele usar o indice mesmo tendo este espaço na
frente do dado no campo ?

Mais uma vez agradeço a atenção recebida.


2013/5/16 Marco Aurelio marcoprod...@gmail.com

 Grande Euller,

 Vamos la, valores das consultas que me pediu:
 PostgreSQL 8.1.4 on i386-portbld-freebsd6.1, compiled by GCC cc (GCC)
 3.4.4 [FreeBSD] 20050518
 client_encoding;SQL_ASCII;session
 client_min_messages;notice;session
 DateStyle;ISO, MDY;session
 effective_cache_size;39321;configuration file
 lc_messages;C;configuration file
 lc_monetary;C;configuration file
 lc_numeric;C;configuration file
 lc_time;C;configuration file
 listen_addresses;*;configuration file
 log_destination;stderr;configuration file
 log_directory;pg_log;configuration file
 log_duration;off;configuration file
 log_filename;postgresql-%Y-%m-%d.log;configuration file
 log_line_prefix;%t [%p]: [%l-1] user=%u,db=%d ;configuration file
 log_min_duration_statement;150;configuration file
 log_rotation_age;1440;configuration file
 log_statement;none;configuration file
 maintenance_work_mem;234905;configuration file
 max_connections;150;configuration file
 max_locks_per_transaction;256;configuration file
 random_page_cost;2;configuration file
 redirect_stderr;on;configuration file
 shared_buffers;39321;configuration file
 silent_mode;on;configuration file
 TimeZone;Brazil/East;command line
 work_mem;16517;configuration file

 PC: Core I3 4GB de RAM:

 Definições da tabela e dos indices:
 CREATE TABLE frete01
 (
   ctadebrece character(6),
   ctacrerece character(6),
   ctamda character(8),
   cpf_cgcrem character varying(18),
   cpf_cgcdes character varying(18),
   cpf_cgccon character varying(18),
   cpf_cgcrd character varying(18),
   cpf_cgcpag character varying(18),
   tipocarro character(1),
   codremeten numeric(6,0) DEFAULT 0,
   coddestina numeric(6,0) DEFAULT 0,
   coddespach numeric(6,0) DEFAULT 0,
   codredespa numeric(6,0) DEFAULT 0,
   codpagador numeric(6,0) DEFAULT 0,
   codtrajeto numeric(5,0) DEFAULT 0,
   leitcarga character(1),
   leitscob character(1),
   codempresa character(5),
   docnumero numeric(6,0) DEFAULT 0,
   docserie character(4),
   codfatura character(6),
   seriefatur character(4),
   codfuncion numeric(5,0) DEFAULT 0,
   redespacho character(1),
   redenumero numeric(6,0) DEFAULT 0,
   redeserie character(4),
   totalnotas numeric(13,2) DEFAULT 0,
   datalancam date,
   datadespac date,
   dataapagar date,
   datarecebi date,
   calculaate numeric(5,0) DEFAULT 0,
   valorunida numeric(13,2) DEFAULT 0,
   fretevalor numeric(13,2) DEFAULT 0,
   seccat numeric(13,2) DEFAULT 0,
   despacho numeric(13,2) DEFAULT 0,
   pedagio numeric(13,2) DEFAULT 0,
   outros numeric(13,2) DEFAULT 0,
   valorapaga numeric(13,2) DEFAULT 0,
   valorreceb numeric(13,2) DEFAULT 0,
   valorrepas numeric(13,2) DEFAULT 0,
   basecalcul numeric(6,2) DEFAULT 0,
   aliquota numeric(6,2) DEFAULT 0,
   icms numeric(13,2) DEFAULT 0,
   coleta numeric(13,2) DEFAULT 0,
   ademe numeric(13,2) DEFAULT 0,
   formapagam character(1),
   peso numeric(11,3) DEFAULT 0,
   cubagem numeric(7,0) DEFAULT 0,
   volumes numeric(4,0) DEFAULT 0,
   codfilorig numeric(5,0) DEFAULT 0,
   codfildest numeric(5,0) DEFAULT 0,
   codfilarre numeric(5,0) DEFAULT 0,
   observacao character varying(120),
   codmanifes character(6),
   seriemanif character(4),
   veiculo character(8),
   motorista character(6),
   natureza character varying(15),
   tipocarga character(1),
   descricao character varying(50),
   databaixa date,
   codtabela character(4),
   codtarifa character(3),
   codtributa character(7),
   recibonume character(6),
   reciboseri character(4),
   hrdespacho character(5),
   confdesc character(2),
   rmd character(6),
   dtconsigna date,
   dtentrega date,
   hrentrega character(5),
   ocorrencia character varying(30),
   dttickets date,
   dttickets2 date,
   dtproducao date,
   codtabicms character(3),
   valorfrete numeric(13,5) DEFAULT 0,
   aliq_subs numeric(5,2) DEFAULT 0,
   itr numeric(13,5) DEFAULT 0,
   totalnf numeric(13,2) DEFAULT 0,
   tptribut character(1),
   loccolet character varying(20),
   locentre character varying(20),
   usucolet character(10),
   usuentre character(10),
   veiculo2 character(8),
   veiculo3 character(8),
   motorista2 character(6),
   motorista3 character(6),
   veicx character(1),
   loc_imprer boolean,
   loc_imprec boolean,
   loc_impred boolean,
   loc_imprep boolean,
   stationid character(3),
   datestamp date,
   timestamp character(8),
   updcounter numeric(3,0) DEFAULT 0,
   espcar character 

Re: [pgbr-geral] Configuração e Tunning Postgre 8.4

2013-05-16 Por tôpico Robson Kobayashi - TRE/MS
Olá Euler,

Fiquei curioso e executei o teste conforme suas dicas, realmente o desempenho 
caiu 3x.

Segue abaixo o resultado do benchmark:

#pgbench -h localhost -p 5432 -c 10 -T 600 -d pgbench

transaction type: TPC-B (sort of)
scaling factor: 10
query mode: simple
number of clients: 10
number of threads: 1
duration: 600 s
number of transactions actually processed: 123431
tps = 205.709853 (including connections establishing)
tps = 205.716761 (excluding connections establishing)



Bom, fica de parâmetro para quem tiver utilizando máquina virtual (vmware). Em 
máquina física, o resultado deve ser bem melhor.

- Mensagem original -
De: Robson Kobayashi - TRE/MS robson.kobaya...@tre-ms.jus.br
Para: Comunidade PostgreSQL Brasileira pgbr-geral@listas.postgresql.org.br
Enviadas: Quinta-feira, 16 de Maio de 2013 12:56:58
Assunto: Re: [pgbr-geral] Configuração e Tunning Postgre 8.4

Olá Euler,

Agradeço pelas observações,

Realmente 100 transações é pouco. Na verdade me utilizei estes valores pois 
foram utilizados em outro benchmark que está publicado na Internet e precisava 
saber se a minha máquina estava melhor, semelhante ou pior ao do teste 
(felizmente ficou 6x melhor).

-- 
!-
Atenciosamente: Robson Massaki Kobayashi
SSOP/COINF/STI - TRE/MS
(67)3326-5428 ou (67)3326-4166 ramal 218
!-
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Material para replicação de dados Multi-master

2013-05-16 Por tôpico Euler Taveira
On 16-05-2013 16:00, Alexsander Rosa wrote:
 Não achei esta mensagem do Euler que você respondeu...
 
Vide o histórico [1] da lista.


[1]
http://listas.postgresql.org.br/pipermail/pgbr-geral/2013-May/034934.html


-- 
   Euler Taveira   Timbira - http://www.timbira.com.br/
   PostgreSQL: Consultoria, Desenvolvimento, Suporte 24x7 e Treinamento
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Drop FK demorado

2013-05-16 Por tôpico Luiz Carlos L. Nogueira Jr.
Descobri o problema. Ela um lock de uma transação que deveria estar morta

http://doc.nuxeo.com/display/KB/I+can%27t+delete+my+PostgreSQL+database

Fiz esses procedimentos e matei a fk normalmente


Em 16 de maio de 2013 12:10, Euler Taveira eu...@timbira.com.br escreveu:

 On 16-05-2013 10:46, Luiz Carlos L. Nogueira Jr. wrote:
  Pessoal,
 
  Existe algum motivo pra um drop de uma FK demorar?
  No momento o banco tinha sido reiniciado e não tinha ninguém conectado.
  PG 8.4
 
 O que você quis dizer com drop de uma FK? Remover a restrição (aka
 constraint) ou remover a coluna? Ambos requerem um AccessExclusiveLock
 [1] na tabela, ou seja, até mesmo um SELECT na referida tabela em uma
 transação em aberto pode bloquear a execução de ALTER TABLE ... DROP
 CONSTRAINT. Uma outra hipótese é o autovacuum trabalhando nessa tabela.

 Utilize uma das consultas em [2] para verificar quem está bloqueando o
 ALTER TABLE.


 [1]

 http://www.postgresql.org/docs/8.4/static/explicit-locking.html#LOCKING-TABLES
 [2] http://wiki.postgresql.org/wiki/Lock_dependency_information


 --
Euler Taveira   Timbira - http://www.timbira.com.br/
PostgreSQL: Consultoria, Desenvolvimento, Suporte 24x7 e Treinamento
 ___
 pgbr-geral mailing list
 pgbr-geral@listas.postgresql.org.br
 https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral