Re: [pgbr-geral] Acúmulo de Wal no servidor Master

2018-04-04 Por tôpico Fabrízio de Royes Mello
Em 4 de abril de 2018 09:37, Cleiton Luiz Domazak <cleitondoma...@gmail.com>
escreveu:
>
>
> 2018-04-04 9:14 GMT-03:00 Felippi Cunegundes Laender <
felippilaen...@gmail.com>:
>>
>> Olá a todos.
>>
>> O Assunto wal me deixa um pouco confuso as vezes. Quando acho que estou
entendendo alguma coisa, vem os problemas e pronto, não entendi nada do que
estudei.
>>
>> Meu cenário é o seguinte: Fiz uma replicação com repmgr para testar e
funcionou beleza. Após meus testes de tornar master em standby, standby em
master, etc excluí o servidor de standby mantendo as configurações de
replicação no master.
>>
>> Sobre o postgresql.conf no período de replicação o archive_mode = on e o
archive_command = '/bin/true'. wal_keep_segments = 100. Após ver que meu
/var estava próximo ao estouro, diminuí meu wal_keep_segments = 10, nada
alterou.
>>
>> Gostaria de saber se tem algum modo efetivo, mais elegante de excluir
esses arquivos wal. A única opção na minha mente é um rm -r nos arquivos
mantendo apenas dois últimos dias.
>
>
> Siga esse procedimento, só tome cuidado para não inverter os valores :)
>
>
https://erpnani.blogspot.com.br/2016/01/postgresql-how-to-clean-pgxlog.html

Muito cuidado com a recomendação desse post, pois o pg_resetxlog deve ser
utilizado em último caso, inclusive a documentação oficial cita o que segue
no primeiro parágrafo:

"pg_resetxlog clears the write-ahead log (WAL) and optionally resets some
other control information stored in the pg_control file. This function is
sometimes needed if these files have become corrupted. It should be used
only as a last resort, when the server will not start due to such
corruption."

Vide: https://www.postgresql.org/docs/9.4/static/app-pgresetxlog.html

Att,
--
   Fabrízio de Royes Mello 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] Normalização e Chaves Primárias

2018-03-12 Por tôpico Fabrízio de Royes Mello
Boa tarde,

Interessante artigo do Dimitri sobre $SUBJECT [1].

Att,

[1]
https://tapoueh.org/blog/2018/03/database-normalization-and-primary-keys/

-- 
   Fabrízio de Royes Mello 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] Registrando tempo de "downtime" para efeito de SLA

2018-03-06 Por tôpico Fabrízio de Royes Mello
Em 6 de março de 2018 09:53, Alexsander Rosa <alexsander.r...@gmail.com>
escreveu:
>
> Em 5 de março de 2018 17:10, Fabrízio de Royes Mello <
fabri...@timbira.com.br> escreveu:
>>
>> Nesse caso somente olhando os logs mesmo...
>
>
> Bom, copiei manualmente dos logs e fiz o INSERT à mão, estes primeiros
meses de 2018 ficaram assim:
>
> rednaxel-server:rnge4=> SELECT * FROM vw_webservice_level WHERE servico =
'postgresql' ORDER BY ano, mes;
>   servico   | ano  | mes | downtime | dias | segundos | svc_lvl
> +--+-+--+--+--+--
>  postgresql | 2018 |   1 |  22.4383 |   31 |  2678400 |  99.9992
>  postgresql | 2018 |   2 |   0. |   28 |  2419200 | 100.
> (2 rows)
>
> Em março ainda não houve downtime mas já vi que o servidor está pedindo
reboot... Daí eu procuro no log, sem problemas.
>

Show de bola... publica a solução lá no github pra contribuir com resto da
galera.

Att,

--
   Fabrízio de Royes Mello 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] Registrando tempo de "downtime" para efeito de SLA

2018-03-05 Por tôpico Fabrízio de Royes Mello
Em 5 de março de 2018 16:47, Alexsander Rosa <alexsander.r...@gmail.com>
escreveu:
>
> Em 5 de março de 2018 15:43, Fabrízio de Royes Mello <
fabri...@timbira.com.br> escreveu:
>>
>>
>> Pensando melhor sobre o seu caso, vc consegue sim obter ambas
informações:
>>
>> 1) Se o servidor estiver online vc executa a pg_postmaster_start_time()
>>
>> 2) Se o servidor estiver offline entao vc pode pegar o valor de
'pg_control last modified:' no pg_controldata, ex:
>>
>> $ pg_controldata -D ~/.pgvm/clusters/10.1/main | grep -E '(Database
cluster state|pg_control last modified)'
>> Database cluster state:   shut down
>> pg_control last modified: Seg 05 Mar 2018 15:40:18 -03
>>
>
> Estou usando o pg_postmaster_start_time(), criei um indicador "Uptime PG"
no dashboard. Para uma parada controlada dá pra usar o pg_controldata pra
ver o last_modified mas o caso de uso mais comum é a reinicialização do
S.O. para atualizações, geralmente fora do horário comercial.
>

Nesse caso somente olhando os logs mesmo...


--
   Fabrízio de Royes Mello 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] Registrando tempo de "downtime" para efeito de SLA

2018-03-05 Por tôpico Fabrízio de Royes Mello
Em 5 de março de 2018 15:29, Fabrízio de Royes Mello <
fabri...@timbira.com.br> escreveu:
>
> [...]
>

Pensando melhor sobre o seu caso, vc consegue sim obter ambas informações:

1) Se o servidor estiver online vc executa a pg_postmaster_start_time()

2) Se o servidor estiver offline entao vc pode pegar o valor de 'pg_control
last modified:' no pg_controldata, ex:

$ pg_controldata -D ~/.pgvm/clusters/10.1/main | grep -E '(Database cluster
state|pg_control last modified)'
Database cluster state:   shut down
pg_control last modified: Seg 05 Mar 2018 15:40:18 -03


Att,

--
   Fabrízio de Royes Mello 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] Registrando tempo de "downtime" para efeito de SLA

2018-03-05 Por tôpico Fabrízio de Royes Mello
Em 5 de março de 2018 14:36, Alexsander Rosa <alexsander.r...@gmail.com>
escreveu:
>
> Obrigado pela resposta! Neste caso eu vou ter que fazer um polling,
certo? Eu gostaria de uma precisão abaixo de 1 minuto (ou seja, não dá pra
usar o CRON), porém não quero ficar toda hora chamando o pg_isready pois
isso certamente vai influenciar na carga do servidor. Além disso, quando o
S.O. for reiniciado meu programa em C vai cair também.
>
> O ideal seria uma função análoga à pg_postmaster_start_time() porém com o
último shutdown.
> Talvez seja possível criar uma "pg_postmaster_last_shutdown()" para obter
esta informação.
>
> Eu sei que nosso servidor PG foi reiniciado, pela última vez, dia 30 de
janeiro:
>
> SELECT pg_postmaster_start_time();
>pg_postmaster_start_time
> ---
>  2018-01-30 07:33:29.438349-02
> (1 row)
>
> No caso eu sei que está no ar desde Janeiro porém eu não sei que horas,
no dia 30/01, o servidor foi parado. Olhando no log temos:
> 2018-01-30 07:33:07.278 -02 [1212] LOG:  autovacuum launcher shutting down
> 2018-01-30 07:33:07.373 -02 [1209] LOG:  shutting down
> 2018-01-30 07:33:07.440 -02 [1195] LOG:  database system is shut down
> 2018-01-30 07:33:29.439 -02 [1350] LOG:  database system was shut down at
2018-01-30 07:33:07 -02
>
> Veja que o servidor SABE que o shutdown ocorreu às 2018-01-30 07:33:07
-02 (no caso foi uma alteração no .conf).
> Resta saber se esta informação está ficando gravada em algum lugar (além
do texto do log) e como recuperá-la.
>
>

Alexsander,

Atualmente o PostgreSQL só persiste essa informação de Startup e Shutdown
nos logs. A função pg_postmaster_start_time() apenas retorna o valor
interno de uma global chamada PgStartTime que ele seta ao iniciar o
postmaster (vide src/backend/postmaster/postmaster.c), mas não persiste em
nenhum lugar.

Talvez até fosse uma idéia adicionar isso ao global/pg_control e obter
atraves do utilitário pg_controldata e termos isso a nível SQL usando a
função pg_control_init() talvez... mas teriamos que discutir isso lá na
-hackers, isso se já não foi e por algum motivo não foi implementado.

Att,


--
   Fabrízio de Royes Mello 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] PESQUISAR HISTÓRICO

2018-01-16 Por tôpico Fabrízio de Royes Mello
Em 16 de janeiro de 2018 16:29, Fábio Telles Rodriguez <
fabio.tel...@gmail.com> escreveu:
>
> Realmente, o link do histórico está quebrado. Só tem os archives em
https://listas.postgresql.org.br/pipermail/pgbr-geral/
>

... por favor evite top-post...

@Fábio
Realmente o link não está funcionando, e muito provavelmente desde a
migração da infra-estrutura e de termos aposentado o antigo drupal.

@Miguel
O que a página antiga fazia era nada mais do que uma chamada ao google para
pesquisar nos archives da lista, algo como

"site:https://listas.postgresql.org.br/pipermail/pgbr-geral;

Um Pull-Request [1] pra adicionar isso de novo no site é muito bem vindo.

Att,

[1] https://github.com/postgresql-br/website-src


--
   Fabrízio de Royes Mello 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] pg_class

2018-01-15 Por tôpico Fabrízio de Royes Mello
Em 15 de janeiro de 2018 12:35, Mauricio Sysmo Sistemas <
mauriciomart...@sysmo.com.br> escreveu:
>
> Boa tarde a todos, depois de excluído um registro da pg_class te uma
tabela  tem como restaurar ?
>

Registros na pg_class são gerados por CREATE TABLE, CREATE INDEX, etc

Conte um pouco mais sobre o seu problema.

Att,

--
   Fabrízio de Royes Mello 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] Definição

2017-11-24 Por tôpico Fabrízio de Royes Mello
Em 24 de novembro de 2017 16:58, Tiago Brasil <neotbra...@gmail.com>
escreveu:
>
>
> create table t2
> ( c1t1 integer,
>   c2t2 integer,
>   c3t2 integer,
> primary key (c1t1, c2t2),
> foreign key (c1t1) references t1 (c1t1),
> unique (c2t2)); **n necessita dessa linha visto que primary key ja sao
unique e not null por padrão
>
> De resto está correto.
>

Depende, porque se a cardinalidade do modelo for 1:1 então ele precisará
essa restrição, ou melhor, colocar ela como PK na t2.

Att,

--
   Fabrízio de Royes Mello 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] como descobrir se uma procedure foi modificado no postgresql

2017-11-21 Por tôpico Fabrízio de Royes Mello
Em ter, 21 de nov de 2017 às 18:57, Amir <here...@gmail.com> escreveu:

> Boa noite...
>
> Com saber se uma procedure foi modificada, no banco
>

Se vc não está com log de DDL habilitado não vejo outra forma de saber.


-- 
   Fabrízio de Royes Mello 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] Apostila ou Livro de PostGreSql

2017-10-10 Por tôpico Fabrízio de Royes Mello
Em 10 de outubro de 2017 11:23, Andre Fernando Dominguez <
andrefdoming...@gmail.com> escreveu:
>
> Bom dia Pessoal.
>
> Sou novo em bancos de dados e gostaria de saber se alguém poderia me
> enviar material sobre PostgreSQL.
>
> Gostaria de materiais do Básico ao avançado, pois meu conhecimento com
> esse tipo de banco de dados é praticamente nulo.
>

André,

Comece pela documentação oficial [1], depois com google vc encontra
artigos, vídeos, tutorais.

Att,

[1] https://www.postgresql.org/docs/current/static/index.html

--
   Fabrízio de Royes Mello 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] Listar todos as colunas com valor default definido

2017-10-09 Por tôpico Fabrízio de Royes Mello
Em 9 de outubro de 2017 17:18, Fabrízio de Royes Mello <
fabri...@timbira.com.br> escreveu:
>
>
> Em 9 de outubro de 2017 17:12, André Ormenese <aormen...@gmail.com>
escreveu:
> >
> > Boa tarde
> >
> > Preciso listar todos as colunas, de todas as tabelas, que tenham o
valor default definido. Independente do valor configurado.
> > Onde acho estas informações no catalogo do PostgreSQL 9.6.5 ?
> >
>
> André,
>
> Essa informação fica armazenada na tabela pg_attrdef [1] do catálogo.
>
> Att,
>
> [1] https://www.postgresql.org/docs/current/static/catalog-pg-attrdef.html
>

Apenas para ilustrar o que comentei no email anterior:

fabrizio=# CREATE TABLE foo (f1 SERIAL PRIMARY KEY, f2 TIMESTAMP, f3 TEXT
DEFAULT 'bar', f4 INTEGER);
CREATE TABLE
fabrizio=# SELECT a.attrelid, a.attname, b.adsrc FROM pg_attribute a JOIN
pg_attrdef b ON b.adrelid = a.attrelid AND b.adnum = a.attnum where
attrelid = 'foo'::regclass;
 attrelid | attname |  adsrc
--+-+-
   102722 | f1  | nextval('foo_f1_seq'::regclass)
   102722 | f3  | 'bar'::text
(2 rows)


Att,

--
   Fabrízio de Royes Mello 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] Listar todos as colunas com valor default definido

2017-10-09 Por tôpico Fabrízio de Royes Mello
Em 9 de outubro de 2017 17:12, André Ormenese <aormen...@gmail.com>
escreveu:
>
> Boa tarde
>
> Preciso listar todos as colunas, de todas as tabelas, que tenham o valor
default definido. Independente do valor configurado.
> Onde acho estas informações no catalogo do PostgreSQL 9.6.5 ?
>

André,

Essa informação fica armazenada na tabela pg_attrdef [1] do catálogo.

Att,

[1] https://www.postgresql.org/docs/current/static/catalog-pg-attrdef.html


--
   Fabrízio de Royes Mello 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] Tamanho das colunas de uma tabela em GB

2017-10-06 Por tôpico Fabrízio de Royes Mello
Em 6 de outubro de 2017 13:54, Sebastian Webber <sebast...@swebber.me>
escreveu:
>
>
>
> Em sex, 6 de out de 2017 às 12:05, Fábio Telles Rodriguez <
fabio.tel...@gmail.com> escreveu:
>>
>> Em 6 de outubro de 2017 11:54, Sebastian Webber <sebast...@swebber.me>
escreveu:
>>>
>>>
>>>
>>> Em sex, 6 de out de 2017 às 11:17, Franklin Anderson de Oliveira Souza <
frankli...@gmail.com> escreveu:
>>>>
>>>> Bom dia a todos !
>>>>
>>>> Eu consigo ver o tamanho de um database e de suas tabelas, mas
gostaria de saber o tamanho da colunas também. Exemplo: Se tenho uma tabela
de 4 colunas com 10 Gb de tamanho, quantos GB tem cada uma das 4 colunas ?!
>>>
>>>
>>>  Dá uma olhada  na função pg_column_size[1].
>>>
>>> [1]
https://www.postgresql.org/docs/current/static/functions-admin.html#functions-admin-dbsize
>>>
>>
>> Esta função só dá o tamanho de um único valor.
>
>
> Nesse caso seria ainda mais fácil somar os dados de todas as linhas:
>
> SELECT pg_size_pretty(pg_column_size( col)) from tabela;
>

Não, dessa forma ele irá varrer toda tabela e calcular toda a linha,
portanto bem mais custoso dependendo do tamanho da mesma. E faltou um "SUM"
na sua query. A opção que o Telles comentou é a mais adequada para grande
maioria dos cenários.

Att,

--
   Fabrízio de Royes Mello 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] [PGBR2017] **URGENTE** Prêmio Destaques Comunidade 2016/2017

2017-08-30 Por tôpico Fabrízio de Royes Mello
Em 30 de agosto de 2017 16:51, Fábio Telles Rodriguez <
fabio.tel...@gmail.com> escreveu:
>
>> b) Na primeira etapa, cada membro da lista poderá indicar até três nomes
para cada uma das categorias do prêmio:
>>   * Contribuição com código no PostgreSQL;
>
> Fabrízio de Royes Mello,
> Matheus Oliveira

Adicionaria também o Euler, pois ele sempre está envolvido com alguma
revisão de código ao menos.


>>
>>   * Contribuição com código em ferramentas livres relacionadas ao
PostgreSQL:

Nesta categoria sugiro adicionar:

* Euler Taveira:
- wal2json (https://github.com/eulerto/wal2json)
- pgquarrel (https://github.com/eulerto/pgquarrel)

* Dickson Guedes
- telegram_fdw (https://github.com/guedes/telegram_fdw)

* Willian Ivanski
- OminiDB (https://omnidb.org)

>>   * Pessoa que melhor contribuiu na lista pgbr-geral;
>
> Euler Taveira
> Sebastian Webber
> Fabrízio de Royes Mello
> Matheus Oliveira
>

Flávio Gurgel


>>   * Melhor contribuição na organização da comunidade brasileira;
>
> Sebastian Webber
>

Indiscutivel!!!


>>   * Melhor artigo técnico publicado nos últimos 2 anos.
>
> Euler Taveira
>

Fábio Telles Rodrigues (o savepoint nunca morre... hehehe)


Att,


--
   Fabrízio de Royes Mello 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] [PGBR2017] **URGENTE** Prêmio Destaques Comunidade 2016/2017

2017-08-30 Por tôpico Fabrízio de Royes Mello
Em 29 de agosto de 2017 13:43, Fabrízio de Royes Mello <
fabri...@timbira.com.br> escreveu:

> Pessoal,
>
> Similar ao que foi realizado em 2015 iniciaremos com *URGÊNCIA* com os
> procedimentos para a premiação dos destaques da Comunidade nos anos de 2016
> e 2017 durante o PGBR2017.
>
> A dinâmica:
>
> a) Os destaques referem-se aos anos de 2016 e 2017;
>
> b) Na primeira etapa, cada membro da lista poderá indicar até três nomes
> para cada uma das categorias do prêmio:
>   * Contribuição com código no PostgreSQL;
>   * Contribuição com código em ferramentas livres relacionadas ao
> PostgreSQL:
>   * Pessoa que melhor contribuiu na lista pgbr-geral;
>   * Melhor contribuição na organização da comunidade brasileira;
>   * Melhor artigo técnico publicado nos últimos 2 anos.
>
> c) A indicação dos membros na primeira etapa deverá ser feita por esta
> lista, até o dia 08/09/2016;
>
> d) Os cinco nomes mais indicados na lista em cada categoria (caso exista
> tal quantidade), concorrerão ao prêmio na segunda etapa;
>
> e) Na segunda etapa, uma comissão avaliará as indicações e decidirá pelos
> vencedores em cada categoria até dia 16/09/2017 onde serão divulgados
> durante o encerramento do PGBR2017.
>
>
E ai pessoal... precisamos de nomes??? Qualquer um pode ser indicado e/ou
indicar alguém.

Att,

-- 
   Fabrízio de Royes Mello 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] [PGBR2017] **URGENTE** Prêmio Destaques Comunidade 2016/2017

2017-08-29 Por tôpico Fabrízio de Royes Mello
Pessoal,

Similar ao que foi realizado em 2015 iniciaremos com *URGÊNCIA* com os
procedimentos para a premiação dos destaques da Comunidade nos anos de 2016
e 2017 durante o PGBR2017.

A dinâmica:

a) Os destaques referem-se aos anos de 2016 e 2017;

b) Na primeira etapa, cada membro da lista poderá indicar até três nomes
para cada uma das categorias do prêmio:
  * Contribuição com código no PostgreSQL;
  * Contribuição com código em ferramentas livres relacionadas ao
PostgreSQL:
  * Pessoa que melhor contribuiu na lista pgbr-geral;
  * Melhor contribuição na organização da comunidade brasileira;
  * Melhor artigo técnico publicado nos últimos 2 anos.

c) A indicação dos membros na primeira etapa deverá ser feita por esta
lista, até o dia 08/09/2016;

d) Os cinco nomes mais indicados na lista em cada categoria (caso exista
tal quantidade), concorrerão ao prêmio na segunda etapa;

e) Na segunda etapa, uma comissão avaliará as indicações e decidirá pelos
vencedores em cada categoria até dia 16/09/2017 onde serão divulgados
durante o encerramento do PGBR2017.

No aguardo por críticas e sugestões.

Att,

--
   Fabrízio de Royes Mello 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] Data de criação do usuário

2017-08-23 Por tôpico Fabrízio de Royes Mello
Em 23 de agosto de 2017 11:39, Saulo Morais <sa...@abilityonline.com.br>
escreveu:
>
> É possível saber a data de criação dos usuários?
>
> pg_user e pg_roles não possuem essas informações.
>

Nativamente não temos essa informação de Criação/Alteração de objetos... vc
poderia implementar algo com Event Triggers [1], porém só funcionaria para
objetos locais, os globais (usuarios, tablespaces, databases) ainda não são
capturados por esse tipo de evento. Outra alternativa seria implementar uma
hook na ProcessUtility para isso, mas é um pouco mais complicado.

Att,


[1] https://www.postgresql.org/docs/current/static/event-trigger-matrix.html


--
   Fabrízio de Royes Mello 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] Remover drop database/table

2017-08-17 Por tôpico Fabrízio de Royes Mello
Em 17 de agosto de 2017 14:21, Fábio Telles Rodriguez <
fabio.tel...@gmail.com> escreveu:
>
> Em 17 de agosto de 2017 14:18, Tiago Brasil <neotbra...@gmail.com>
escreveu:
>>
>> Não, é o inverso!
>>
>> Os dev vao poder criar objetos e esquemas, mas NÃO poderão dropar nada.
>
>
> Aí você complica. Por padrão, quem cria um objeto é dono dele. E todo
dono retem o poder de destruir o que criou. É um princípio básico que todo
SGDB usa. Você tem duas alternativas:
>
> 1) Delegar outra pessoa para criar os objetos.
> 2) Alterar o dono dos objetos depois que eles foram criados.
>

3) utilizar Event Triggers [1] para "barrar" esse DROP .

Att,

[1] https://www.postgresql.org/docs/current/static/event-triggers.html

--
   Fabrízio de Royes Mello 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] Arquivos temporários

2017-07-06 Por tôpico Fabrízio de Royes Mello
Em 6 de julho de 2017 11:09, Ariel Alves <arielalves...@gmail.com> escreveu:
>
> Olá pessoal,
>
> Notei que na hora da criação de indexes o log registra essas linhas
abaixo.
>
>
> 2017-07-06 10:35:32.740 BRT assist dbname: LOG:  arquivo temporário:
caminho "base/pgsql_tmp/pgsql_tmp29413.2", tamanho 54045676
> 2017-07-06 10:35:32.854 BRT assist dbname: LOG:  arquivo temporário:
caminho "base/pgsql_tmp/pgsql_tmp29413.8", tamanho 7971156
> 2017-07-06 10:35:33.072 BRT assist dbname: LOG:  arquivo temporário:
caminho "base/pgsql_tmp/pgsql_tmp29413.6", tamanho 54000100
> 2017-07-06 10:35:33.394 BRT assist dbname: LOG:  arquivo temporário:
caminho "base/pgsql_tmp/pgsql_tmp29413.9", tamanho 8027496
>
>
> Queria saber qual parametro é responsavel por este arquivo temporário,
work_mem, temp_buffers ou maintenance_work_mem.
>
> Creio que ajustando isso, o desempenho a criação desses idexes seria
melhorado.
>

Vc precisa ajustar o "maintenance_work_mem" para tentar fazer com que o
"sorting" realizado para criação do índice utilize apenas memória e não o
disco (gerando esses arquivos temporários) para trabalhar.

Dependendo da forma como vc executa esses CREATE INDEX vc pode setar ele na
sessão, exemplo:

SET maintenance_work_mem TO '1GB';

BEGIN;
CREATE INDEX ...
CREATE INDEX ...
COMMIT;


Att,

--
   Fabrízio de Royes Mello 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] Último ID antes do Commit [Resolvido]

2017-07-06 Por tôpico Fabrízio de Royes Mello
Em 5 de julho de 2017 15:45, Sebastian Webber <sebast...@swebber.me>
escreveu:
>
> Em 4 de julho de 2017 12:10, POWER Informática <
power.informatica@gmail.com> escreveu:
>>
>> Achei nas minhas pesquisas essa dica, que é exatamente o que precisava
fazer;
>>
>> 
>>
>> BEGIN;
>>
>> INSERT INTO pedido(data) VALUES (now());
>>
>> INSERT INTO item (fk_pedido, produto, quantidade, valor)
>> VALUES (currval(‘pedido_numero_seq’), ‘Camiseta’, 2, 25.00);
>>
>> INSERT INTO item (fk_pedido, produto, quantidade, valor)
>> VALUES (currval(‘pedido_numero_seq’),‘Calça’, 2, 40.70);
>>
>> INSERT INTO item (fk_pedido, produto, quantidade, valor)
>> VALUES (currval(‘pedido_numero_seq’), ‘Meia’, 5, 5.90);
>>
>> INSERT INTO item (fk_pedido, produto, quantidade, valor)
>> VALUES (currval(‘pedido_numero_seq’), ‘Camisa’, 1, 60.00);
>>
>> COMMIT;
>
>
> Existe uma grande chance de isso não funcionar.
>

Porque nao???

Essa abordagem funciona sim e muito bem, porque o primeiro INSERT vai
executar o NEXTVAL para setar o valor DEFAULT da chave primária da tabela
"pedido" e se vc usar o CURRVAL dentro da mesma sessão ele irá retornar sim
o valor corrente.

A forma que o PostgreSQL implementa a dupla NEXTVAL e CURRVAL é justamente
pra resolver esse tipo de problema.

Att,

--
   Fabrízio de Royes Mello 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] backup com pg_probackup

2017-06-30 Por tôpico Fabrízio de Royes Mello
Em 30 de junho de 2017 09:01, Douglas Fabiano Specht <
douglasfabi...@gmail.com> escreveu:
>
> bom dia pessoal,
>
> alguem ja utilizou ou utiliza a ferramenta [1] para fazer os backups do
postgres?
> pelo que vi na documentação tanto o processo de fazer como o de restaurar
em caso de desastre é bem mais simples que outras como o [2] e o [3].
>

Eu não posso nem concordar e nem discordar com vc porque nunca usei [1]...
mas tanto [2] quanto [3] são bem simples...

Uma coisa que sempre observo nessas ferramentas é se o seu desenvolvimento
está ativo, então se vc observar o github delas pode notar que [1] deve seu
último commit em Mar/2017, já [2] há 3 dias atrás e [3] há 29 dias...

Isso não quer dizer nada em relação a uma ser melhor que a outra e tal, mas
acredito que software é algo quase que orgânico e que deve estar sempre em
movimento.

Att,

[1] https://github.com/postgrespro/pg_probackup
[2] http://www.pgbackrest.org/
[3] http://www.pgbarman.org/

--
   Fabrízio de Royes Mello 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] ERROR: out of shared memory in pg_dump

2017-06-29 Por tôpico Fabrízio de Royes Mello
Em 29 de junho de 2017 18:00, Douglas Fabiano Specht <
douglasfabi...@gmail.com> escreveu:
>
>
> Fabrizio,
> obrigado pela sua reposta
> vou ajustar para 500, pois deu 432 o calculo e sei que esse banco pode
ser acrescentado mais schemas.(42000/50+64) + 64 = 432 .

Esqueci de mencionar que as "sequences" devem entrar no cálculo daquele
"número de tabelas" porque elas internamente são uma tabela.


> sobre sua duvida, hoje estamos fazendo dump como estrategia de backup, o
que está errado..(eu ja li o otimo artigo do Telles) #1.

Ok, mas como é a arquitetura desse seu database? Tipo cada schema seria
como um "cliente" ou algo do gênero?? Porque se cada schema pode ser
tratado isoladamente não teria porque vc fazer um dump de todo database em
um único pg_dump, vc poderia fazer um script para ler os schemas e fazer
dumps individuais por schema.

Vc poderia usar os Syncronized Snapshots [1] também pra não precisar ficar
fazendo esses ajustes e ter dados consistentes... obviamente que nao
conheço seu modelo e não sei se os objetos nos schemas tem dependencias
(FKs), então estou pensando em modelos com schemas isolados.


> pretendo nos próximos dias implantar backup físico\logico.

Ótimo


> como estamos com 5 servidores de banco de dados, vc teria alguma
ferramenta para recomendar que faça essa gerência de backup em vários
servidores e uma maneira mais facil?
>

Para backup físico recomendo vc dar uma olhada no pgBackRest [2] ou o
Barman [3].

Att,

[1]
https://www.postgresql.org/docs/9.5/static/functions-admin.html#FUNCTIONS-SNAPSHOT-SYNCHRONIZATION
[2] http://www.pgbackrest.org/
[3] http://www.pgbarman.org/

--
   Fabrízio de Royes Mello 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] ERROR: out of shared memory in pg_dump

2017-06-29 Por tôpico Fabrízio de Royes Mello
Em 29 de junho de 2017 11:35, Euler Taveira <eu...@timbira.com.br> escreveu:
>
> Em 28 de junho de 2017 22:35, Douglas Fabiano Specht <
douglasfabi...@gmail.com> escreveu:
>>>
>>>
>> Euler,
>> esse valor é para cada schema 233 tabelas ou 41000 tabelas no geral de
todos os schemas..?
>
>
> É a quantidade de tabelas por execução do pg_dump. Então seria 181
schemas x 233 tabelas.
>

Não é *exatamente* este valor porque o PostgreSQL cria um hash na memória
compartilhada (TopMemoryContext) para alocar esses locks e o tamanho dela é
definido por:

max_locks_per_transaction * (max_connections + max_prepared_transactions)

Quero dizer com isso que não é necessário colocar no
"max_locks_per_transaction" o valor da multplicação que o Euler comentou
que é demasiado e ocupara memória compartilhada sem necessidade. Em um
cenário como o seu que são muitas tabelas para efetuar dump poderi então
fazer o seguinte cálculo:

(numero_de_tabelas / (max_connections + max_prepared_transactions)) + 64

Desta forma quando rodar o dump vc terá slots suficientes para locks e
também a folga de 64 para sua aplicacao continuar funcionando... porém eis
que me surge uma dúvida??

- Vc precisa fazer um dump de TODOS schemas ao mesmo tempo???


Att,

--
   Fabrízio de Royes Mello 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] SELECT simples lento dentro da procedure e rápido fora dela

2017-06-29 Por tôpico Fabrízio de Royes Mello
Em 28 de junho de 2017 22:57, Ronaldo Bernardes Pereira <
ronaldobernar...@gmail.com> escreveu:
>
> ... [corte] ...
>
>
> --===   Como acredito que você irá resolver seu problema, seque
considerações
>
> O problema encontrado é que o PostgreSQL fez um CAST da coluna (gn)
(Filter: ((gn)::text = '900'::text)) para atender o tipo de argumento
da FUNCTION que era do tipo text e no caso a coluna que ele comparava era
do tipo char. Como o tamanho do campo tipo text pode ser muito maior do que
um campo tipo char,  houve então o CAST implícito pelo PostgreSQL e com
isso única alternativa que ele tinha nesse caso era fazer um seq scan, pois
o índice não atendia para esse caso.
>

Show de bola Ronaldo... excelente análise e retorno... é por esse tipo de
"cuidado" e "dedicação" sem compromisso que nunca deixo de acreditar em
comunidades.

Só por favor evite o top-posting.



> --=== -->> Sugestões:
>
> 1 - Qual o tipo da coluna nfce_chave_acesso_fk e chave_acesso para
entender melhor o problema?
>
> 2 - Colocar o tipo do argumento da FUNCTION com o mesmo tipo da coluna,
para não ocorrer CAST implícito das colunas nfce_chave_acesso_fk ou
chave_acesso
>
> 3 - Caso não tenha como mudar o tipo do argumento da FUNCTION, então
realizar o CAST explicito na variável (chave) no corpo FUNCTION na linha (
 PERFORM num_cupom FROM cf_cupom WHERE nfce_chave_acesso_fk = chave;)
>
> Ex: PERFORM num_cupom FROM cf_cupom WHERE nfce_chave_acesso_fk =
chave::bpchar;
>
> 4 - Executar e nos passar o resultado
>
>

Ótimo... e pior é que esse tipo de equívoco é mais comum do que parece e
nos passou totalmente desapercebido... porém lá no início da thread
deveriamos ter mais informações como a estrutura das tabelas envolvidas
então todos consideraram que os tipos de dados eram iguais e que outro
problema deveria estar ocorrendo... mas novamente nós como "seres humanos"
tendenciamos a complicar as coisas ao invés de simplificar.

Se puder depois @Alexsander dar um feedback, caso a sugestão do Ronaldo
ajudou para ai termos um bom histórico na nossa lista de discussão para
consultas futuras.

Att,

--
   Fabrízio de Royes Mello 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] Como descobrir as dependência de uma function/view no Postgresql 9.2?

2017-06-27 Por tôpico Fabrízio de Royes Mello
Em 27 de junho de 2017 09:14, Celso - Gmail <clorenzett...@gmail.com>
escreveu:
>
> Bom dia senhores,
>
> Estou tentando descobrir na pg_depend as dependências entre os objetos do
banco de dados.
> O objetivo é exportar eles na ordem correta que devem ser
criados/atualizados em outro banco de dados.
> Imagino que em algum lugar deva existir essa informação, visto que o
pg_dump/pg_restore faz isso.
>
> Ou exista outro caminho para chegar neste objetivo.
>
> Abaixo criei 3 objetos simples para exemplicar e facilitar que puder
ajudar.
>
> CREATE OR REPLACE VIEW vw_teste AS SELECT 1 AS emp_empresa;
> CREATE OR REPLACE VIEW vw_teste_2 AS SELECT emp_empresa FROM vw_teste;
>
> CREATE OR REPLACE FUNCTION fc_empresa() RETURNS INTEGER AS
> $BODY$
>SELECT emp_empresa FROM vw_teste;
> $BODY$
> LANGUAGE sql;
>
> O SQL abaixo retorna apenas o Schema como dependência e “deveria”
retornar a vw_teste também.
>
> SELECT * FROM pg_depend where objid in (select oid from pg_class where
relname = 'vw_teste_2');
>

Essa informação de "dependência" entre os objetos é armazenada na tabela
"pg_depend" [1]  do catálogo. No wiki [2] tem uns exemplos de como usar ela
para mostrar dependências entre objetos.

Att,

[1] https://www.postgresql.org/docs/current/static/catalog-pg-depend.html
[2] https://wiki.postgresql.org/wiki/Pg_depend_display

--
   Fabrízio de Royes Mello 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] SQL Select

2017-06-23 Por tôpico Fabrízio de Royes Mello
Em 22 de junho de 2017 15:36, Arthur Nascimento <tur...@gmail.com> escreveu:
>
> On Thu, Jun 22, 2017 at 3:10 PM Ricardo <rica...@longomaquinas.com> wrote:
> > Estou quebrando a cabeça aqui pra criar um select que calcule o
Resultado de entrada e saída da tabela abaixo sem tem que criar uma função.
Será possível ?
>
> Sim, com uma window function:
>
> #select teste.*, sum(v_entrada) over w - sum(v_saida) over w from teste
window w as (partition by teste.mes);
>  tipo | mes | v_entrada | v_saida | ?column?
> --+-+---+-+--
>  E|   1 |   100 |   0 | -100
>  S|   1 | 0 | 200 | -100
>  E|   2 |   150 |   0 |  -80
>  S|   2 | 0 | 230 |  -80
>  E|   3 |   200 |   0 |  200
>  S|   3 | 0 |   0 |  200
> (6 rows)
>
>
> Essa apresentação sobre window functions do Bruce Momjian é uma leitura
adicional muito boa: https://momjian.us/main/writings/pgsql/window.pdf
>

Aproveitando e o gancho e fazendo um pouco de propaganda, o Bruco Momjian
irá palestrar dia 11/07/2017 justamente sobre "Window Functions" na
PGConf.Brasil [1] que é um evento PostgreSQL "online" e "gratuito".

Se inscrevam lá.

Att,

[1] http://www.pgconf.com.br/#palestrantes

--
   Fabrízio de Royes Mello 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] Calculo de memoria com 2 instancias

2017-06-22 Por tôpico Fabrízio de Royes Mello
2017-06-21 19:55 GMT-03:00 Douglas Fabiano Specht <douglasfabi...@gmail.com
>:
>
> Boa noite Pessoal,
> hoje a tarde tivemos uma queda do serviço do postgres e gostaria de uma
opinião de vcs
> temos um servidor debian com 15GB de memória na AWS rodando com 2
instancias do Postgres.
> instancia 1
> PG 9.6 porta 5432
> max_conections: 1000
> sistema OLTP com conexão persistente
>
> instancia 2
> PG 9.5 porta 5433
> max_connection: 80
> sistema web
>
> Qual o calculo que poderia utilizar para cada instancia considerando os
dados acima nas configurações do postgres?
>
> Gostaria de saber se alguém tem em um mesmo servidor 2 serviços do
postgres separados e se poderia passar alguma dica.
>
> Verificamos no log do SO que o mesmo finalizou o processo da instancia 2
por alto consumo de memória
>
>
> Erro no log do postgresql:
> 2017-06-21 16:15:34 BRT [9969]: [1-1]
user=portalbi,db=portalbi,app=[unknown],client=192.168.10.8 WARNING:
 terminating connection because of crash of another server process
> 2017-06-21 16:15:41 BRT [30133]: [21-1] user=,db=,app=,client= LOG:  all
server processes terminated; reinitializing
> 2017-06-21 16:15:41 BRT [30133]: [22-1] user=,db=,app=,client= FATAL:
 could not map anonymous shared memory: Cannot allocate memory
> 2017-06-21 16:15:41 BRT [30133]: [23-1] user=,db=,app=,client= HINT:
 This error usually means that PostgreSQL's request for a shared memory
segment exceeded available memory, swap space, or huge pages. To reduce the
request size (currently 6640975872 bytes), reduce PostgreSQL's shared
memory usage, perhaps by reducing shared_buffers or max_connections.
>

Tem área de swap configurada nesse seu servidor?

Como estão seus parâmetros do kernel:
- vm.overcommit_memory
- vm.overcommit_ratio
- vm.swappiness

Att,

--
   Fabrízio de Royes Mello 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] Agrupar bancos de dados replicado num único Banco

2017-06-22 Por tôpico Fabrízio de Royes Mello
Em 22 de junho de 2017 02:18, Ivanelson Nunes <ivanelsonnu...@gmail.com>
escreveu:
>
> Eu tenho no modelo uma coluna empresa em todas as tabelas. Então qual
caminho seguir pglogical?
> Bucardo?
> BDR?
>

Vc não respondeu a pergunta do Euler, sua chave primária é única em cada
base de dados? Essa coluna empresa faz parte da sua PK... se não nos
mostrar um pouco mais do modelo fica dificil entender. Vide meu outro email
com outra alternativa caso vc não tenha PK única.

Att,

--
   Fabrízio de Royes Mello 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] Agrupar bancos de dados replicado num único Banco

2017-06-22 Por tôpico Fabrízio de Royes Mello
Em 21 de junho de 2017 19:35, Euler Taveira <eu...@timbira.com.br> escreveu:
>
> Em 21 de junho de 2017 18:37, Ivanelson Nunes <ivanelsonnu...@gmail.com>
escreveu:
>>
>>
>> São todos iguais... Em todos os BD's de origem é o mesmo nome de
esquema, mesmas tabelas, mesmas colunas, etc
>
>
> Você só vai conseguir agregar dados de diferentes origens se a
identificação da tupla (geralmente a chave) for única para todas as lojas.
Isso quer dizer que você terá que (i) ter id único para registro na tabela
contrato de todas as lojas ou (ii) ter uma coluna adicional "loja" em cada
tabela a ser replicada para permitir uma identificação única dos registros.
Tudo isso quer dizer que o seu modelo de dados deve estar preparado para
essa agregação de múltiplas fontes de dados.
>
>

Outra alternativa seria cada loja ter o "seu" schema, tipo "loja1",
"loja2", "loja3", ..., "loja200"... assim os objetos seriam diferentes, e
na "matriz" outro schema também... isso é fácil ajustando adequadamente o
"search_path" em cada instância para deixar transparente para a aplicação
pois provavelmente ela não qualifica o schema... ou qualifica ao usar em
SQL Ivanelson??

Nesta base central em um outro esquema especial, tipo "agregador" poderia
criar toda a estrutura e por herança cada tabela de cada esquema herdar
teste, algo do tipo:


CREATE SCHEMA agregador;
CREATE SCHEMA matriz;
CREATE SCHEMA loja1;
CREATE SCHEMA loja2;

CREATE TABLE agregador.contrato(...);
CREATE TABLE matriz.contrato(..) INHERITS (agregador.contrato);
CREATE TABLE loja1.contrato(..) INHERITS (agregador.contrato);
CREATE TABLE loja2.contrato(..) INHERITS (agregador.contrato);


Desta forma temos os dados isolados por esquema e, caso necessário, também
todos dados em um único ponto no esquema "agregador".

Meus 0.01 centavos!

Att,

--
   Fabrízio de Royes Mello 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] Agrupar bancos de dados replicado num único Banco

2017-06-21 Por tôpico Fabrízio de Royes Mello
Em 21 de junho de 2017 18:11, Ivanelson Nunes <ivanelsonnu...@gmail.com>
escreveu:
>
>
> Em 21 de junho de 2017 18:01, Euler Taveira <eu...@timbira.com.br>
escreveu:
>>
>> A consolidação em um mesmo banco de dados só vai funcionar se na origem
houver nomes de esquemas distintos (geralmente as aplicações usam o mesmo
nome).
>
>
> Euler,
>
> Fiquei confuso nessa parte! Tipo eu então minha Loja1, Loja2, ...Loja200
e nessas lojas tenho meu BD com seu esquema, etc... Então quero trazer
esses dados para um "BD-GERAL" remoto que fica no meu datacenter, porem
nesse "BD-GERAL" deve possibilitar a junção de todos esses dados.
>
> Por exemplo, eu tenho a tabela "CONTRATO", então nesse BD-GERAL eu quero
enxergar/selecionar num select os CONTRATOS da Loja1, Loja2,...Loja200 e
assim seria com as demais tabelas.
>

Qual a confusão? O Euler falou exatamente a restrição de que o
"esquema"."tabela" de cada database precisa ser IGUAL na ORIGEM e
DESTINO... vc tem em cada database "esquemas" distintos para poder
distinguir, por exemplo, a tabela "contrato" de cada Loja??

Att,

--
   Fabrízio de Royes Mello 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] utilizar copy na maquina Local

2017-06-19 Por tôpico Fabrízio de Royes Mello
Em 19 de junho de 2017 11:11, Douglas Fabiano Specht <
douglasfabi...@gmail.com> escreveu:
>
> Em 19 de junho de 2017 10:58, Flavio Henrique Araque Gurgel <
fha...@gmail.com> escreveu:
>>
>> Em seg, 19 de jun de 2017 15:53, Douglas Fabiano Specht <
douglasfabi...@gmail.com> escreveu:
>>>
>>> bom dia pessoal,
>>> preciso utilizar o copy para gerar um csv, ocorre que o comando irá ser
executado em uma maquina que não é o servidor, e preciso salvar o resultado
que é o arquivo csv na maquina  cliente.
>>> alguém ja precisou disso ou usou algo diferente do copy para exportar
local nao no servidor?
>>> utilizo postgres 9.5 e servidor linux, a maquina cliente é windows 7
>>
>> Você pode usar o \copy do psql.
>
>
> Obrigado pela resposta Gurgel,
> como eu poderia utilizar dentro de uma function o \copy? isso seria
possível?

Douglas,

O \copy é um "meta-comando" do psql [1] e você não consegue utilizar ele
dentro de uma PL. Para utlizar o COPY para exportar dados em formato CSV no
seu "client" vc terá que utilizar a implementação do protocolo do COPY na
sua linguagem de programação (se ela suportar ela claro).

Att,


[1]
https://www.postgresql.org/docs/current/static/app-psql.html#APP-PSQL-META-COMMANDS-COPY

--
   Fabrízio de Royes Mello 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] unsubscrib

2017-06-02 Por tôpico Fabrízio de Royes Mello
Em 2 de junho de 2017 16:44, Silfar Goulart <sil...@gmail.com> escreveu:
>
>
> Silfar Goulart
>

Boa tarde Silfar,

Para vc se "desinscrever" desta lista precisa acessar o link [1] e no final
da página informar seu email clicar no botão "Desincrever-se ou editar
opções".

Att,


[1] https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

--
   Fabrízio de Royes Mello 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] SELECT simples lento dentro da procedure e rápido fora dela

2017-06-02 Por tôpico Fabrízio de Royes Mello
Em 2 de junho de 2017 12:32, Alexsander Rosa <alexsander.r...@gmail.com>
escreveu:
>
> 2017-06-02 11:50 GMT-03:00 Flavio Henrique Araque Gurgel <fha...@gmail.com
>:
>>
>> Para de bagunça a lista, pelamor.
>> A gente responde LÁ EMBAIXO ! olha só:
>
>
> Coloquei STABLE e não mudou nada:
> EXPLAIN (ANALYZE, TIMING, BUFFERS) SELECT
sp_teste('4317060556386800011365701004061895261728');
> QUERY PLAN

>
--
>  Result  (cost=0.00..0.26 rows=1 width=0) (actual time=1478.944..1478.944
rows=1 loops=1)
>Buffers: shared hit=18731 read=123491
>  Total runtime: 1478.955 ms
> (3 rows)
>

Roda o ajuste abaixo (além do STABLE) e roda novamente o teste:

ALTER FUNCTION sp_teste(text) COST 10;

Att,

-- 
   Fabrízio de Royes Mello 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] SELECT simples lento dentro da procedure e rápido fora dela

2017-06-02 Por tôpico Fabrízio de Royes Mello
Em 2 de junho de 2017 10:46, Alexsander Rosa <alexsander.r...@gmail.com>
escreveu:
>
> A tabela tem cerca de 1 Gb:
> SELECT pg_size_pretty(pg_relation_size('cf_cupom'));
>  pg_size_pretty
> 
>  1114 MB
> (1 registro)
>
> Existe um índice UNIQUE no campo utilizado na query:
> "idx_cupom_chave" UNIQUE, btree (nfce_chave_acesso_fk) WHERE
nfce_chave_acesso_fk IS NOT NULL
>
> O campo utilizado também é FOREIGN KEY:
> "cupom_chave_nfe_fkey" FOREIGN KEY (nfce_chave_acesso_fk) REFERENCES
nfe_xml(chave_acesso) DEFERRABLE
>
> Código da procedure de teste:
> CREATE OR REPLACE FUNCTION rnx.sp_teste(chave text)
>  RETURNS text
>  LANGUAGE plpgsql
> AS $function$
> DECLARE
> BEGIN
>   RAISE NOTICE '(%)', clock_timestamp()::timestamp(6);
>   -- EXECUTE 'SELECT cod_empresa_fk FROM cf_cupom WHERE
nfce_chave_acesso_fk = $1' INTO empcupom USING chave;
>   PERFORM num_cupom FROM cf_cupom WHERE nfce_chave_acesso_fk = chave;
>   RAISE NOTICE '(%)', clock_timestamp()::timestamp(6);
>   -- demora 1617 ms
>
>   PERFORM chave_acesso from nfe_xml where chave_acesso = chave;
>   RAISE NOTICE '(%)', clock_timestamp()::timestamp(6);
>   -- demora 21 ms
>
>   Return 'OK';
> END;
> $function$
> ;
>
> Comparativo:
> select sp_teste('4317060556386800011365701004061895261728');
> -- demora 1630 ms
>
> select num_cupom FROM cf_cupom WHERE nfce_chave_acesso_fk =
'4317060556386800011365701004061895261728';
> -- demora 11 ms
>
> Foi feito um VACUUM FULL ANALYZE na tabela.
> Alguém tem alguma dica para ajudar em nossa investigação?
>

Faz o seguinte, remove aqueles "RAISE NOTICE" da sua PL e roda no psql com
o "\timing on"...

Att,

--
   Fabrízio de Royes Mello 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] Reiniciar sequence diariamente

2017-05-27 Por tôpico Fabrízio de Royes Mello
Em 27 de maio de 2017 15:33, Neto pr <neto...@gmail.com> escreveu:

> Ola pessoal
> preciso que uma sequence seja zerada todos os dias, ou seja, que o campo
> - start with receba zero.
>

Crontab?

Att,

-- 
   Fabrízio de Royes Mello 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] Senhores como alterar o e-mail de contato com a lista

2017-05-23 Por tôpico Fabrízio de Royes Mello
Em 23 de maio de 2017 13:50, <j...@inbraco.com> escreveu:
>
> Boa tarde
>
> Senhores como altero o e-mail que uso para contatar com a lista
>

Basta acessar [1] e no final da página informar seu email e clicar no botão
"Desinscrever-se ou editar opções".

Att,

[1] https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

--
   Fabrízio de Royes Mello 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] PgDay em Curitiba no 9o. FTSL

2017-05-22 Por tôpico Fabrízio de Royes Mello
Em 22 de maio de 2017 10:27, Alisson Coelho de Morais <
coelhotopet...@gmail.com> escreveu:

> Olá Pessoal,
> a comunidade tem interesse em fazer um PgDay dentro do Fórum de Tecnologia
> em Software Livre que acontecerá de 27 a 29 de setembro?
> No aguardo,
>
>
Bom dia Alisson,

PGDays são sempre muito bem vindos, porém será que não vais gerar certa
"concorrência" com o evento nacional (PGBR) que irá ocorrer em Setembro
também?

https://pgbr.postgresql.org.br/2017/

Att,


-- 
   Fabrízio de Royes Mello 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] Espaço em disco após update = null

2017-04-27 Por tôpico Fabrízio de Royes Mello
Em 27 de abril de 2017 03:55, Flavio Henrique Araque Gurgel <
fha...@gmail.com> escreveu:
>>
>>
>>  É um sistema online com 30 mil usuários, ou seja, não tem como eu ter
downtime. Eu entendo que não há como fazer isso sem ter um downtime, pois
qualquer coisa que eu faça eu irei precisar de um exclusive lock naquela
tabela e, o usuário, não consegue nem logar se não tiver acesso à ela.
>>
>> Mas de qualquer forma eu provavelmente irei escolher a opção do pg_dump.
Pois para eu fazer tanto o vacuum full quanto o CREATE TABLE AS, irei
precisar ter mais espaço em disco e pra isso vou ter que por o sistema 2x
offline, uma para incluir mais espaço e outra para rodar os comandos.
>>
>> A tabela tem 4TB, complicando ainda mais minha vida.
>
>
> Sim, mas isso é contando sua coluna bytea que vai desaparecer.
> Portanto,  a solução de criar uma tabela como disse o Euler pode ser
vantajosa, pois a nova tabela não terá o tamanho da original e será bem
menor.
>
> Você pode fazer isso "a quente" e ter um corte de serviço bem rápido só
pra inserir as novas linhas desde a criação e remover a antiga tabela
gigante, o que provavelmente levará poucos minutos e,  dependendo do
sistema,  poderá até trabalhar sem as linhas ausentes até que você as
insira, ou seja, você pode fazer tudo com um downtime bem bem pequeno.
>

Outra opção pra esse cenário seria rodar aquele UPDATE e após isso um
pg_repack [1] para eliminar o inchaço *sem* o downtime de um vacuum full ou
de algum script para recriar a tabela.

Att,


[1] http://reorg.github.io/pg_repack/

--
   Fabrízio de Royes Mello 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] Espaço em disco após update = null

2017-04-26 Por tôpico Fabrízio de Royes Mello
Em 26 de abril de 2017 23:54, Euler Taveira <eu...@timbira.com.br> escreveu:
>
> Em 26 de abril de 2017 23:40, Patrick B <patrickbake...@gmail.com>
escreveu:
>>
>>
>> Se eu fizer um basebackup do meu servidor e restaurar num novo, também
funcionaria?
>
> Não. Você estará transportando o inchaço de um lugar para outro. Uma
possibilidade seria
> renomear a tabela atual, fazer CREATE TABLE foo AS SELECT a, b, NULL as
campobytea
> FROM bar (as restrições devem ser criadas também) e depois que tudo
estiver certo fazer
> um DROP TABLE na tabela original. Isso irá evitar o inchaço.
>

É uma alternativa, mas se o OP tem janela de manutenção e, *dependendo* do
modelo de dados, será mais fácil ele realizar o UPDATE que mencionou
seguido de um VACUUM FULL que irá reescrever todos datafiles.

Att,

--
   Fabrízio de Royes Mello 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] Recuperar Base PostgreSQL pasta data

2017-04-24 Por tôpico Fabrízio de Royes Mello
Em 24 de abril de 2017 11:06, Edson F. Lidorio <ed...@openmailbox.org>
escreveu:
>
> Fabrízio bom dia,
>
> Para Debian, precisa também fazer alguma configuração adicional?
>

Com relação a SELinux?

--
   Fabrízio de Royes Mello 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] Recuperar Base PostgreSQL pasta data

2017-04-24 Por tôpico Fabrízio de Royes Mello
Em 24 de abril de 2017 08:23, Edson F. Lidorio <ed...@openmailbox.org>
escreveu:
>
> O problema, era o selinux do CentOS, desabilitei o selinux  e apliquei as
pemissões novamente e o PostgreSQL iniciou normalmente.
>
> Comandos usados:
> # sudo /usr/sbin/setenforce 0
> # sudo chown postgres /var/lib/pgsql/9.6/
> #  sudo chown postgres:postgres /var/lib/pgsql/9.6/data
> # chmod 700 /var/lib/pgsql/9.6/
> # sudo systemctl start postgresql-9.6
>
> Observação: Pesquisando no google, percebi que tem mais pessoa com esse
problema. É um problema com CentOS e PostgreSQL, que não se dao muito bem.
>

Também já fiz isso inúmeras vezes, porém acredito que o correto seria
configurar adequadamente o SELinux conforme um pequeno exemplo na doc do
RHEL [1].

Att,


[1]
https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Managing_Confined_Services/sect-Managing_Confined_Services-PostgreSQL-Configuration_Examples.html

--
   Fabrízio de Royes Mello 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] Database is in recovery mode

2017-04-24 Por tôpico Fabrízio de Royes Mello
Em 24 de abril de 2017 08:53, Daniel Luiz da Silva <daniel.si...@ipm.com.br>
escreveu:

> Bom dia,
> Fabrízio,
>
> Acho esse assunto muito interessante, se houvesse um treinamento na
> Timbira sobre essa relação do Postgres com memória linux internamente, ou
> seja, calcular no momento como está o buffer cache, shared memory e média
> de overcommit, explorando melhor o arquivo vminfo do linux, eu aderia.
> Obrigado por responder esses tipos de tópicos sempre me ajuda bastante.
>
>
Bom dia Daniel,

Que bom que ajudo de alguma forma... assim estamos então cumprindo nosso
papel enquanto comunidade...

Falando sobre a Timbira, já possuímos treinamento OnLine de Tuning do
PostgreSQL [1] onde em uma parte do mesmo abordamos justamente do Sistema
Operacional, que no caso deste treinamento é o Linux (ainda não temos
preparado para Windows). Se tiver mais dúvidas sobre a timbira podes entrar
em contato via comerc...@timbira.com.br.

Att,


[1] https://www.sympla.com.br/postgresql-tuning__115174

-- 
   Fabrízio de Royes Mello 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] Database is in recovery mode

2017-04-20 Por tôpico Fabrízio de Royes Mello
Em 20 de abril de 2017 17:55, Tiago José Adami <adam...@gmail.com> escreveu:
>
> >
> > Nem preciso te dizer que deves atualizar pra 9.4.11...
>
> Sabia que a primeira coisa que me diriam seria para atualizar ;)
>
> E concordo plenamente, mas a instalação é do repositório oficial da
> Amazon que está desatualizado. Por enquanto uma GMUD para incluir
> outro repo ainda não foi discutida.
>

Faz parte...


> >> (...)
> >> WARNING,57P02,"terminating connection because of crash of another
> >> server process","The postmaster has commanded this server process to
> >> roll back the current transaction and exit, because another server
> >> process exited abnormally and possibly corrupted shared memory.","In a
> >> moment you should be able to reconnect to the database and repeat your
> >> command."
> >> (...)
> >
> > Só tem essa informação no LOG?? Essa informação que vc pegou não é a
causa e
> > sim o efeito... vasculhe seu log por mais informações.
>
> Estou vasculhando pela 3a vez os logs, mas não há nenhuma informação
> adicional. Estas mensagens ocorre logo após a execução de um SQL
> SELECT qualquer.
>

Isso é sintoma mesmo de OOMKiller como o colega Felipe mencionou
anteriormente.


> >
> > Eu arrisco que vc pode estar passando por algum "overcommit_memory" ou
coisa
> > parecida. Esse linux tem swap e como está o overcommit_memory?
>
> O OOM e overcommit estão com os valores padrão
>
> vm.oom_dump_tasks = 1
> vm.oom_kill_allocating_task = 0
> vm.overcommit_kbytes = 0
> vm.overcommit_memory = 0
> vm.overcommit_ratio = 50
>

Bingo...


> O servidor não tem Swap.
>

Vejo que não é esse seu problema, mas não custaria nada ter uma área de
swap para alguma emergência.


> Estava quase enviando o e-mail quando fui checar novamente o
> /var/log/messages. Agradeço também ao colega Felipe Pereira (obrigado
> pelas dicas), desta vez encontrei a causa mortis:
>
> Apr 20 18:00:47 ip-172-16-4-27 kernel: [238117.075735] Killed process
> 2485 (postmaster) total-vm:2124064kB, anon-rss:272232kB, file-rss:4kB,
> shmem-rss:1588240kB
>

Bingo...


> A questão é: mesmo tendo uma quantidade de memória livre que fica
> sempre entre 3 e 4 GB (livre, o resto é cache + usada), como isso pode
> estar acontecendo?
>

Isso é por conta do "overcommit_ratio = 50" que indica que foi solicitado
alocar mais memória que o "total de swap + 50% da RAM" [1] ... como vc nao
tem swap entao ele tentou alocar mais que RAM/2 e o kernel matou...

Att,


[1] https://www.kernel.org/doc/Documentation/vm/overcommit-accounting


--
   Fabrízio de Royes Mello 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] Database is in recovery mode

2017-04-20 Por tôpico Fabrízio de Royes Mello
Em 20 de abril de 2017 15:35, Tiago José Adami <adam...@gmail.com> escreveu:
>
> Boa tarde a todos.
>
> Tenho um servidor na Amazon com PostgreSQL 9.4.9 64-bit instalado, lá
> roda uma versão do Fedora modificada.
>

Nem preciso te dizer que deves atualizar pra 9.4.11...


> Há 16 GB de memória RAM.
>
> max_connections=300
> shared_buffers=2GB
> work_mem=4MB
>
> De uns tempos para cá, após configurar o backup com arquivamento de
> logs está ocorrendo este erro sem muita razão aparente. Sempre ocorre
> depois de algum SQL SELECT (não necessariamente o mesmo e dificilmente
> usando as mesmas tabelas, já verifiquei isso).
>
> (...)
> WARNING,57P02,"terminating connection because of crash of another
> server process","The postmaster has commanded this server process to
> roll back the current transaction and exit, because another server
> process exited abnormally and possibly corrupted shared memory.","In a
> moment you should be able to reconnect to the database and repeat your
> command."
> (...)
>

Só tem essa informação no LOG?? Essa informação que vc pegou não é a causa
e sim o efeito... vasculhe seu log por mais informações.


> A aplicação recebe uma mensagem "Database is in recovery mode". Dura 2
> ou 3 segundos e volta ao normal.
>

Esse é o comportamento normal...


> Nas minhas pesquisas e até onde vai meu conhecimento isto ocorre com
> problemas de hardware, em especial, memórias (lembro-me do tempo do
> PostgreSQL 7.4 rodando em servidores com pentes de memória de
> velocidade e latências diferentes).
>
> Mas levando em consideração que o servidor está na Amazon... o que
> mais poderia estar causando este erro? Algum palpite?
>

Eu arrisco que vc pode estar passando por algum "overcommit_memory" ou
coisa parecida. Esse linux tem swap e como está o overcommit_memory?

Att,

--
   Fabrízio de Royes Mello 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] MeetUp "Bate-papo sobre PostgreSQL" - 2ndQuadrant

2017-03-07 Por tôpico Fabrízio de Royes Mello
2017-03-07 15:24 GMT-03:00 William Ivanski <william.ivan...@gmail.com>:
>
> Agradeço a sugestão, Fabrizio!
>
> Eu não sei se podemos fazer isso. PgDays normalmente são organizados pela
comunidade oficial do PostgreSQL Brasil ou da região.
>

Ué por acaso vc não se considera um membro da comunidade?


> Outro ponto, não é um evento de um dia inteiro, é somente à noite, das
19h às 21h. Poderia ser PgNight, talvez, rss
>

Quanto a turno e/ou período de tempo creio que não seja um problema...
agora até fiquei em dúvida em relação a isso, porque poderiamos estabelecer
entao:

- PGBR (evento nacional mais de um dia)
- PGDay (evento local um dia inteiro)
- Meetups (evento local um turno)  <-- aqui está seu evento

Idéias/Críticas/Sugestões??

Att,

--
   Fabrízio de Royes Mello 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] MeetUp "Bate-papo sobre PostgreSQL" - 2ndQuadrant

2017-03-07 Por tôpico Fabrízio de Royes Mello
2017-03-07 14:36 GMT-03:00 William Ivanski <william.ivan...@gmail.com>:
>
> https://www.facebook.com/events/1291506420931048/
>
> Data: 16/03/2017 às 19:00 horas
> Local: Funpar - Sala 05 - R. João Negrão, 280, Centro, Curitiba - PR
>
> Agenda:
> - Disaster Recovery com Barman 2
> - PostgreSQL no Raspberry Pi
> - OmniDB: uma ferramenta web para gerenciamento e conversão de bancos de
dados
>
> Palestrantes: Rubens Souza (2ndQuadrant Itália), Rafael Castro, William
Ivanski
>
> Entrada Franca
>

Show de bola a iniciativa, mas porque não nomear o encontro como um PDay ??

Att,

--
   Fabrízio de Royes Mello 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] alerta de tentativas de conexão

2017-03-02 Por tôpico Fabrízio de Royes Mello
On 02-03-2017 09:56, Alessandro Lima wrote:
> Bom dia,
> 
> Gostaria de saber se existe alguma ferramenta para alertar/monitorar
> tentativas (ataques) de conexão ao banco de dados.
> 

O PostgreSQL não implementa isso, porém vc mesmo pode implementar isso
de forma elegante criando uma extensão usando _hooks_ [1], em especial o
_ClientAuthentication_hook_type_ que está disponível apartir da 9.1.

Com esse _hook_ vc consegue desviar a autenticação e implementar o seu
código, por exemplo esse controle de número de tentativas de uma mesma
origem em um curto espaço de tempo.

Um exemplo de uso desse _hook_ é a extensão que vem com o PostgreSQL
chamada _auth_delay_ [2] que tem um código bem simples [3]

Att,

[1] https://wiki.postgresql.org/images/e/e3/Hooks_in_postgresql.pdf
[2] https://www.postgresql.org/docs/current/static/auth-delay.html
[3] https://doxygen.postgresql.org/auth__delay_8c_source.html

-- 
   Fabrízio de Royes Mello 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] setar fsync na sessao

2017-01-31 Por tôpico Fabrízio de Royes Mello
On 31-01-2017 17:35, Douglas Fabiano Specht wrote:
> pessoal,
> tenho uma leitura bem intensa que efetua um insert com muitos dados em
> uma temp table.
> estava lendo para setar o FSYNC=off para agilizar o processo, mas
> gostaria de saber se isso é possível somente na sessão que estou ou irá
> afetar todas as conexões?
> 

Não, a GUC fsync não pode ser definida "por sessão"... eu também não
recomendaria o seu uso pois ela desligada pode levar a corrupção de
dados em caso de alguma falha.

Você pode usar o "synchronous_commit = off" na sua sessão, o que ajuda
em operações intensas de escrita.

Att,

-- 
   Fabrízio de Royes Mello 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] Paper "The Design of Postgres"

2017-01-26 Por tôpico Fabrízio de Royes Mello
Pessoal,

Para quem se interessar vejam um paper antigo da University of
Califórnia entitulado "The Desing of Postgres" [1].

Interessante saber um pouco das nossas origens...

Att,

[1] http://db.cs.berkeley.edu/papers/ERL-M85-95.pdf

-- 
   Fabrízio de Royes Mello 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] VACUUM FULL

2017-01-26 Por tôpico Fabrízio de Royes Mello
On 26-01-2017 12:19, Danilo Silva wrote:
> Pessoal,
> 
> Atualmente utilizo a versão 9.3 com replicação nativa para um escravo,
> fazendo cópia dos archives para o escravo + servidor de backup.
> 
> Como podemos identificar a necessidade ou não de rodar um VACUUM FULL?
> 

Se vc der uma pesquisada no histórico [1] desta lista irá encontrar
diversas discussões a respeito de como detectar inchaço de objetos

> Como teste, rodei o VACUUM FULL apenas em uma tabela de 700mb e o
> diretório pg_xlog cresceu 400mb a mais e levou um tempo para ser
> liberado esse espaço adicional, esse comportamento é normal? 
> 

Sim. O VACUUM FULL reescreve os datafiles da sua tabela (heap + toast +
indexes), e isso quer dizer que ele faz "literalmente" uma cópia física
dos datafiles, ou seja, ele consome espaço em disco além do já utilizado
pelos datafiles atuais.

E além dos datafiles como qualquer operação transacional normal do
PostgreSQL (com exceção de Unlogged Tables) ele além de reescrever os
datafiles também escreve os logs de transações (diretório xlog).

Ele é implementado desta forma porque precisa garantir as
características "Atomicidade" e "Durabilidade" do ACID através das
técnicas de Write-ahead Logging [2]. E como os wal files são gerados
(pg_xlog) a replicação física poderá se beneficiar pois usa os registros
dos logs de transação para aplicar a mudança nas páginas também no(s)
slave(s).


> Em média, quanto tempo leva para o espaço em disco ocupado pelo VACUUM
> FULL ser liberado?
> 

Difícil mensurar isso porque, por exemplo, seu servidor pode estar
retendo wal files porque seu procedimento de archive pode estar
demorando por latência de rede ou algo do gênero. Com archive_mode
ligado e o archive_command devidamente configurado o PostgreSQL só irá
reciclar o wal (remover segmentos antigos do pg_xlog) quando o
arquivamento for bem sucedido. Entao se vc faz um "scp" ou "rsync", por
exemplo, o sinal de que o segmento foi copiado com sucesso para outro
local só será enviado ao PostgreSQL após o comando ser executado.

Note que eu apenas "imaginei" um cenário baseado nas informações que
você forneceu, mas existem outras variáveis a considerar.

Att,


[1] https://www.postgresql.org.br/historico
[2] https://en.wikipedia.org/wiki/Write-ahead_logging

-- 
   Fabrízio de Royes Mello 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] Sincronismo de tabela

2017-01-20 Por tôpico Fabrízio de Royes Mello
On 20-01-2017 15:31, Pedro B. Alves wrote:
> 
> * Dae pessoal.
> 
> Não sei se seria nesse fórum para essa duvida mas vamos lá..
> 
> Eu tenho uma tabela no meu banco de dados da empresa tabela de Parâmetros.
> 
> que queria que fosse sincronizado com as bases dos meus clientes.
> 
> tipo, cadastro o um parametro novo na nossa base e gostaria que fosse
> para a tabela de nossos clientes também.. 
> 

E na base do seu cliente essa tabela também sofrerá alterações?


> alguém tem alguma ideia de qual a melhor forma de fazer isso?
> 

Existem algumas ferramentas/soluções para essa atividade como o
pglogical [1] ou Slony [2]. Cada uma delas tem algumas restrições bem
como vantagens e desvantagens.


> sabendo que temos bastante registros nessa tabela.
> 

A quantidade de registros que importa em uma replicação geralmente não é
o total da tabela, e sim o volume de alterações (deltas) que a mesma
sofre. Se vc tiver uma tabela com milhoes de registro que quase nao
sofre alteração apenas o setup inicial da replicação sera demorado.

Att,

-- 
   Fabrízio de Royes Mello 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] Sequence Jump 32

2017-01-17 Por tôpico Fabrízio de Royes Mello
On 16-01-2017 23:25, Euler Taveira wrote:
> On 16-01-2017 16:01, Jonas Teixeira de Freitas wrote:
>> https://listas.postgresql.org.br/pipermail/pgbr-geral/2010-April/020556.html
>>
>> Para o antigo problema de sequence pular 32 registros *log_cnt, * alguém
>> conseguiu alguma solução?
>>
> Além da discussão citada, também comentei em [1] e na -hackers houve uma
> discussão [2] também.
> 
> Em resumo, é aquilo que o Dutra havia comentado: sequências foram
> projetadas para terem "buracos". O fato de haver esse "buraco" de até 32
> números, é um detalhe de implementação para otimizar a escrita no WAL.
> 

Exatamente... as Sequences no PostgreSQL foram projetadas para NUNCA
conflitar e não seguir uma série sem falhas (sua necessidade de negócio).

Então se sua necessidade de negócio é uma série sem falhas talvez o
objeto SEQUENCE não seja o ideal.


>> Alguma forma de conseguir controlar a sequence para evitar que ocorra
>> esse salto de numeração.
>>
> Não tem como controlar esse número em tempo de compilação ou a partir da
> configuração. A única maneira é alterar SEQ_LOG_VALS em sequence.c.
> 

Pode até ser mas isso pode levar a problemas de performance, veja o
comentário no código:

  46 /*
  47  * We don't want to log each fetching of a value from a sequence,
  48  * so we pre-log a few fetches in advance. In the event of
  49  * crash we can lose (skip over) as many values as we pre-logged.
  50  */
  51 #define SEQ_LOG_VALS32

Sem contar que será necessário gerar um "fork" do PostgreSQL e
necessário empacotar e distribuir a sua versão do PostgreSQL com esse
"pequeno" ajuste. Se me perguntar "dá pra fazer" eu responderei que sim,
mas será que vale a pena?


> Por fim, não parece o serviço de maneira inadequada (kill -9, -m
> immediate, ...) que você não terá problemas com isso.
> 

Com certeza... parar o serviço do PostgreSQL conforme o Euler descreveu
vc terá esse comportamento anormal e também em casos de crash no
servidor seja por qual motivo for.


> Não, isso definitivamente não é um bug.
> 

Exato, é um comportamento normal do PostgreSQL conforme demonstrei no
post citado pelo Jonas.

Existem algumas alternativas para implementar uma sequence "gapless" no
PostgreSQL, veja:

https://gist.github.com/fabriziomello/5cfff0541cd34e157ead545d815c2194
http://www.varlena.com/GeneralBits/130.php

Entretanto existe um patch que está "parado" que tem a intenção de
implementar o "Sequence Access Method" [1] onde uma implementação como
extensão é justamente o "Gapless Sequence" que irá atender esses
requisitos de negócio. Participei como revisor do código mas ainda tem
alguns problemas de design e o mesmo não foi pra frente. Ainda não vi
nada novo do autor para a versão 10.

Att,

[1] https://commitfest.postgresql.org/9/466/

-- 
   Fabrízio de Royes Mello 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] Before Delete !

2016-11-30 Por tôpico Fabrízio de Royes Mello
On 29-11-2016 18:20, Agape World Informática Ltda wrote:
> Boa Noite.
> 
> Preciso fazer uma condicao em uma trigger para que o usuario
> Não consiga deletar alguns registros.
> 
> Alguem sabe o procedimento.
> Uso Postgres 9.3.
> 
> 
> Tipo :
> 
> If old.idcodigo < 10 then
>--não delete o registros.
> Return old.
> 

Use "RETURN NULL" pra desconsiderar as alterações efetuadas pela trigger.

Att,


-- 
   Fabrízio de Royes Mello 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] PgTune x PGConfig Opiniões

2016-11-29 Por tôpico Fabrízio de Royes Mello
On 25-11-2016 15:47, Eduardo Az - EMBRASIS wrote:
> Pessoal, boa tarde
> 
> Gostaria de opiniões, boas ou ruins, dos experts no PG.
> 
> Tenho usado estas 2 "páginas", que sugerem configurações pro banco
> (atualmente, mais a 1).
> 
> 1) http://www.pgconfig.org
> 
> 2) http://pgtune.leopard.in.ua
> 
> São realmente boas? As configurações mostradas tem coerência?
> 
> Eu uso seguindo o principio que é melhor usar do que deixar no
> "standard", apesar das minhas bases serem bem pequenas (a maior +-
> 500MB), em comparação ao que seria uma base "de respeito".
> 

Eduardo,

Ambas ferramentas são boas, e na maioria dos cenários é melhor utilizar
a configuração gerada por ela do que a padrão do PostgreSQL, que apesar
de ter "evoluido" em alguns pontos, ainda é conservadora.

BTW prefiro o pgconfig.org porque além de conhecer o autor (nosso colega
Sebastian), também acredito que esteja bem mais atualizada do que outras.

Att,

-- 
   Fabrízio de Royes Mello 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] Tabela Percentual alto de Tuplas marcadas como Delete

2016-11-29 Por tôpico Fabrízio de Royes Mello
On 28-11-2016 09:16, Fernando Franquini 'capin' wrote:
> 
> O autovacuum deveria fazer isso pra você. VACUUM FULL é uma operação
> custosa para tabelas grandes e a tabela fica bloqueada durante toda
> a execução.
> Seu autovacuum está ligado ?
> Faça :
> SHOW autovaccum;
> Pode ser que seu dba anterior tenha deixado desligado por algum motivo.
> 
> 
> Sim, está desligado por opção, pois chegaram a conclusão que o
> AUTOVACUUM durante o dia atrapalha (devido o tamanho das tabelas - Mas
> ainda quero realizar uma alteração a acompanhar isso um dia), por isso é
> feito VACUUM em algumas tabelas principais durante a noite (porque é
> mais rápido) e VACUUM FULL no final de semana, sim, temos essa janela.
> 

Esse é um equivoco comum... desligar o autovacuum é, na maioria dos
cenários, pior do que manter ligado. Dê uma lida nesse post da CitusData
que nosso colega Sebastian gentilmente traduziu para pt-br [1].

Vc precisa entender que tabelas que geram muitas tuplas mortas (por
DELETE/UPDATE ou INSERT cancelado) o autovacuum deve ser mais agressivo,
ou seja, executar com mais frequencia... a idéia é que ele fique "sempre
rodando rapidamente" na tabela... e não o contrário.


>
> <..corte..> 
> 
> Isso não é um problema, é apenas uma estatística sobre como seu
> banco usa uma tabela.
> 
> 
> Opa, blz então. Se fica somente na estatística, pode prejudicar a
> utilização dos índices, certo? 
> 

Essa estatística que o Flávio mencionou não influencia diretamente nos
planos de execução, se esse é seu receio. Que usa essa informação é o
próprio "launcher" do autovacuum, mas também pode ser usada por sua
ferramenta de monitoramento preferida para acompanhar os picos de mais
"lixo" deixado pra trás em determinados objetos... uso muito essa
informação para auxiliar no tuning do autovacuum.

Att,


[1] http://swebber.me/blog/2016/11/14/autovacuum-nao-e-o-inimigo/

-- 
   Fabrízio de Royes Mello 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] Seguencia de logs no audit trigger

2016-11-22 Por tôpico Fabrízio de Royes Mello
On 22-11-2016 14:28, Alessandro Lima wrote:
> Boa tarde,
> 
> Costumo pesquisar em meus logs do Audit Trigger ordenando por
> action_tstamp_stm para ver a sequencia de alterações em um registro.
> Mas percebi que em alguns casos os dados alterados estavam fora da ordem
> cronológica, constatei então que a ordem sequencial da chave primária
> event_id e da transaction_id não estão coerentes com a ordem crescente
> das datas, por exemplo:
> event_idtransaction_idaction_tstamp_txaction_tstamp_stmaction_tstamp_clk
> 9398667373628162016-11-17 09:17:59.453002-022016-11-17
> 09:17:59.460058-022016-11-17 09:17:59.460938-02
> 9398684673628482016-11-17 09:11:58.574255-022016-11-17
> 09:11:58.57457-022016-11-17 09:11:58.575121-02
> 9398685873628662016-11-17 09:12:21.143129-022016-11-17
> 09:12:21.143443-022016-11-17 09:12:21.166096-02
> 9398693573629852016-11-17 09:13:12.403124-022016-11-17
> 09:13:12.411809-022016-11-17 09:13:12.412167-02
> 
> Exemplo da function que captura os logs:
> audit_row = ROW(
> nextval('audit.logged_actions_event_id_seq'),-- event_id
> current_timestamp,-- action_tstamp_tx
> statement_timestamp(),-- action_tstamp_stm
> clock_timestamp(),-- action_tstamp_clk
> txid_current(),   -- transaction ID
> 
> Alguém sabe me explicar o que está acontecento?
> 

Jovem, execute o exemplo abaixo e vc entenderá a diferença:

BEGIN;

SELECT current_timestamp, clock_timestamp();

SELECT pg_sleep(60);

SELECT current_timestamp, clock_timestamp();

SELECT pg_sleep(60);

SELECT current_timestamp, clock_timestamp();

ROLLBACK;


Att,

-- 
   Fabrízio de Royes Mello 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] PG Restore demorando muito

2016-11-21 Por tôpico Fabrízio de Royes Mello
On 19-11-2016 14:05, Matheus de Oliveira wrote:
> 
> <..corte..>
> 
> [1]
> https://www.postgresql.org/docs/current/static/populate.html#POPULATE-PG-DUMP
> 

Interessante que na documentação ainda recomendam apenas um ANALYZE após
o restore, sendo que somente ele não cria os FSM então não seremos
beneficiados de imediado pelo IndexOnlyScan.

Att,

-- 
   Fabrízio de Royes Mello 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] Replicação 9.2

2016-11-16 Por tôpico Fabrízio de Royes Mello
On 16-11-2016 08:10, Mauricio SYSMO wrote:
> Estou trabalhando com o postgreSQL 9.2.3 com replicação,, ao fazer r o
> slave se recuperar por aquivos de Wall o slave vem perdendo a
> sincronização e parando  post, retornando o seguinte log : 
> 
>  
> 

Vc esta usando uma versão cheia de bugs, inclusive relacionados a
replicação. Por favor atualize para 9.2.19, refaça seu slave (base
backup) e acompanhe.

Att,

-- 
   Fabrízio de Royes Mello 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] json para coluna

2016-11-03 Por tôpico Fabrízio de Royes Mello
On 03-11-2016 23:57, Douglas Fabiano Specht wrote:
> Pessoal,
> como pego um objeto do tipo json e transformo ele em uma coluna?
> exemplo tenho um retorno de uma função ('[{"versaoatual":1}]' e gostaria
> de transformar ela em resultado normal de select coluna|valor
> exemplo:
>  versaoatual
>   1
> isso e possivel?
> 

Isso que vc precisa?

fabrizio=# SELECT json_extract_path_text('{"versaoatual":1}'::json,
'versaoatual');
 json_extract_path_text
------------
 1
(1 row)

Att,

-- 
   Fabrízio de Royes Mello 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] Mensagem ao aplicar patch

2016-11-03 Por tôpico Fabrízio de Royes Mello
On 03-11-2016 11:10, Neto pr wrote:
> Olá, bom dia
> Se alguém puder me indicar o que significa essa mensagem que foi
> emitida ao aplicar um Patch nos fontes da versão 9.0.1. Eu verifiquei
> os arquivos que o Patch altera do código fonte e a principio foram
> alterados corretamente.
> 
> Mensagem:" (Stripping trailing CRs from patch; use --binary to disable.) "
> 
> -- Aplicação do comando e mensagem de alerta 
> projeto@neto-pc:~/Downloads/postgresql-9.0.1$ patch -p1 <
> /home/projeto/Downloads/patchssdpg/0001-Split-up-page-cost-options-into-read-and-write.patch
> (Stripping trailing CRs from patch; use --binary to disable.)
> patching file doc/src/sgml/config.sgml
> (Stripping trailing CRs from patch; use --binary to disable.)
> patching file doc/src/sgml/indexam.sgml
> (Stripping trailing CRs from patch; use --binary to disable.)
>  .
>  .
>  .
> -
> 

Tentou fazer como o git indicou ali pra vc: "use --binary do disable"???

Como vc fez download do patch??? Já tive problemas similares pelo
simples fato de fazer download via gmail do patch em anexo.

Tenta fazer download dele direto dos arquivos.

Att,

-- 
   Fabrízio de Royes Mello 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] plpython

2016-10-28 Por tôpico Fabrízio de Royes Mello
On 28-10-2016 11:52, Douglas Fabiano Specht wrote:
> 
> bom dia pessoa
> alguem sabe se nao existem mais os repositorios do plpython conforme o
> link abaixo?
> 
> https://wiki.postgresql.org/wiki/WIP:plpython3
> 

O que vc precisa exatamente? O plpython foi incorporado no "core" já há
algum tempo (não lembro exatamente quanto) em src/pl/plpython [1].

Att,

[1]
https://git.postgresql.org/gitweb/?p=postgresql.git;a=tree;f=src/pl/plpython;h=2b0a2207580e0c01d2dc995348b0f8529f5e1d45;hb=HEAD

-- 
   Fabrízio de Royes Mello 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] record to string

2016-10-27 Por tôpico Fabrízio de Royes Mello
On 27-10-2016 13:33, Douglas Fabiano Specht wrote:
> Boa tarde pessoal
> preciso de uma ajuda.
> tenho uma function onde tem um record de usuario,
> preciso  dar um update utilizando o campo record.id <http://record.id>,
> mas teria que extrair todos os Id deste Record e coloca-lo num in...exemplo
> 
> update usuario set salario=newsalario where id in(record.id
> <http://record.id>)
> 
> alguma solução?
> 

Talvez usar Arrays ??

Poderíamos lhe ajudar melhor se o exemplo fosse mais completo.

Att,

-- 
   Fabrízio de Royes Mello 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] Tamanho real da base em disco

2016-10-26 Por tôpico Fabrízio de Royes Mello
On 26-10-2016 10:17, Sebastian Webber wrote:
> Curioso do teu problema, eu fiz um teste aqui, veja:
> 
> sebastian=# create table foo (id serial primary key, nome text);
> CREATE TABLE
> sebastian=# insert into foo (nome) select 'Nome ' ||
> generate_series(1,100);
> INSERT 0 100
> sebastian=# \dt+
> List of relations
>  Schema | Name | Type  |   Owner   | Size  | Description
> +--+---+---+---+-
>  public | foo  | table | sebastian | 42 MB |
> (1 row)
> 
> 
> 
> Até aí, tudo bem, mas quando computo o tamanho do banco, acontece algo
> diferente:
> 
>  sebastian=# select
> pg_size_pretty(pg_database_size(current_database()));
>  pg_size_pretty
> 
>  70 MB
> (1 row)
> 

Isso é normal, porque o metacomando \dt+ do psql [1] retorna o tamanho
da tabela (incluindo FSM, VM e TOAST apartir da 9.0), ou seja, não
considera índices.

Att,

[1]
http://doxygen.postgresql.org/describe_8c.html#a773ee037ae1c052551ec298504d4a970
-- 
   Fabrízio de Royes Mello 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] pg_rman + AWS S3

2016-10-21 Por tôpico Fabrízio de Royes Mello
On 21-10-2016 11:11, Flavio Henrique Araque Gurgel wrote:
> 
> 
> Em sex, 21 de out de 2016 às 14:25, Cleiton Luiz Domazak
> <cleitondoma...@gmail.com <mailto:cleitondoma...@gmail.com>> escreveu:
> 
>     2016-10-20 16:21 GMT-02:00 Fabrízio de Royes Mello
> <fabri...@timbira.com.br <mailto:fabri...@timbira.com.br>>:
> 
> On 19-10-2016 16:44, Cleiton Luiz Domazak wrote:
> > Boa tarde pessoal.
> >
> > Estou montando um projeto de PITR e estou utilizando o pg_rman. 
> Como são
> > vários servers e não queremos manter um servidor só para rodar o 
> Barman,
> > parti para WAL-e e pg_rman, e nos meus testes, para o nosso caso o
> > pg_rman se mostrou ser a melhor opção, porém com a limitação de  
> não ter
> > suporte nativo para envio ao S3 da Amazon.
> >
> > Alguém utiliza o pg_rman ou até mesmo o Barman enviando para S3? 
> Como
> > que está configurado o upload e download dos backups e wals?
> >
> > O que estamos pensando em utilizar é algo como s3fs e mapear um 
> bucket,
> > assim enviando direto para o S3, mas me preocupa a questão de 
> latência,
> > quedas do s3fs, que já tive casos, e acabar perdendo o envio de 
> algum
> > archive. Não seria o caso então de usar um disco de "stage", onde de
> > tempos em tempos roda um rsync com o s3fs? Queria saber das pessoas 
> que
> > já tiveram alguma experiência com um cenário parecido.
> >
> 
> Não tenho 100% de certeza mas acho que o wal-e [1] trata disso
> pra vc.
> 
> 
> Nos servidores na Amazon, tenho usado só o wal-e, com retenção
> configurada direto no bucket S3.
> Mesmo com os servidores fazendo muita escrita, o que gera muito wal, o
> wal-e tem dado conta sem acumular demais os arquivos. Se isso acontecer,
> você pode também otimizar o bucket para upload, em alguns casos chega a
> dobrar a velocidade.
> 

Bom saber disso... eu realmente não usei ele ainda em produção...


> De qualquer forma, como vc mesmo mencionou, é recomendado vc ter um
> "staging" local para archive e depois subir pro s3 ou para outro
> storage
> externo.
> 
> 
> Eu não vejo qual a vantagem de fazer isso. O PostgreSQL lida muito bem
> com os archives falhados, tudo o que é necessário é ter um espaço
> suficiente para esses casos. Ter uma área de staging nada mais é do que
> ter... espaço em disco extra. E um controle extra do envio, o que o
> PostgreSQL já faz bem.
> Talvez o Fabrízio tenha outra coisa em mente que não pesquei.
>  

Realmente o PostgreSQL lida muito bem com essa questão de falha de
arquivamento... pode ser preciosismo da minha parte mas tenho muito
receio de colocar, por exemplo o s3cmd, direto no "archive_command" e
por algum motivo ele retornar pro PostgreSQL Ok mas isso não ser verdade
... ou mesmo por algum motivo um segmento ficar corrompido por lá.

Na verdade meu conhecimento de AWS é bem restrito então posso estar com
receio de algo que nem é tão comum assim.


> Tenho utilizado o pgBackRest [2] e pra subir pro s3 usamos o
> s3fs+rsync
> (vc tb já mencionou).
> 
> 
> O problema do s3fs é que ele é montado com fuse, em espaço de usuário,
> aí você precisa monitorar mais uma coisa se o sistema de arquivos morrer.
> 
> Quando se faz rsync para o S3 (seja rsync comum num s3fs ou seja usando
> a funcionalidade sync do comando 'aws s3' do awstools, cada verificação
> de metadados consome banda - e isso a Amazon cobra *sem dó*.
> 

Bom, esse detalhe eu realmente desconhecia ... obrigado pela dica!


> Fica minha recomendação - wal-e e ponto. Mas tem mais gente na lista com
> outras ideias :)
> 

Confio no seu julgamento, então partiu testar ele então...


> Uma alternativa pra quem precisa compartilhar entre vários servidores
> sem passar pelo S3 é usar o novo "nfs gerenciado" que a Amazon acabou de
> lançar. Eles têm empurrado bastante esse cara pra certos casos de uso.
> 

Interessante... também irei verificar...

Valeu pelas dicas Flávio.

Att,

-- 
   Fabrízio de Royes Mello 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] pg_rman + AWS S3

2016-10-20 Por tôpico Fabrízio de Royes Mello
On 19-10-2016 16:44, Cleiton Luiz Domazak wrote:
> Boa tarde pessoal.
> 
> Estou montando um projeto de PITR e estou utilizando o pg_rman. Como são
> vários servers e não queremos manter um servidor só para rodar o Barman,
> parti para WAL-e e pg_rman, e nos meus testes, para o nosso caso o
> pg_rman se mostrou ser a melhor opção, porém com a limitação de  não ter
> suporte nativo para envio ao S3 da Amazon.
> 
> Alguém utiliza o pg_rman ou até mesmo o Barman enviando para S3? Como
> que está configurado o upload e download dos backups e wals?
> 
> O que estamos pensando em utilizar é algo como s3fs e mapear um bucket,
> assim enviando direto para o S3, mas me preocupa a questão de latência,
> quedas do s3fs, que já tive casos, e acabar perdendo o envio de algum
> archive. Não seria o caso então de usar um disco de "stage", onde de
> tempos em tempos roda um rsync com o s3fs? Queria saber das pessoas que
> já tiveram alguma experiência com um cenário parecido.
> 

Não tenho 100% de certeza mas acho que o wal-e [1] trata disso pra vc.

De qualquer forma, como vc mesmo mencionou, é recomendado vc ter um
"staging" local para archive e depois subir pro s3 ou para outro storage
externo.

Tenho utilizado o pgBackRest [2] e pra subir pro s3 usamos o s3fs+rsync
(vc tb já mencionou).

Acho que vc está com tudo na mão, a "faca", o "queijo"... então "corte" ;-)

Att,

[1] https://github.com/wal-e/wal-e
[2] http://www.pgbackrest.org/

-- 
   Fabrízio de Royes Mello 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] PostgreSQL 9.6 lançado

2016-09-29 Por tôpico Fabrízio de Royes Mello
On 29-09-2016 12:26, Euler Taveira wrote:
> Olá,
> 
> Hoje foi lançada a versão 9.6. Veja as novidades em [1]. Eu já havia
> comentado sobre algumas funcionalidades em [2].
> 

Show de bola... Na 9.6 trabalhei em duas funcionalidades:

1) ALTER TABLE foo ADD COLUMN [IF NOT EXISTS] bar INTEGER;

2) redução de bloqueios em ALTER TABLE ao alterar parâmetros do
autovacuum e fillfactor;

É importante ressaltar que a funcionalidade 2 foi patrocinada por uma
empresa brasileira, a Zenvia [1] onde tínhamos problemas em efetuar
tuning do autovacuum em algumas tabelas em produção, pois a plataforma
de SMS deles é 24x7, e para contornar isso tinhamos que alterar direto
no catálogo (pg_class.reloptions) o que pode levar a problemas se não
for alterado corretamente. E repito que fazer alterações direto no
catálogo pode levar a desastres então só faça isso se tiver absoluta
certeza.

Assim mais empresas brasileiras, como a Zenvia, pudessem apoiar mais o
desenvolvimento e evolução do PostgreSQL assim como várias outras
empresas estrangeiras já fazem há muitos anos.

Att,

Ps: isso só é possível por conta de projetos de código aberto e/ou livre

[1] http://www.zenvia.com.br

-- 
   Fabrízio de Royes Mello 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] Muitas ocorrências no LOG : postgres temporary file: path ...

2016-09-13 Por tôpico Fabrízio de Royes Mello
On 13-09-2016 13:54, Luiz Henrique wrote:
> Pessoal,
> 
> Estou vendo muitas mensagens (logo abaixo) no log PostgreSQL. Sei que é
> utilização do disco ao invés da memória. É muito constante, praticamente
> direto a cada minuto!
> 
> Vocês poderiam me ajudar a diagnosticar ?
> Como reduzir ?
> O que fazer para melhorar ?
> O que seria um número aceitável ?
> 
> Segue abaixo alguns parametros no postgresql.conf. Obrigado pelas dicas!
> 
> Dados do S.O.
> 
> Linux CentOS
> Postgresql 9.1
> 
> Dados da Lâmina :
> 
> SUN MICROSYSTEMS SUN BLADE X6270 M2 SERVER
> Intel(R) Xeon(R) CPU E5620 2.40GHz
> RAM 70 GB
> Filesystem  Size  Used Avail Use% Mounted on
> /dev/sda2   9.8G  1.3G  8.1G  14% /
> tmpfs36G 0   36G   0% /dev/shm
> /dev/sda1   488M   67M  396M  15% /boot
> /dev/sda5   256G  5.8G  237G   3% /var
> /dev/sdd1   493G  312G  156G  67% /var/lib/pgsql
> /dev/sde1   985G  650G  285G  70% /var/backups
> 
> Postgresql.conf
> 
> shared_buffers = 32GB
> temp_buffers = 48MB
> work_mem = 16MB
> maintenance_work_mem = 512MB
> effective_cache_size = 45GB
> 
> Trecho do log :
> 
> 2016-09-13 13:23:02 BRT [18063]: [33-1] user=xyz,db=xyz,client=a.b.c.d
> LOG:  temporary file: path "base/pgsql_tmp/pgsql_tmp18063.15", size 10019576
> 2016-09-13 13:23:03 BRT [18063]: [35-1] user=xyz,db=xyz,client=a.b.c.d
> LOG:  temporary file: path "base/pgsql_tmp/pgsql_tmp18063.16", size 10443496
> 2016-09-13 13:23:04 BRT [18063]: [37-1] user=xyz,db=xyz,client=a.b.c.d
> LOG:  temporary file: path "base/pgsql_tmp/pgsql_tmp18063.17", size 10019576
> 2016-09-13 13:23:05 BRT [18063]: [39-1] user=xyz,db=xyz,client=a.b.c.d
> LOG:  temporary file: path "base/pgsql_tmp/pgsql_tmp18063.18", size 10443496
> 2016-09-13 13:23:06 BRT [18063]: [41-1] user=xyz,db=xyz,client=a.b.c.d
> LOG:  temporary file: path "base/pgsql_tmp/pgsql_tmp18063.19", size 10019576
> 2016-09-13 13:23:07 BRT [18063]: [43-1] user=xyz,db=xyz,client=a.b.c.d
> LOG:  temporary file: path "base/pgsql_tmp/pgsql_tmp18063.20", size 10443496
> 2016-09-13 13:23:07 BRT [18063]: [45-1] user=xyz,db=xyz,client=a.b.c.d
> LOG:  temporary file: path "base/pgsql_tmp/pgsql_tmp18063.21", size 10019576
> 2016-09-13 13:23:08 BRT [18063]: [47-1] user=xyz,db=xyz,client=a.b.c.d
> LOG:  temporary file: path "base/pgsql_tmp/pgsql_tmp18063.22", size 10443496
> 2016-09-13 13:23:09 BRT [18063]: [49-1] user=xyz,db=xyz,client=a.b.c.d
> LOG:  temporary file: path "base/pgsql_tmp/pgsql_tmp18063.23", size 10019576
> 2016-09-13 13:23:32 BRT [18063]: [51-1] user=xyz,db=xyz,client=a.b.c.d
> LOG:  temporary file: path "base/pgsql_tmp/pgsql_tmp18063.24", size 10443496
> 2016-09-13 13:23:32 BRT [18063]: [53-1] user=xyz,db=xyz,client=a.b.c.d
> LOG:  temporary file: path "base/pgsql_tmp/pgsql_tmp18063.25", size 10019576
> 2016-09-13 13:25:19 BRT [17440]: [28-1] user=xyz,db=xyz,client=a.b.c.d
> LOG:  temporary file: path "base/pgsql_tmp/pgsql_tmp17440.10", size 53116928
> 

Considere aumentar o seu "work_mem" e verifique novamente. Não precisa
de "restart", basta um "reload" para efetivar a alteração.

Att,

-- 
   Fabrízio de Royes Mello 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] Diversão com restrições

2016-09-08 Por tôpico Fabrízio de Royes Mello
On 08-09-2016 16:55, Guimarães Faria Corcete DUTRA, Leandro wrote:
> http://www.anserinae.net/fun-with-sql-constraints.html
> 
> Ponto para quem explicar sucintamente em bom português.
> 

Qual a dúvida meu guri? Um índice parcial é criado para agir em uma
porção da tabela de acordo com o predicado definido (aka WHERE), então
você pode criar um índice regular ou um "unique" que irá respeitar as
tuplas envolvidas na porção definida pelo mesmo.

-- 
   Fabrízio de Royes Mello 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] Lentidão no Postgres 9.5

2016-09-08 Por tôpico Fabrízio de Royes Mello
On 08-09-2016 09:43, Irineu Raymundo wrote:
> Bom dia pessoal,
> 
> Estou com um problema de lentidão numa rotina, se alguém puder me dar
> uma luz do que eu poderia investigar fico imensamente agradecido.
> 
> O banco é : "PostgreSQL 9.5.4 on x86_64-pc-linux-gnu, compiled by gcc
> (Ubuntu 5.4.0-6ubuntu1~16.04.2) 5.4.0 20160609, 64-bit"
> 
> A trava aparentemente de forma aleatória, executa 2 dias normalmente e
> parece que do nada trava na última função e fica mais de 4 horas sendo
> obrigado a derrubar.
> 
> Conferi quando trava e não tem nenhuma outra instrução que poderia faz
> um lock nas tabelas.
> 
> Basicamente ela cria tabelas temporárias, faz os cálculos necessários e
> escreve numa tabela não logada(UNLOGGED) para poder imprimir o relatório
> via ODBC.
> Essa tabela fica com mais ou menos 2 milhões de registros, e tem uns 11
> índices.
> 
> Segue abaixo a rotina:
> 
> TRUNCATE senda.ind_03_03_04_01_lev CASCADE;
> TRUNCATE senda.ind_03_03_04_01_01_lev CASCADE;
> TRUNCATE senda.ind_03_03_04_01_01_a1_lev;
> REINDEX TABLE senda.ind_03_03_04_01_lev;

Porque o REINDEX em uma tabela que vc recém efetuou um TRUNCATE? O
TRUNCATE recria todos datafiles envolvidos (heap e btree).


> VACUUM FULL ANALYZE senda.ind_03_03_04_01_01_lev;
> VACUUM FULL ANALYZE senda.ind_03_03_04_01_01_a1_lev;
> VACUUM FULL ANALYZE senda.ind_03_03_04_01_lev;
> VACUUM FULL ANALYZE senda.ind_03_03_03_02_oc;

Aqui vc efetua um VACUUM FULL novamente e talvez sem necessidade,
principalmente pelo fato da "senda.ind_03_03_04_01_lev" ter sido
truncada anteriormente. Será que as demais tabelas não são truncadas
junto com as anteriores devido ao "CASCADE"???


> SET temp_buffers=3;

Setando dessa forma vc está informando ao PostgreSQL para usar ~234,38MB
= (3*8kB)/1024.

> SELECT senda.ins_mat_lev_cria_indices();
> SELECT senda.ins_mat_lev_1('98');
> SELECT senda.ins_mat_lev_2('98');
> SELECT senda.ins_mat_lev_3('98');
> SELECT senda.ins_mat_lev_4('98');
> SELECT senda.mat_marca_cliente_lev('98','LEVMAT',NULL,1256);
> 

Dificil te ajudar sem saber exatamente o que essas PLs fazem.


> Até esse ponto vai tranquilo, coisa de 5 minutos,  a próxima função
> descarrega os registros( 2 milhões) das temporáriad para as tabelas
> UNLOGGED e aí que trava de vez em quando.
> 

Precisamos de mais detalhes para poder ajudar!

Att,

-- 
   Fabrízio de Royes Mello 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] Parâmetros kernel

2016-08-30 Por tôpico Fabrízio de Royes Mello
On 30-08-2016 17:13, Franklin Anderson de Oliveira Souza wrote:
> Olá diógenes !
> 
> 

Por favor, evitem o top-posting...


> Não sei bem exatamente de qual versão do postgresql mas essas
> configurações de kernel, pelo que me disseram não precisa mais na 9.3.
> Alguém confirma ?!
> 

Os parâmetros relativos a memória compartilhada não precisam, mas outros
parâmetros irão depender muito do seu ambiente.

Att,

-- 
   Fabrízio de Royes Mello 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] Dúvida sobre imagem(Docker) PostgreSQL

2016-08-29 Por tôpico Fabrízio de Royes Mello
On 29-08-2016 20:30, Fabrízio de Royes Mello wrote:
> On 29-08-2016 20:06, Rafael Nery wrote:
>> Boa noite pessoas,
>>
>> Alguém saberia me dar uma dica de Imagem do Postgres no dockerhub que
>> rode em cima do AlpineLinux?
>>
> 
> Pesquisando no DockerHub apareceram algumas opções conforme [1].
> 
> Att,
> 
> [1]
> https://hub.docker.com/search/?isAutomated=0=0=1=0=postgres+alpine=0
> 

Complementando, um daqueles listados tem várias imagens publicadas
baseado em alpine [1]

Att,

[1] https://github.com/kost/docker-alpine

-- 
   Fabrízio de Royes Mello 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] Dúvida sobre imagem(Docker) PostgreSQL

2016-08-29 Por tôpico Fabrízio de Royes Mello
On 29-08-2016 20:06, Rafael Nery wrote:
> Boa noite pessoas,
> 
> Alguém saberia me dar uma dica de Imagem do Postgres no dockerhub que
> rode em cima do AlpineLinux?
> 

Pesquisando no DockerHub apareceram algumas opções conforme [1].

Att,

[1]
https://hub.docker.com/search/?isAutomated=0=0=1=0=postgres+alpine=0

-- 
   Fabrízio de Royes Mello 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] Crash durante vacuum full

2016-08-29 Por tôpico Fabrízio de Royes Mello
On 29-08-2016 07:58, Luiz Carlos L. Nogueira Jr. wrote:
> Pessoal,
> 
> Estávamos fazendo um vacuum full quando a VM "crashou".
> Depois de conseguirmos reiniciá-la, fizemos novamente o vacuum full e
> ele terminou normalmente.
> Só que quando vi, o tamanho do banco ficou uns 130GB maior, que é
> justamente o tamanho da tabela que estava tendo o vacuum quando "crashou".
> Olhando os tamanhos das maiores tabelas do banco, elas estão normais. 
> Como fazer pra encontrar esse "espaço perdido"?
> 

Já vi isso acontecer *eventualmente* pois o que ocorre é que o VACUUM
FULL reescreve em disco todos os datafiles e só faz o swap e remove os
antigos quando a transação for finalizada (aka commit). Quando acontece
um rollback em situações normais os novos datafiles que estavam sendo
gerados durante o processo sao removidos pelo PostgreSQL.

Então é bem provável que tenham ficado datafiles *perdidos* dentro do
seu $PGDATA/base/OID_DA_SUA_BASE.

Pelo meu histórico pessoal uma vez eu usei uma query pra identificar
esse fenômeno e determinar se essa teoria era correta. Tente usar a query:

SELECT file,
   (file_stat).size,
   pg_size_pretty((file_stat).size),
   (file_stat).modification
  FROM (SELECT file,
   pg_stat_file('base/'||(SELECT oid FROM pg_database WHERE
datname = current_database())||'/'||file) as file_stat
  FROM pg_ls_dir('base/'||(SELECT oid FROM pg_database WHERE
datname = current_database())) AS file
 WHERE file ~ '[0-9]$'
   AND file !~ '^t'
   AND NOT EXISTS (SELECT 1
 FROM pg_class
WHERE relfilenode::integer =
split_part(file,'.',1)::integer)) AS file
 WHERE (file_stat).modification::date < current_date
 ORDER BY 1;


Até onde me lembro ela não é 100% OK (creio que tenha que desconsiderar
tabelas temporarias)... mas pode ser um inicio.

De qualquer forma quando detectei de fato esse problema eu resolvi
fazendo dump/restore em um novo cluster com initdb.

Att,

-- 
   Fabrízio de Royes Mello 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] wal files - aumentar número de arquivos

2016-08-04 Por tôpico Fabrízio de Royes Mello
On 04-08-2016 18:07, Patrick B wrote:
> 
> 
> Procure por "archive_mode" e "archive_command" na documentação.
> 
> 
> Eu já utilizo esses comandos. Mas não consigo arquivar os wal_files por
> 30 dias através destes comandos. 
> 

Mas a decisão por "manter" esses caras arquivados não é responsabilidade
do PostgreSQL. Vc precisa implementar uma forma de expurgar eles após 30
dias, nada que um "find" não te ajude.

Att,

-- 
   Fabrízio de Royes Mello 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] wal files - aumentar número de arquivos

2016-08-04 Por tôpico Fabrízio de Royes Mello
On 04-08-2016 17:12, Patrick B wrote:
> 
> Sugiro arquivar o WAL e guardá-los por 30 dias. 
> 
> 
> Como? é isso que quero saber
>  

Procure por "archive_mode" e "archive_command" na documentação.

Att,

-- 
   Fabrízio de Royes Mello 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] Uso de custom_variable_classes

2016-08-03 Por tôpico Fabrízio de Royes Mello
On 03-08-2016 18:13, Heloisa Fernanda wrote:
> Olá pessoal!
> 
> Estou procurando uma alternativa para "setar" o usuário da aplicação
> durante uma transação e pegar isso em uma trigger.
> Vi algumas pessoas usando o custom_variable_classes. Alguém da lista
> esta usando isso? Tem algum problema com performance? Ou algum risco de
> usar esse recurso para esse fim?
> 

Heloisa,

Existem diversas formas de vc manter "variáveis de sessão" no seu banco
de dados, e IMHO usar "custom_variable_classes" (aka dynamic gucs) são a
melhor alternativa pois quase não existe overhead.

Inclusive há alguns anos escrevi uma extensão [1] pra manipular
variáveis de sessão.

Att,

Ps: dependendo da versão que vc está usando do PostgreSQL não é
necessário registrar o "custom_variable_classes" no postgresql.conf

[1] http://pgxn.org/dist/session_variables/0.0.4/

-- 
   Fabrízio de Royes Mello 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] Transmissão AO-VIVO do PGDay POA durante o FISL17

2016-07-14 Por tôpico Fabrízio de Royes Mello
Pessoal,

O PGDay POA está sendo transmitido ao vivo do FISL17. Acesse o link [1]
e clique na SALA 41E.

Att,

[1] http://softwarelivre.org/fisl17/programacao/fisl17-ao-vivo

-- 
   Fabrízio de Royes Mello 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] Nova camiseta "PostgreSQL Rock solid database"

2016-07-05 Por tôpico Fabrízio de Royes Mello
On 05-07-2016 14:50, Fábio Telles Rodriguez wrote:
> Fiz uma pequena publicação para divulgar a
> camiseta: http://savepoint.blog.br/download/elefante_postgreSQL.pdf
> 

Favor não fazer top-posting.

O link correto não seria:

http://savepoint.blog.br/camiseta-comemorativa-dos-20-anos-do-postgresql/

Att,

-- 
   Fabrízio de Royes Mello 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] ALTER SYSTEM

2016-07-04 Por tôpico Fabrízio de Royes Mello
On 04-07-2016 09:22, Douglas Fabiano Specht wrote:
> bom dia pessoal,
> foi adicionado algumas configurações por alter system, e neste caso o
> postgres cria um arquivo chamado postgresql.auto.conf, que utiliza as
> configurações deste arquivo ao inves do padrão.
> caso eu faça um ALTER SYSTEM RESET ALL ele volta a ler o que esta dentro
> do postgresql.conf?
> 

Sim.

-- 
   Fabrízio de Royes Mello 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] connections on unix domain socket ubuntu 16.04 /var/run/postgresql/.s.pgsql.5432

2016-06-27 Por tôpico Fabrízio de Royes Mello
On 27-06-2016 20:25, Gian wrote:
> Pessoal, estou quebrando a cabeça com este problema, alguem poderia me
> dar uma luz, ja pesquisei muito e não consigo resolver.
> Instalei o postgres 9.5 no ubuntu server  16.04 e não consigo acessar.
> 

Vc poderia ser um pouco mais claro e explicar exatamente o que vc fez
(copiando e colando comandos) e que erros apareceram pra vc?

Até onde me recordo nessas distro por padrão apenas o usuário "postgres"
via ident tem acesso liberado no cluster, ou seja, vc precisa estar
logado com usuário "postgres" do Linux para tentar acessar.

Mas também o erro pode ser por o serviço não estar rodando, o que
aparece qdo vc digita "pg_lsclusters" ?

Att,

-- 
   Fabrízio de Royes Mello 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] Espaço Comunidade no FISL17

2016-06-22 Por tôpico Fabrízio de Royes Mello
On 22-06-2016 11:37, Fernando Ike wrote:
> On Sat, 28 May 2016 09:12:43 -0300
> Fabrízio de Royes Mello <fabri...@timbira.com.br> wrote:
> 
>> Bom dia pessoal,
>>
>> Está aberta chamada para espaços da comunidade dentro do FISL17 [1].
>> Ter uma banca na Área de Comunidades, no espaço de exposições do
>> FISL17 pode ser uma ótima forma divulgar a comunidade, projetos e o
>> próprio mini-evento dentro do FISL.
>>
>> O que vcs acham??
>>
> Sensacional! Pena que não poderei ir este ano. :(
> 

Pena... mas nem inscrevi lá o espaço comunidade porque ninguém se
manifestou para ajudar e já tenho o PGDay pra cuidar.

Att,

-- 
   Fabrízio de Royes Mello Timbira - http://www.timbira.com.br/
   PostgreSQL: Consultoria, Desenvolvimento, Suporte 24x7 e Treinamento



signature.asc
Description: OpenPGP digital signature
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Re: [pgbr-geral] Não é possivel executar fsync ... bad file descriptor

2016-06-13 Por tôpico Fabrízio de Royes Mello
On 13-06-2016 15:14, Bruno Felipe wrote:
> Entendi. está na 9.2.2, da para atualizar binários no windows?
> 

Claro, vc deve fazer isso.


-- 
   Fabrízio de Royes Mello Timbira - http://www.timbira.com.br/
   PostgreSQL: Consultoria, Desenvolvimento, Suporte 24x7 e Treinamento



signature.asc
Description: OpenPGP digital signature
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Re: [pgbr-geral] Não é possivel executar fsync ... bad file descriptor

2016-06-13 Por tôpico Fabrízio de Royes Mello
On 13-06-2016 10:33, Bruno Felipe wrote:
> aconteceu na seguinte forma,
> selecionei o database
> cliquei em manitence
> escolhi o vaccum
> cliquei em ok
> passou alguns segundos e apareceu o erro
> 

Por favor Bruno não faça top-posting.

Vc descobriu qual é o objeto problemático como o Flávio comentou??

Verifique com:

SELECT * FROM pg_class WHERE relfilenode = 1329923;

Att,

-- 
   Fabrízio de Royes Mello Timbira - http://www.timbira.com.br/
   PostgreSQL: Consultoria, Desenvolvimento, Suporte 24x7 e Treinamento



signature.asc
Description: OpenPGP digital signature
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Re: [pgbr-geral] Problemas com ‘alternativas’ ao modelo relacional

2016-06-09 Por tôpico Fabrízio de Royes Mello
On 09-06-2016 12:51, Guimarães Faria Corcete DUTRA, Leandro wrote:
> 2016-06-09 12:47 GMT-03:00 Fabrízio de Royes Mello <fabri...@timbira.com.br>:
>> On 08-06-2016 14:55, Guimarães Faria Corcete DUTRA, Leandro wrote:
>>> https://engineering.meteor.com/mongodb-queries-dont-always-return-all-matching-documents-654b6594a827#.phpzbdxtf
>>
>> IMHO o problema descrito tem mais a ver com a forma como a ferramenta
>> implementa controle de concorrência do que o modelo de dados em si.
> 
> É verdade, a rigor.  Mas veja que ‘não há almoços grátis’; quando

Claro que não há almoço grátis...


> alguém promete algo melhor que o relacional, geralmente o que fez foi
> gambiarra mesmo.
> 

Não concordo com essa afirmação equivocada que muitos fazem por ai,
porém o que tenho visto é que o BASE não foi criado para tentar ser
melhor ou um substituto do ACID. Foi criado para atender cenários em que
o ACID não se sai tão bem assim e que não precisamos de sua rigidez.
Então é mais uma ferramenta no arsenal do engenheiro para resolução de
problemas.

Tecnologias são ferramentas e surgem para resolver um conjunto de
problemas em um determinado cenário (ou vários, dependendo). A questão é
que não existe bala de prata e com apenas uma ferramenta resolvemos
todos nossos problemas. Tenho sempre em mente uma frase que escutei uma
certa vez em um evento "nem todo problema é prego pra pegar o martelo e
sair resolvendo".

Lembremos sempre que sistemas distribuídos são complexos por natureza, e
quando precisamos manter estado (como banco de dados) a complexidade é
ainda maior.

Att,

-- 
   Fabrízio de Royes Mello Timbira - http://www.timbira.com.br/
   PostgreSQL: Consultoria, Desenvolvimento, Suporte 24x7 e Treinamento



signature.asc
Description: OpenPGP digital signature
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Re: [pgbr-geral] Problemas com ‘alternativas’ ao modelo relacional

2016-06-09 Por tôpico Fabrízio de Royes Mello
On 08-06-2016 14:55, Guimarães Faria Corcete DUTRA, Leandro wrote:
> https://engineering.meteor.com/mongodb-queries-dont-always-return-all-matching-documents-654b6594a827#.phpzbdxtf
> 
> E isso é o mais famoso hoje.  Infelzmente, já tão popular que, em vez
> de voltar para o mundo relacional, provavelmente vão conviver com o
> problema, talvez gambiarrá-lo, e mesmo que se resolva será só esperar
> o próximo… quem não aprende com a história (de que necessidades e
> problemas o modelo relacional começou a resolver), está condenado a
> repeti-la — como farsa.
> 

IMHO o problema descrito tem mais a ver com a forma como a ferramenta
implementa controle de concorrência do que o modelo de dados em si.

Att,

-- 
   Fabrízio de Royes Mello Timbira - http://www.timbira.com.br/
   PostgreSQL: Consultoria, Desenvolvimento, Suporte 24x7 e Treinamento



signature.asc
Description: OpenPGP digital signature
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Re: [pgbr-geral] Problema com aggregate no Postgres 9.5

2016-06-07 Por tôpico Fabrízio de Royes Mello
On 07-06-2016 17:04, Irineu Raymundo wrote:
> Pessoal boa tarde,
> 
> Estou faznedo alguns teste visando a migração do PostGres 9.0 para 9.5 .
> 
> No 9.0 havia 1 aggregate: array_agg(anyelement), mas no 9.5 tem 2:
> array_agg(anyarray)  e array_agg(anynonarray).
> 
> Ao executar um SELECT pela aplicação está apresentando a seguinte mensagem:
> 
> "SQL Error: ERROR:  function array_agg(character varying) is not unique
> at character 1657
> HINT:  Could not choose a best candidate function. You might need to add
> explicit type casts."
> 
> Alguém já passou por isso? Existe alguma forma de contornar sem ter que
> reescrever o SQL?
> 

Irineu,

Vc tem certeza que não tem nenhum "custom aggregate" na sua base de dados??

No psql digite "\da array_agg" e cole o que mostra.

Att,

-- 
   Fabrízio de Royes Mello Timbira - http://www.timbira.com.br/
   PostgreSQL: Consultoria, Desenvolvimento, Suporte 24x7 e Treinamento



signature.asc
Description: OpenPGP digital signature
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Re: [pgbr-geral] CPU em 100%

2016-06-06 Por tôpico Fabrízio de Royes Mello
On 04-06-2016 12:13, Tales Costa wrote:
> Boa tarde,
> 
> De uns dias para cá estou enfrentando alguns problemas com um servidor
> Postgresql + Zabbix. O pg está consumindo em muitos momentos 100% da CPU
> do server, ocasionando o aumento da temperatura da mesma. 
> 
> Como não tenho experiência alguma com postgresql, estou na dúvida se o
> problema é de hardware ou algo relacionado ao pg pois funciona
> perfeitamente antes de migrar o servidor fisicamente de lugar e
> atualizar a versão do PG e alguns outros pacotes. 
> 
> Observei que o aumento de CPU sempre ocorre quando é executado alguns
> "select". Segue imagem do htop.
> 
> Segue algumas informações:
> 
> $ /usr/lib/postgresql/9.1/bin/postgres -V
> postgres (PostgreSQL) 9.1.22
> 
> $ uname -a
> Linux zabbix 3.2.0-4-amd64 #1 SMP Debian 3.2.78-1 x86_64 GNU/Linux
> # Testei também com a 4.6.1. 
> 
> $ ps aux | grep zabbixdb | wc -l
> 63
> 
> $ cat /etc/postgresql/9.1/main/postgresql.conf | egrep -v ^#
> 
> data_directory = '/var/lib/postgresql/9.1/main'# use data in another
> directory
> hba_file = '/etc/postgresql/9.1/main/pg_hba.conf'# host-based
> authentication file
> ident_file = '/etc/postgresql/9.1/main/pg_ident.conf'# ident
> configuration file
> external_pid_file = '/var/run/postgresql/9.1-main.pid'# write an extra
> PID file
> listen_addresses = '*'# what IP address(es) to listen on;
> port = 5432# (change requires restart)
> max_connections = 120# (change requires restart)
> unix_socket_directory = '/var/run/postgresql'# (change requires restart)
> ssl = true# (change requires restart)
> password_encryption = on
> log_line_prefix = '%t '# special values:
> autovacuum = on# Enable autovacuum subprocess?  'on'
> log_autovacuum_min_duration = -1# -1 disables, 0 logs all actions and
> autovacuum_max_workers = 1# max number of autovacuum subprocesses
> autovacuum_naptime = 1min# time between autovacuum runs
> datestyle = 'iso, dmy'
> lc_messages = 'pt_BR.UTF-8'# locale for system error message
> lc_monetary = 'pt_BR.UTF-8'# locale for monetary formatting
> lc_numeric = 'pt_BR.UTF-8'# locale for number formatting
> lc_time = 'pt_BR.UTF-8'# locale for time formatting
> default_text_search_config = 'pg_catalog.portuguese'
> 
> #Restante está tudo default 
> 
> [...corte...]
>

Tales,

A configuração padrão do PostgreSQL é bem conservadora. Sugiro dar uma
olhada no pgconfig [1] para tentar um tuning inicial mais adequado do
que a configuração padrão.

Outro ponto que arrisco a pensar (por conta de coleta de monitoramento)
é que seu banco pode sofrer de estatísticas desatualizadas muito cedo
fazendo com que o planejador tome caminhos ruins para execução das
queries e por consequencia usando mais recursos do seu servidor. Tente
rodar um "VACUUM ANALYZE" no seu database e observe se ocorre uma
melhora e nos conte.

Att,

[1] http://www.pgconfig.org/

-- 
   Fabrízio de Royes Mello Timbira - http://www.timbira.com.br/
   PostgreSQL: Consultoria, Desenvolvimento, Suporte 24x7 e Treinamento



signature.asc
Description: OpenPGP digital signature
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Re: [pgbr-geral] Função com retorno de vários dados

2016-06-03 Por tôpico Fabrízio de Royes Mello
On 03-06-2016 12:53, Ricardo wrote:
>  
>  
> *From:* Sebastian Webber <mailto:sebast...@swebber.me>
> *Sent:* Friday, June 03, 2016 12:14 PM
> *To:* Comunidade PostgreSQL Brasileira
> <mailto:pgbr-geral@listas.postgresql.org.br>
> *Subject:* Re: [pgbr-geral]Função com retorno de vários dados
>  
>  
>  
> Em 3 de junho de 2016 11:49, Ricardo <rica...@longomaquinas.com
> <mailto:rica...@longomaquinas.com>> escreveu:
> 
> Bom dia pessoal.
>  
> Sempre trabalhei com a variável tipo record para retorno uma
> tabela em uma função usando esse procedimento.
>
> FOR VARIABLE IN SELECT * FROM TABELA
> LOOP
>  
> 
>  
> Porém agora preciso criar uma função onde vai ter o número
> inicio e o número fim que vai me determinar o número de registros no
> retorno, ou seja, não vou mais utilizar um select. Alguém pode me
> dar uma orientação de como fazer isso ?
> 
>  
> Sugiro que vc verifique as clausulas LIMIT[1] e OFFSET.
>  
> [1] https://www.postgresql.org/docs/current/static/queries-limit.html
>  
>  
> -- 
> Sebastian Webber
> http://swebber.me
>  
> Já resolvi pessoal,
> ficou assim
>  
> CREATE OR REPLACE FUNCTION public."_Tabela_Consulta" (
>   "Par_Inicio" integer,
>   "Par_Fim" integer,
>   out "Par_Consumo" numeric,
>   out "Par_Valor" numeric
> )
> RETURNS SETOF record AS
> $body$
> DECLARE
> Contador_Inicio INTEGER;
>  
> Faixa_Inicio INTEGER;
> Faixa_Fim INTEGER;
> Faixa_Valor NUMERIC( 10, 2 );
> Faixa_Fixa BOOLEAN;
>
> Faixa_Calculo INTEGER;
> Consumo_Calculo NUMERIC( 10,2 );
> Valor_Calculo NUMERIC( 10, 2 );
>  
> BEGIN
>  
> Contador_Inicio := "Par_Inicio";
>  
> WHILE Contador_Inicio < "Par_Fim"
> LOOP
>  
>  
>  
> "Par_Consumo" := Contador_Inicio;
> "Par_Valor" := Valor_Calculo;
>
> Contador_Inicio := Contador_Inicio + 1;
>
>     RETURN NEXT;
>
> END LOOP;
>
> RETURN;
>  
> END;
> $body$
> LANGUAGE 'plpgsql'
> VOLATILE
> CALLED ON NULL INPUT
> SECURITY INVOKER
> COST 100 ROWS 1000;
> 

Porque fazer tudo isso se no SQL existe o LIMIT conforme o Sebastian
sugeriu??? Além de simplificar vc terá inclusive ganhos de performance.

Att,

-- 
   Fabrízio de Royes Mello Timbira - http://www.timbira.com.br/
   PostgreSQL: Consultoria, Desenvolvimento, Suporte 24x7 e Treinamento



signature.asc
Description: OpenPGP digital signature
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

[pgbr-geral] [Off-Topic] Inscrições abertas para DevOpsDay/POA

2016-06-03 Por tôpico Fabrízio de Royes Mello
Pessoal,

Inscrições do primeiro lote do DevOps Day Porto Alegre estão abertas!

Não perca o tempo aproveitar um bom desconto na inscrição! É até dia 13
de junho!

http://www.devopsdayspoa2016.eventize.com.br/index.php

Para quem quiser ajudar na divulgação, temos o links abaixo para
compartilhamento:

Facebook:
https://www.facebook.com/devopsdaypoa/photos/a.514181408765669.1073741827.514178092099334/520385841478559/?type=3

Twitter:
https://twitter.com/poadevopsday/status/738789748593025024

Linkedin:
http://www.linkedin.com/hp/update/6144556337083793408


Att,

-- 
   Fabrízio de Royes Mello Timbira - http://www.timbira.com.br/
   PostgreSQL: Consultoria, Desenvolvimento, Suporte 24x7 e Treinamento



signature.asc
Description: OpenPGP digital signature
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Re: [pgbr-geral] Consideração replicação

2016-05-31 Por tôpico Fabrízio de Royes Mello
On 31-05-2016 10:10, Luiz Carlos L. Nogueira Jr. wrote:
> Flávio,
> 
> Outra dúvida simples. A replicação deixa os bancos "iguais" tanto
> fisicamente quanto logicamente?
> 
> Por ex. A fragmentação de um lado não poderia ser diferente do outro?
> 

O slave da replicação nativa é um "clone físico" do master porque a
replicação é feita a nivel de páginas e não no nivel lógico (sql).

Portanto são exatamente iguais (nivel fisico e lógico) e a fragmentação
tb será a mesma visto que é uma réplica física.

Nesse tipo de replicação se vc tem objetos inchados e efetuar uma
manutenção no master para resolver isso, esta manutenção será
"replicada" para o slave.

Att,

-- 
   Fabrízio de Royes Mello Timbira - http://www.timbira.com.br/
   PostgreSQL: Consultoria, Desenvolvimento, Suporte 24x7 e Treinamento



signature.asc
Description: OpenPGP digital signature
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

[pgbr-geral] Espaço Comunidade no FISL17

2016-05-28 Por tôpico Fabrízio de Royes Mello
Bom dia pessoal,

Está aberta chamada para espaços da comunidade dentro do FISL17 [1]. Ter
uma banca na Área de Comunidades, no espaço de exposições do FISL17 pode
ser uma ótima forma divulgar a comunidade, projetos e o próprio
mini-evento dentro do FISL.

O que vcs acham??

Att,


[1] http://softwarelivre.org/fisl17/programacao/comunidades

-- 
   Fabrízio de Royes Mello Timbira - http://www.timbira.com.br/
   PostgreSQL: Consultoria, Desenvolvimento, Suporte 24x7 e Treinamento



signature.asc
Description: OpenPGP digital signature
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Re: [pgbr-geral] Habilitar a engine innoDB no mysql

2016-05-23 Por tôpico Fabrízio de Royes Mello
On 23-05-2016 17:25, Leandro Guimarães Faria Corcete DUTRA wrote:
> Le 23 mai 2016 17:23:55 GMT-03:00, Dark_Angel 
> <jonnathann.finiz...@dce.ufpb.br> a écrit :
>> Olá pessoal, tudo bem? Sei que essa pergunta não é voltada aos usuários
>> do
>> PostgreSQL, mas se alguém puder me ajudar, eu agradeceria bastante!
> 
> Recomendo perguntar numa lista de MySQL.
> 

Ou então lá na DBA Brasil [1]. Tem várias pessoas que manjam bastante de
MySQL.

Att,

[1] https://groups.google.com/group/dba-brasil

-- 
   Fabrízio de Royes Mello Timbira - http://www.timbira.com.br/
   PostgreSQL: Consultoria, Desenvolvimento, Suporte 24x7 e Treinamento



signature.asc
Description: OpenPGP digital signature
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Re: [pgbr-geral] RES: lo_import em banco de dados remoto

2016-05-23 Por tôpico Fabrízio de Royes Mello
On 23-05-2016 12:34, Matheus Saraiva da Silva wrote:
> Estou usando C#.
> Para tecnologias micrsoft existe o ODBC, mas sempre ouvi mal dizeres sobre 
> ODBC.
> Então encontrei o Npgsql (http://www.npgsql.org/about.html) opensource 
> desenvolvido em C#. Vou olha na documentação para tentar encontrar algo a 
> respeito.
> 

Não faça top-posting por favor.

Tem sim, olhe na doc do Npgsql [1]

Att,

[1] http://www.npgsql.org/doc/large-objects.html

-- 
   Fabrízio de Royes Mello Timbira - http://www.timbira.com.br/
   PostgreSQL: Consultoria, Desenvolvimento, Suporte 24x7 e Treinamento



signature.asc
Description: OpenPGP digital signature
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Re: [pgbr-geral] lo_import em banco de dados remoto

2016-05-23 Por tôpico Fabrízio de Royes Mello
On 22-05-2016 12:22, Matheus Saraiva wrote:
> Mandei uma pergunta similar a essa, mas como tinha poucas informações
> talvez isso implicou em se obter uma resposta. Dessa forma estou
> reformulando a pergunta com mais informação bem como com novas descobertas.
> Pela primeira vez estou precisando gravar arquivos no banco. No meu caso
> eu optei por usar coluna do tipo OID.
> 

Na próxima vez para manter o contexto e organização da lista responda a
sua própria pergunta passando mais informações.


> Em uma base de dados localhost, o insert seria assim:
> 
> |INSERT INTO fruit VALUES ('peach', lo_import('/usr/images/peach.jpg'));|
> 
> Mas e se eu precisar inserir esse mesmo arquivo em um banco de dados remoto?
> 
> Nesse exemplo de insert que fiz funciona se a base de dados estiver
> local, pois |lo_import| irá buscar o arquivo na máquina onde está
> instalado o servidor.
> 

Exato.


> Mas eu preciso fazer um insert de uma máquina cliente, ou seja, o
> arquivo está na máquina cliente e o insert deve mandar esse arquivo da
> máquina cliente para o servidor.
> 

Para isso vc deve utilizar via libpq através do driver/componente que a
implementa na sua linguagem de programação. Que linguagem vc está usando?

Att,

-- 
   Fabrízio de Royes Mello Timbira - http://www.timbira.com.br/
   PostgreSQL: Consultoria, Desenvolvimento, Suporte 24x7 e Treinamento



signature.asc
Description: OpenPGP digital signature
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Re: [pgbr-geral] Particionamento

2016-05-20 Por tôpico Fabrízio de Royes Mello
On 20-05-2016 16:26, Fabrízio de Royes Mello wrote:
> On 20-05-2016 14:48, Felipe Santos wrote:
>>
>> Olá Danilo,
>>
>> Nenhum dos dois.
>>
>> Ele lê o índice do campo particionado nas tabelas filhas para saber se
>> deve entrar nos mesmos ou não.
>>
>> A trigger e os checks são acionados apenas nos eventos DML.
>>
> 
> Danilo,
> 
> Infelizmente vc está equivocado... 
> 
> [...]
> 

Oops... quis fizer Felipe...

Att,

-- 
   Fabrízio de Royes Mello Timbira - http://www.timbira.com.br/
   PostgreSQL: Consultoria, Desenvolvimento, Suporte 24x7 e Treinamento



signature.asc
Description: OpenPGP digital signature
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Re: [pgbr-geral] Particionamento

2016-05-20 Por tôpico Fabrízio de Royes Mello
gt;= '2016-05-20'::date) AND (partkey <=
'2016-05-21'::date))
   ->  Seq Scan on foo_20160520
 Filter: ((partkey >= '2016-05-20'::date) AND (partkey <=
'2016-05-21'::date))
   ->  Seq Scan on foo_20160521
 Filter: ((partkey >= '2016-05-20'::date) AND (partkey <=
'2016-05-21'::date))
(7 rows)



Note que após adicionar as CHECK CONSTAINTS o planejador começou a ter
conhecimento de quais partições precisava efetuar a busca de acordo com
o predicado.

E também não existe nenhum índice associado a coluna "partkey" que foi
utilizada como chave do particionamento.

Att,

-- 
   Fabrízio de Royes Mello Timbira - http://www.timbira.com.br/
   PostgreSQL: Consultoria, Desenvolvimento, Suporte 24x7 e Treinamento



signature.asc
Description: OpenPGP digital signature
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Re: [pgbr-geral] Consideração replicação

2016-05-20 Por tôpico Fabrízio de Royes Mello
On 20-05-2016 13:08, Matheus Ricardo Espanhol wrote:
> E apartir da 9.5 temos os Replication Slots e dai vc nem precisa se
> preocupar com archiving.
> 
> Att,
> 
> [1]
> 
> http://www.postgresql.org/docs/9.5/static/warm-standby.html#STREAMING-REPLICATION-SLOTS
> 
> 
> Bem lembrado Fabrizio. Mas vale o alerta que esta alternativa pode
> acumular xlogs no master indefinidamente  em caso de indisponibilidade
> do slave. 
> 

Certamente, por isso precisamos *sempre* monitorar nosso SGBD... e em
caso de indisponibilidade muito grande do slave remove-se o Replication
Slot e vida que segue.

Att,

-- 
   Fabrízio de Royes Mello Timbira - http://www.timbira.com.br/
   PostgreSQL: Consultoria, Desenvolvimento, Suporte 24x7 e Treinamento



signature.asc
Description: OpenPGP digital signature
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Re: [pgbr-geral] Consideração replicação

2016-05-20 Por tôpico Fabrízio de Royes Mello
On 20-05-2016 11:59, Matheus Ricardo Espanhol wrote:
> 
> 
> 2016-05-20 10:14 GMT-03:00 Luiz Carlos L. Nogueira Jr.
> <lcnogueir...@gmail.com <mailto:lcnogueir...@gmail.com>>:
> 
> 
> Matheus,
> 
> A minha ideia é ter o master no modo archive, mas não sei das
> vantagens/desvantagens desse modo no slave.
> 
> 
> No slave não será necessário o modo archive.
>  

Não precisa fazer nada no slave pois quando o PostgreSQL está em standby
ele não arquiva o wal. O worker do arquivamento é iniciado depois
somente se for promovido, entao tanto faz a configuração que tenha nos
parametros archive_*.


[...]


> Se eu fizer em um ou em outro o archive_command do que não fizer
> será um comando qualquer que retorne true ou posso deixar null?
> 
> 
> Você pode manter o archive_mode habilitado e utilizar algo como 'exit 0'
> no slave. Isso é apenas para evitar um futuro restart caso queira voltar
> arquivar. Lembre-se que o arquivamento será feito pelo pg_receivexlog e
> é obrigatório para gerar o backup base.
> 

Como falei acima não precisa fazer nada em relação aos parametro
"archive_*" no slave.


[...]

> *--Mas, onde enfileirará caso  o master fique esperando o slave? Se
> no archive, os dados poderão, dependendo do tempo, estar no wal, mas
> se não tiver no archive mode, a replicação "morre" e terei de fazer
> tudo do 0 de novo?*
> 
> 
> Mesmo não estando no modo archive, a replicação streaming se sincroniza
> através do WAL. Portanto, você pode manter alguns xlogs com o parâmetro
> wal_keep_segments. Em um cenário onde você tem um backup PITR ativo
> (archive) você ainda pode contar com os xlogs salvos no servidor de
> backup para fazer o sincronismo quando o slave voltar.
> 
> Após o sincronismo através do WAL, o slave irá se conectar no master
> para iniciar a replicação.
>  

E apartir da 9.5 temos os Replication Slots e dai vc nem precisa se
preocupar com archiving.

Att,

[1]
http://www.postgresql.org/docs/9.5/static/warm-standby.html#STREAMING-REPLICATION-SLOTS

-- 
   Fabrízio de Royes Mello Timbira - http://www.timbira.com.br/
   PostgreSQL: Consultoria, Desenvolvimento, Suporte 24x7 e Treinamento



signature.asc
Description: OpenPGP digital signature
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Re: [pgbr-geral] Failed to archive WAL segment - PostgreSQL 9.2

2016-05-18 Por tôpico Fabrízio de Royes Mello
On 18-05-2016 00:32, Lucas Possamai wrote:
> 
> [..corte..]
> Acho que você está desinformado. Benchmarks comprovam que shared_buffers
> alto (dezenas de GB) não escala em TPS.
> 
> 
> posso estar... também fiz vários testes como mencionei.. também falei
> com um monte de gente... e parecia a melhor solução.. 
> 
> mas na prática não funcionou foi pior
> 

Desculpe mas ficou confuso pois pelo que entendi lendo emails anteriores
o seu "pior" foi por conta da falha do arquivamento... posso também ter
entendido errado.

O que vc julga como "pior"?? Performance?? Vc tem dados para nos
fornecer?? Além disso vc disse que ao alterar o shared_buffers o
PostgreSQL não iniciou, vc poderia fornecer as entradas no log que
indicam o problema?

Como o Euler já mencionou um valor de shared_buffers impacta em um
checkpoint mais demorado e durante o stop do serviço o PostgreSQL efetua
um para ele poder "parar em um estado consistente" e não necessitar de
um "recovery" no próximo "start". Se vc forçou o "stop" do serviço para
ser mais rápido então no próximo "start" ele entrará em "recovery" e
isso pode demorar algum tempo.

Att,

-- 
   Fabrízio de Royes Mello Timbira - http://www.timbira.com.br/
   PostgreSQL: Consultoria, Desenvolvimento, Suporte 24x7 e Treinamento



signature.asc
Description: OpenPGP digital signature
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

  1   2   3   4   5   6   7   8   9   10   >