Re: [pgbr-geral] Error pgbadger

2018-03-22 Por tôpico Danilo Silva
Em 21 de março de 2018 17:09, Uellinton Mendes 
escreveu:

> Danilo
>
> Você acessa o servidor como root e executa um processo manual pra gerar os
> reports?
>
> Abs,
> Uellinton
>

Acesso como root e executo o comando manualmente, como também já coloquei o
comando em um script e agendei no crontab​, em ambos os casos dá o mesmo
problema.

[]s
Danilo
___
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 pgbadger

2018-03-21 Por tôpico Danilo Silva
Em 21 de março de 2018 15:42, Uellinton Mendes 
escreveu:

> Olá Danilo,
>
> Você deve estar usando Linux.
>
> Qual usuário o processo está usando para criar os arquivos?
>
> Verifique com " ulimit -n " o máximo de arquivos que pode ser aberto pelo
> usuário corrente. o Default é 1024.
>
> Em limits.conf adicione
> [usuario do processo]  softnofile  2048
> [usuario do processo]  hard   nofile  2048
>
> Mas verifique porque o pgbadger realmente precisa abrir tantos arquivos
> (muitos logfiles por exemplo). Tente não exagerar no limite de arquivos
> abertos.
>
> Abs
>
> *Uellinton Mendes​*
>

​No caso estou gerando com 316​, totalizando no máximo 20Gb (cada arquivo
possui no máximo 65Mb), será que é por causa do tamanho dos arquivos?

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

[pgbr-geral] Error pgbadger

2018-03-21 Por tôpico Danilo Silva
Pessoal,

Estou gerando o report do pgbadger, porém, durante a geração ocorre o
seguinte erro: "Error in tempfile() using /tmp/tmp_pgbadger.bin: Could
not create temp file /tmp/tmp_pgbadgerBz_o.bin: Too many open files at
/usr/bin/pgbadger line 1524" e o report não é gerado.

Penso que seja a quantidade de arquivos de log do postgres, sendo isso,
qual o limite de arquivos?

Estou gerando com as opções "-q" e "-j4"

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

Re: [pgbr-geral] Delete

2017-12-19 Por tôpico Danilo Silva
Em 18 de dezembro de 2017 18:32, Fábio Telles Rodriguez <
fabio.tel...@gmail.com> escreveu:

> vamos imaginar que a tabela 't' tem o campo 'id' que você quer remover as
> 20 mil linhas:
>
> postgres=# create table t (id integer);
> CREATE TABLE
> postgres=# insert into t select * from generate_series(1,150);
> LOG:  temporary file: path "pg_tblspc/581531196/PG_9.3_
> 201306121/pgsql_tmp/pgsql_tmp29753.0", size 2100
> INSERT 0 150
>
> Agora vou criar uma tabela temporária que tenha 20 mil registros
> aleatórios. Serão os registros que eu vou querer apagar da tabela 't'
>
> postgres=# create temporary table f (id integer);
> CREATE TABLE
> postgres=# insert into f select round(random()*150) from
> generate_series(1,2);
> INSERT 0 2
>
> Agora eu faço o DELETE dos registros que escolhi:
>
> postgres=# delete from t where exists (select 1 from f where f.id=t.id);
> DELETE 19866
>
> Ou seja, eu prefiro fazer um SUBSELECT para apagar tudo.
>
> ​A minha tabela possui uma outra com históricos​, então eu tenho o
seguinte cenário:
Tabela principal com 79 colunas, 1,5 milhões de registros e 596 MB de
tamanho;
Tabela de historico com 20 colunas, 10 milhões de registros e 1,2 GB de
tamanho;

Para excluir os registros da tabela principal, eu tenho que excluir
primeiro na tabela de historicos, então eu excluí os 20 mil registros
utilizando o operador "IN" e o delete foi rápido, porém, na tabela
principal não, o campo utilizado no delete não é a PK mas um índice único.
Será que pode ter ocorrido algum problema na tabela principal como um
índice corrompido?

No explain utilizando o "IN" eu tenho: Delete on tabela_a
(cost=25.50..96449.56 rows=20059 width=6)
​Utilizando o método proposto pelo Telles eu tenho: ​Delete on tabela_a
(cost=356.43..1324.56 rows=843680 width=12)


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

[pgbr-geral] Delete

2017-12-18 Por tôpico Danilo Silva
Pessoal,

Qual seria a melhor prática para deletar 20 mil registros em uma tabela com
1,5 milhões de registros, vale ressaltar que o campo condicional do delete
é a pk da tabela:

a) Deletar os 20 mil de uma só vez com a condição "IN" no WHERE;
b) Fazer um loop na aplicação e deletar um por vez;
c) Outra técnica (qual?);

Existe alguma forma de melhorar a rapidez do delete? Algum parâmetro no
.conf?

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

Re: [pgbr-geral] Retornar apenas números

2017-11-02 Por tôpico Danilo Silva
Em 2 de novembro de 2017 07:58, Felipe Rigotti -SBsistemas <
fel...@sbsistemas.com.br> escreveu:

> Em 2 de novembro de 2017 02:33, Danilo Silva <danilo.dsg.go...@gmail.com>
> escreveu:
>
>> Pessoal,
>>
>> Tenho um campo do tipo text onde são armazenados letras+números ou
>> somente números, exemplo: "PT145896ZZ" ou "116485".
>>
>> Como posso fazer uma consulta para retornar apenas as linhas onde
>> contenham apenas números, no exemplo acima, queria retornasse apenas
>> "116485".
>>
>> []s
>> Danilo
>>
>> ___
>> pgbr-geral mailing list
>> pgbr-geral@listas.postgresql.org.br
>> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>>
>
>
> Bom dia talvez usando uma expressão regular:
>
> select campo
> from tabela
> where campo ~'^[0-9]+$'
>
> E se você quiser extrair os números inclusive das colunas que tenham
> letras, aí você pode usar *regexp_replace*
>
> ​Felipe obrigado, funcionou perfeitamente.

[]s
Danilo​
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

[pgbr-geral] Retornar apenas números

2017-11-01 Por tôpico Danilo Silva
Pessoal,

Tenho um campo do tipo text onde são armazenados letras+números ou somente
números, exemplo: "PT145896ZZ" ou "116485".

Como posso fazer uma consulta para retornar apenas as linhas onde contenham
apenas números, no exemplo acima, queria retornasse apenas "116485".

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

Re: [pgbr-geral] Delete ou Update em dois registros identicos

2017-10-16 Por tôpico Danilo Silva
Danilo Gomes

Em 16 de outubro de 2017 15:32, Edelson Regis de Lima 
escreveu:

> Olá Flávio.
>
> Mas com esse exemplo você está supondo que na tabela exista o campo "id"
> que seria uma chave única, correto?
> O problema é que nessa tabela que mencionei não sei porque raios não
> existe essa chave única. Tem um campo id, auto incremento, que seria essa
> chave única, mas não sei como o sistema conseguiu inserir dois registros
> identicos, inclusive o valor do id...
> Então eu teria que ver se dá para identificar de outra maneira, pela
> posição física do registro, sei lá...
> Não sei se isso é possível... rs
>
> ​Você tem duas opções:
a) se a tabela possuir o campo OID (essa coluna normalmente fica invisível,
depende do método de criação da tabela), você pode deletar por esse
registro, exemplo: SELECT OID, col_a,
col_
​b FROM tabela, e depois deletar: DELETE FROM tabela WHERE (OID = ?)

b) se a tabela não for muito grande, você pode adicionar uma nova coluna
com ​
​

​o tipo sendo serial: ALTER TABLE tabela ADD COLUMN cod_delete serial. Com
isso você consegue deletar através do código dessa coluna.

[]s
Danilo​
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Re: [pgbr-geral] Range de horas

2017-08-08 Por tôpico Danilo Silva
Em 8 de agosto de 2017 11:32, Fábio Telles Rodriguez  escreveu:

> Dê uma olhada aqui: https://www.postgresql.org/
> docs/9.6/static/functions-srf.html
>
> Fácil fácil
>

​KK, mais fácil que isso? creio que não existe. Não sabia que o
generate_series podia utilizar time.

Valeu Fábio...serviu perfeitamente.

[]s
Danilo​
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

[pgbr-geral] Range de horas

2017-08-08 Por tôpico Danilo Silva
Pessoal,

Num período das 08:00 as 18:00, preciso montar um range a cada 30 minutos,
por exemplo:
08:00
08:30
09:00
09:30
.
.
.
17:00
17:30
18:00

É possível?

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

Re: [pgbr-geral] Consultas com AND entre relação N x N

2017-07-14 Por tôpico Danilo Silva
Em 14 de julho de 2017 16:40, Kauan Mocelin 
escreveu:

> Boa tarde, estou com um problema no postgresql que não consigo resolver,
> tenho a seguinte relação n x n:
>
> *tb_aditivo*
> cod_aditivo
>
> *tb_aditivo_motivo_aditivo*
> cod_aditivo_motivo_aditivo
> cod_aditivo
> cod_motivo_aditivo
>
> *tb_motivo_aditivo*
> cod_motivo_aditivo
>
>
> Na minha pesquisa informo 3 cod_motivo_aditivo = (2,4,8), preciso retornar
> o cod_aditivo referente a EXATAMENTE estes 3 motivos.
>
> Não testei, mas tente assim:

SELECT cod_aditivo FROM (
SELECT
tb_aditivo_motivo_aditivo.cod_aditivo,
string_agg(tb_aditivo_motivo_aditivo.cod_motivo_aditivo::text,',' ORDER BY
tb_aditivo_motivo_aditivo.cod_motivo_aditivo) AS cod_motivo_aditivo
FROM tb_aditivo_motivo_aditivo WHERE
(tb_aditivo_motivo_aditivo.cod_motivo_aditivo IN (2,4,8))
GROUP BY tb_aditivo_motivo_aditivo.cod_aditivo
) AS aditivos
WHERE (cod_motivo_aditivo = '2,4,8')​


[]s
Danilo​
___
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 pg_stop_backup

2017-06-15 Por tôpico Danilo Silva
Em 14 de junho de 2017 18:18, Euler Taveira <eu...@timbira.com.br> escreveu:

> 2017-06-14 12:26 GMT-03:00 Danilo Silva <danilo.dsg.go...@gmail.com>:
>
>> 2017-06-14 12:22:30 BRT [15481-330] @@ [] LOG:  archive command failed
>> with exit code 23
>> 2017-06-14 12:22:30 BRT [15481-331] @@ [] DETAIL:  The failed archive
>> command was: /var/lib/pgsql/pgopen/archivecomand.sh
>> "pg_xlog/0001259000A8" "0001259000A8"​
>>
>> Verifiquei que o archive
>> ​​
>> 0001259000A8 realmente não existe e o pg_stop_backup ainda
>> está sendo executado. Tem alguma coisa que eu possa fazer?
>>
>
> Não existe no pg_xlog mas foi arquivado? Ou não existe no pg_xlog e não
> foi arquivado? BTW, qual é a versão do postgres? Isso está parecendo um bug
> no script archivecomand.sh.
>

​Versão 9.3.4. O arquivo não existe mais no pg_xlog, porém ele foi
arquivado.

Fiz um teste, copiei o arquivo
​
0001259000A8 para a pasta pg_xlog aí no log mostrou erro em
outro arquivo
​
0001259000A9, que também já foi arquivado.

Uma dúvida, eu consigo saber quais são os arquivos que o postgres está
tentando arquivar?

[]s
Danilo
___
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 pg_stop_backup

2017-06-14 Por tôpico Danilo Silva
Em 14 de junho de 2017 11:50, Euler Taveira <eu...@timbira.com.br> escreveu:

> Em 14 de junho de 2017 11:48, Danilo Silva <danilo.dsg.go...@gmail.com>
> escreveu:
>
>>
>> ​Reparei que deu problema na comunicação entre os servidores no
>> archive_command, já corrigi esse problema, tenho que aguardar ele efetuar o
>> arquivamento do que estava pendente?​
>>
>
> Sim. Como eu disse, para se ter um backup consistente é necessário
> arquivar todo WAL gerado entre o pg_start_backup e pg_stop_backup.
>

​Euler,

No log do postgres está aparecendo:

sending incremental file list
rsync: link_stat "/var/lib/pgsql/9.3/data/pg_xlog/0001259000A8"
failed: No such file or directory (2)

sent 18 bytes  received 12 bytes  20.00 bytes/sec
total size is 0  speedup is 0.00
rsync error: some files/attrs were not transferred (see previous errors)
(code 23) at main.c(1039) [sender=3.0.6]
sending incremental file list
rsync: link_stat "/var/lib/pgsql/9.3/data/pg_xlog/0001259000A8"
failed: No such file or directory (2)

sent 18 bytes  received 12 bytes  60.00 bytes/sec
total size is 0  speedup is 0.00
rsync error: some files/attrs were not transferred (see previous errors)
(code 23) at main.c(1039) [sender=3.0.6]
2017-06-14 12:22:30 BRT [15481-330] @@ [] LOG:  archive command failed with
exit code 23
2017-06-14 12:22:30 BRT [15481-331] @@ [] DETAIL:  The failed archive
command was: /var/lib/pgsql/pgopen/archivecomand.sh
"pg_xlog/0001259000A8" "0001259000A8"​

Verifiquei que o archive 0001259000A8 realmente não existe e o
pg_stop_backup ainda está sendo executado. Tem alguma coisa que eu possa
fazer?

[]s
Danilo
___
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 pg_stop_backup

2017-06-14 Por tôpico Danilo Silva
Em 13 de junho de 2017 08:38, Euler Taveira <eu...@timbira.com.br> escreveu:

> 2017-06-12 16:37 GMT-03:00 Danilo Silva <danilo.dsg.go...@gmail.com>:
>
>>
>> Executei o pg_start_backup('teste',true);
>>
>> Logo em seguida executei o pg_stop_backup() mas o comando não é
>> terminado, recebo essas mensagens:
>>
>> NOTICE:  pg_stop_backup cleanup done, waiting for required WAL segments
>> to be archived
>> WARNING:  pg_stop_backup still waiting for all required WAL segments to
>> be archived (60 seconds elapsed)
>>
>
> Isso quer dizer que ainda falta arquivar alguns segmentos do WAL. Esses
> segmentos precisam ser arquivados para que você tenha um backup íntegro
> (backup íntegro é composto da cópia física com todos os segmentos do WAL
> que foram gerados entre o pg_start_backup e pg_stop_backup). Monitore o
> ​​
> pg_stat_archiver para saber se o arquivamento está falhando (se estiver,
> corrija para que o pg_stop_backup termine). Se sua versão for inferior a
> 9.4, você pode verificar as falhas no log. A partir da versão 10, o
> pg_stop_backup tem um parâmetro para não esperar concluir o arquivamento
> (assim, o retorno é imediato).
>

​
Euler,

A mensagem exibida é:
NOTICE:  pg_stop_backup cleanup done, waiting for required WAL segments to
be archived
WARNING:  pg_stop_backup still waiting for all required WAL segments to be
archived (60 seconds elapsed)
DICA:  Check that your archive_command is executing properly.
 pg_stop_backup can be canceled safely, but the database backup will not be
usable without all the WAL segments

a versão é 9.3​


​Reparei que deu problema na comunicação entre os servidores no
archive_command, já corrigi esse problema, tenho que aguardar ele efetuar o
arquivamento do que estava pendente?​



​[]s
Danilo​
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

[pgbr-geral] Problemas com pg_stop_backup

2017-06-12 Por tôpico Danilo Silva
Pessoal,

Executei o pg_start_backup('teste',true);

Logo em seguida executei o pg_stop_backup() mas o comando não é terminado,
recebo essas mensagens:

NOTICE:  pg_stop_backup cleanup done, waiting for required WAL segments to
be archived
WARNING:  pg_stop_backup still waiting for all required WAL segments to be
archived (60 seconds elapsed)
DICA:  Check that your archive_command is executing properly.
 pg_stop_backup can be canceled safely, but the database backup will not be
usable without all the WAL segments.
WARNING:  pg_stop_backup still waiting for all required WAL segments to be
archived (120 seconds elapsed)
DICA:  Check that your archive_command is executing properly.
 pg_stop_backup can be canceled safely, but the database backup will not be
usable without all the WAL segments.
WARNING:  pg_stop_backup still waiting for all required WAL segments to be
archived (240 seconds elapsed)
DICA:  Check that your archive_command is executing properly.
 pg_stop_backup can be canceled safely, but the database backup will not be
usable without all the WAL segments.

O que devo fazer?

[]s
Danilo Gomes
___
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-27 Por tôpico Danilo Silva
Em 26 de janeiro de 2017 13:53, Fabrízio de Royes Mello <
fabri...@timbira.com.br> escreveu:

> 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
>

​OK, achei no histórico [1] um tópico onde fala que podemos nos basear pela
view pg_stat_all_tables (coluna n_dead_tup) para verificar a eficiência do
autovacuum, mas em relação a coluna n_dead_tup, qual número seria
relevante, fazer valer a pena, para executarmos​ um VACUUM FULL? Pergunto
isso pois estou com problemas de espaço em disco, então estamos tentando
tirar cada Mb de onde der pra tirar, mas não queremos comprometer a
eficiência do banco.


>
> > 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.
>

​Quais seriam essas variáveis?

[1]
https://listas.postgresql.org.br/pipermail/pgbr-geral/2015-March/040234.html

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

[pgbr-geral] VACUUM FULL

2017-01-26 Por tôpico Danilo Silva
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?

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?

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

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

[pgbr-geral] Instalação do PostgreSQL em Mac

2016-12-14 Por tôpico Danilo Silva
Pessoal,

Vocês teriam um tutorial de instalação do postgres no mac (versão yosemite)?

Qual a melhor forma de instalar?

[]s
Danilo​
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Re: [pgbr-geral] Copiar registros de um banco para outro sem repetir campos únicos

2016-11-24 Por tôpico Danilo Silva
Em 24 de novembro de 2016 16:13, Saraiva Silva 
escreveu:

> Exemplo,
> Tenho dois bancos exatamente iguais onde existe uma tabela PESSOA com os
> campos (num_registro, nome, email, telefone). O campo num_registro não é
> auto incremento.
> Preciso pegar os registros que estão em uma base e colocar na outra. Como
> o campo num_registro é unique, tenho que garantir que os registros que
> estão sendo inseridos não usem o o valor que está armazenado, ao invés
> disso os registros inseridos devem receber novos valores para o campo
> num_registro, começando a partir do próximo valor que está no banco de
> destino.
>
> Preciso fazer isso com um sql genérico.
>

​Talvez não seja a melhor solução, mas você pode criar uma trigger na
tabela de destino que verifique se aquele código já existe, se existir, ele
gera outro, caso contrário, mantem o mesmo.

[]s
Danilo​
___
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-18 Por tôpico Danilo Silva
Em 18 de novembro de 2016 09:08, Marcell Ribeiro 
escreveu:

> Bom dia galera, estou fazendo um pg restore mas está demorando cerca de 7
> horas pra restaurar apenas um tar de 60gb,
>
> Que parâmetros eu poderia mudar no postgresql.conf pra melhorar isso? Já
> pesquisei no google e alterei alguns mas ainda não deu certo não sei por
> que.
>

​Dê uma olhada em [1] e veja se ajuda.

[]s
Danilo

[1]
https://savepoint.blog.br/2012/10/22/acelerando-a-importacao-de-dados-no-postgresql/
​
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Re: [pgbr-geral] Pgbadger

2016-10-12 Por tôpico Danilo Silva
>
> Em qua, 12 de out de 2016 às 00:36, Danilo Silva <
> danilo.dsg.go...@gmail.com> escreveu:
>
>> Pessoal,
>>
>> Instalei o pgbadger e gerei um relatório com o comando: pgbadger -f
>> stderr -v /var/lib/postgresql/9.3/main/pg_log/postgresql-Mon.log -o
>> /var/www/pg_segunda.html (a diretiva log_filename está como
>> 'postgresql-%a.log')
>>
>> O relatório mostrou as estatísticas de um dia de atividade do banco, qual
>> a melhor forma de obter as estatísticas de um modo geral? Terei que gerar
>> executar o comando diariamente? Existem outras formas de gerar o relatório?
>>
>
> Teoricamente, sim, você terá que executar o comando toda vez que você
> quiser que um log seja analisado.
>
> Note que você pode gerar um único relatório para todos os logs que você
> tem num diretório usando caracteres coringa, como postgresql-*.log
>
> Legal Flavio, valeu pela dica.​..

Qual seria a melhor configuração do postgresql.conf, em relação ao
pgbadger, para que eu possa gerar um relatório o mais analítico possível?
Como por exemplo queries lentas e/ou uso de índicies?

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

[pgbr-geral] Pgbadger

2016-10-11 Por tôpico Danilo Silva
Pessoal,

Instalei o pgbadger e gerei um relatório com o comando: pgbadger -f stderr
-v /var/lib/postgresql/9.3/main/pg_log/postgresql-Mon.log -o
/var/www/pg_segunda.html (a diretiva log_filename está como
'postgresql-%a.log')

O relatório mostrou as estatísticas de um dia de atividade do banco, qual a
melhor forma de obter as estatísticas de um modo geral? Terei que gerar
executar o comando diariamente? Existem outras formas de gerar o relatório?

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

Re: [pgbr-geral] Servidor lento

2016-09-17 Por tôpico Danilo Silva
2016-09-17 14:15 GMT-03:00 Antonio Cesar :

> Boa tarde,
>
> O servidor do meu cliente depois de uma queda de energia ficou muito lento
> algum pode me ajudar com alguma informação do que pode ter acontercido.
>

​Verifique se não ficou alguma transação preparada pendente de COMMIT ou
ROLLBACK. Dê uma olha na view​

​pg_prepared_statements

[]s
Danilo​
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Re: [pgbr-geral] Programa para imprimir as tabelas e seus relacionamentos

2016-09-14 Por tôpico Danilo Silva
>
> Acredito que você quis dizer DER (Diagrama entidade relacionamento).
>>
>
​P​utz, é DER, valeu por me lembrar :)

Pessoal, vou avaliar as indicações que vocês enviaram, retorno depois com
os resultados. Por ora, obrigado a todos.

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

[pgbr-geral] Programa para imprimir as tabelas e seus relacionamentos

2016-09-14 Por tôpico Danilo Silva
Pessoal,

Quais programas existem atualmente no mercado (que funcionem para o
PostgreSQL) que imprima as tabelas com seus campos e relacionamentos, se
não me falha a memória, quero que imprima o MER da minha base.

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

[pgbr-geral] Particionamento

2016-05-20 Por tôpico Danilo Silva
Pessoal,

Em uma consulta, envolvendo tabelas particionadas, o postgres considera a
trigger da tabela pai ou o check constraint das tabelas filhas para ir
direto na tabela onde estão os dados?

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

[pgbr-geral] Balanceamento de carga

2016-04-18 Por tôpico Danilo Silva
Pessoal,

Atualmente, considerando um servidor master e outro slave (replicação
nativa), o que é recomendado para balanceamento de carga apenas?

PostgreSQL 9.3, S.O Debian

[]s

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

Re: [pgbr-geral] Alterar tablespace

2016-04-18 Por tôpico Danilo Silva
Em 18 de abril de 2016 17:23, Matheus de Oliveira <matioli.math...@gmail.com
> escreveu:

>
> 2016-04-18 14:55 GMT-03:00 Danilo Silva <danilo.dsg.go...@gmail.com>:
>
>> Preciso mover toda a base para uma outra partição, qual seria a melhor
>> solução, criar uma outra tablespace e executar um alter database alter
>> tablespace?
>
>
> Não vejo uma necessidade de tablespace necessariamente, você poderia
> simplesmente mover o diretório PGDATA para o novo local.
>

​Matheus, não entendi essa colocação, pois o diretorio padrão,
/var/lib/postgresql/9.3/main/, está em uma partição, já o diretorio da
tablespace está em outro, e somente uma base está neste diretório. A base
postgres, por exemplo, está no diretorio padrão.​


>
> A forma de fazer isso varia dependendo do seu SO/Distro e forma como
> instalou o PostgreSQL.
>

​Debian 7, PostreSQL 9.3 instalado via apt-get

[]s
Danilo​
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Re: [pgbr-geral] Alterar tablespace

2016-04-18 Por tôpico Danilo Silva
Em 18 de abril de 2016 16:00, Sebastian Webber <sebast...@swebber.me>
escreveu:

>
>
> Em 18 de abril de 2016 14:55, Danilo Silva <danilo.dsg.go...@gmail.com>
> escreveu:
>
>> Pessoal,
>>
>
> Boa tarde!
>
>
>>
>> Meu cluster possui apenas 1 base dados, e toda a base está em apenas uma
>> tablespace.
>>
>> Preciso mover toda a base para uma outra partição, qual seria a melhor
>> solução, criar uma outra tablespace e executar um alter database alter
>> tablespace?
>>
>
> é uma opção válida. se você tem janela para manutenção eu recomendo que
> você pare, extenda o disco e inicie o banco novamente, se não tem vc pode
> fazer um novo tablespace em outro disco (conforme proposto) ou até, caso
> use LVM, extender o volume em outro disco.
>
> Prefira o que que for mais seguro (ou tem menos chances de falhar) antes
> do mais rápido.
>
> Criando uma nova tablespace,​

​e levando em consideração que a base está com 140 Gb, é possível
presumirmos quanto tempo levará o alter tablespace?

[]s
Danilo​
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

[pgbr-geral] Alterar tablespace

2016-04-18 Por tôpico Danilo Silva
Pessoal,

Meu cluster possui apenas 1 base dados, e toda a base está em apenas uma
tablespace.

Preciso mover toda a base para uma outra partição, qual seria a melhor
solução, criar uma outra tablespace e executar um alter database alter
tablespace?

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

[pgbr-geral] Desempenho de índices

2016-03-11 Por tôpico Danilo Silva
Pessoal,

Existe diferença entre criar índices assim:
CREATE INDEX foo_c1_idx ON foo (campo1);
CREATE INDEX foo_c2_idx ON foo (campo2);

ou assim:
CREATE INDEX foo_idx ON foo (campo1,campo2);

Ambas as formas terão o mesmo desempenho?

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

Re: [pgbr-geral] REF: Ajustar Seqüência Serial.

2016-01-26 Por tôpico Danilo Silva
Em 26 de janeiro de 2016 10:56, Paulo 
escreveu:

> Olá Pessoal,
>
>
>
> Tenho um ERP onde sempre fazemos conversão de dados de outros sistemas
> para nosso banco.
>
> Ocorre em alguns casos de conversão estou tendo problemas com o START do
> Serial.
>
> Preciso do comando que ajuste automaticamente as Seqüências dos Seriais.
>
>
>
> Alguém pode dar uma dica ?
>
>
>
​
ALTER SEQUENCE nome_sequencia RESTART WITH novo_valor;

[]s
Danilo​
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

[pgbr-geral] Restore de schema 8.0 em 9.3

2015-12-17 Por tôpico Danilo Silva
Pessoal,

Efetuei o dump (utilizando versão 9.3) do schema de uma base versão 8.0, ao
efetuar o restore desse schema, é apresentado alguns erros, como esse:


2015-12-17 14:22:54 BRST [5888-23] LOG:  comando: CREATE FUNCTION
lo_in(cstring) RETURNS lo
LANGUAGE c IMMUTABLE STRICT
AS '$libdir/lo', 'lo_in';

2015-12-17 14:22:54 BRST [5888-21] ERRO:  não pôde encontrar função "lo_in"
no arquivo "/usr/lib/postgresql/9.3/lib/lo.so"

Como posso resolver esse erro (ambos servidores são linux)?

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

Re: [pgbr-geral] Restore de schema 8.0 em 9.3

2015-12-17 Por tôpico Danilo Silva
Em 17 de dezembro de 2015 14:50, Fabrízio de Royes Mello <
fabri...@timbira.com.br> escreveu:

> On 17-12-2015 14:33, Danilo Silva wrote:
> > Pessoal,
> >
> > Efetuei o dump (utilizando versão 9.3) do schema de uma base versão 8.0,
> > ao efetuar o restore desse schema, é apresentado alguns erros, como esse:
> >
> >
> > 2015-12-17 14:22:54 BRST [5888-23] LOG:  comando: CREATE FUNCTION
> > lo_in(cstring) RETURNS lo
> > LANGUAGE c IMMUTABLE STRICT
> > AS '$libdir/lo', 'lo_in';
> >
> > 2015-12-17 14:22:54 BRST [5888-21] ERRO:  não pôde encontrar função
> > "lo_in" no arquivo "/usr/lib/postgresql/9.3/lib/lo.so"
> >
> > Como posso resolver esse erro (ambos servidores são linux)?
> >
>
> Nessa sua base 8.0 vc está usando a contrib/lo...
>

​Pergunta básica, como saber se está usando?​


>
> Instale o pacote "contrib" da 9.3 e veja se funciona.
>

​Bem, eu instalei via repositório: aptitude install postgresql-contrib-9.3

[]s
Danilo​
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

[pgbr-geral] Erro de codificação

2015-11-26 Por tôpico Danilo Silva
Pessoal,

Estou tentando efetuar um COPY via psql local de um arquivo, porém recebo a
mensagem: "sequência de bytes é inválida para codificação "UTF8": 0x80"

Tanto client_encoding e server_encoding estão como UTF8, já o arquivo,
executando um file -i mostra como "text/plain; charset=utf-8".

Qual forma correta de importar esse arquivo?

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

Re: [pgbr-geral] Erro de codificação

2015-11-26 Por tôpico Danilo Silva
Em 26 de novembro de 2015 15:31, Glauco Torres 
escreveu:

>
>
>
>
> Pessoal,
>>
>> Estou tentando efetuar um COPY via psql local de um arquivo, porém recebo
>> a mensagem: "sequência de bytes é inválida para codificação "UTF8": 0x80"
>>
>> Tanto client_encoding e server_encoding estão como UTF8, já o arquivo,
>> executando um file -i mostra como "text/plain; charset=utf-8".
>>
>> Qual forma correta de importar esse arquivo?
>>
>> []s
>> Danilo
>>
>>
>
> No comando COPY você esta passando o ENCODING?
>
> Um exemplo de como ser usado.
> COPY xyz FROM '/pasta/xyz.TXT'  using delimiters '@' ENCODING 'UTF8' ;
>
>
> ​Efetuei como indicado, porém, apresentou o mesmo erro.​


​[]s
Danilo​
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Re: [pgbr-geral] Erro de codificação

2015-11-26 Por tôpico Danilo Silva
Em 26 de novembro de 2015 15:55, Glauco Torres <torres.gla...@gmail.com>
escreveu:

>
>
> No dia 26 de novembro de 2015 às 15:47, Danilo Silva <
> danilo.dsg.go...@gmail.com> escreveu:
>
>> Em 26 de novembro de 2015 15:31, Glauco Torres <torres.gla...@gmail.com>
>> escreveu:
>>
>>>
>>>
>>>
>>>
>>> Pessoal,
>>>>
>>>> Estou tentando efetuar um COPY via psql local de um arquivo, porém
>>>> recebo a mensagem: "sequência de bytes é inválida para codificação "UTF8":
>>>> 0x80"
>>>>
>>>> Tanto client_encoding e server_encoding estão como UTF8, já o arquivo,
>>>> executando um file -i mostra como "text/plain; charset=utf-8".
>>>>
>>>> Qual forma correta de importar esse arquivo?
>>>>
>>>> []s
>>>> Danilo
>>>>
>>>>
>>>
>>> No comando COPY você esta passando o ENCODING?
>>>
>>> Um exemplo de como ser usado.
>>> COPY xyz FROM '/pasta/xyz.TXT'  using delimiters '@' ENCODING 'UTF8' ;
>>>
>>>
>>> ​Efetuei como indicado, porém, apresentou o mesmo erro.​
>>
>>
>> ​[]s
>> Danilo​
>>
>>
>>
> Quando você executa os comandos SHOW client_encoding;  e SHOW
> server_encoding;  estão retornando como UTF8 ?
>
> Já que segundo você o file -i do arquivo já esta como UTF8, caso não
> esteja você pode usar o iconv para isso.
>
> ​Está tudo como UTF8:

SHOW ​

​client_encoding​: UTF8
SHOW server_encoding: UTF8
file -i: text/plain; charset=utf-8

[]s
​Danilo​
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Re: [pgbr-geral] Erro de codificação

2015-11-26 Por tôpico Danilo Silva
Em 26 de novembro de 2015 16:02, Danilo Silva <danilo.dsg.go...@gmail.com>
escreveu:

> Em 26 de novembro de 2015 15:55, Glauco Torres <torres.gla...@gmail.com>
> escreveu:
>
>>
>>
>> No dia 26 de novembro de 2015 às 15:47, Danilo Silva <
>> danilo.dsg.go...@gmail.com> escreveu:
>>
>>> Em 26 de novembro de 2015 15:31, Glauco Torres <torres.gla...@gmail.com>
>>> escreveu:
>>>
>>>>
>>>>
>>>>
>>>>
>>>> Pessoal,
>>>>>
>>>>> Estou tentando efetuar um COPY via psql local de um arquivo, porém
>>>>> recebo a mensagem: "sequência de bytes é inválida para codificação "UTF8":
>>>>> 0x80"
>>>>>
>>>>> Tanto client_encoding e server_encoding estão como UTF8, já o arquivo,
>>>>> executando um file -i mostra como "text/plain; charset=utf-8".
>>>>>
>>>>> Qual forma correta de importar esse arquivo?
>>>>>
>>>>> []s
>>>>> Danilo
>>>>>
>>>>>
>>>>
>>>> No comando COPY você esta passando o ENCODING?
>>>>
>>>> Um exemplo de como ser usado.
>>>> COPY xyz FROM '/pasta/xyz.TXT'  using delimiters '@' ENCODING 'UTF8' ;
>>>>
>>>>
>>>> ​Efetuei como indicado, porém, apresentou o mesmo erro.​
>>>
>>>
>>> ​[]s
>>> Danilo​
>>>
>>>
>>>
>> Quando você executa os comandos SHOW client_encoding;  e SHOW
>> server_encoding;  estão retornando como UTF8 ?
>>
>> Já que segundo você o file -i do arquivo já esta como UTF8, caso não
>> esteja você pode usar o iconv para isso.
>>
>> ​Está tudo como UTF8:
>
> SHOW ​
>
> ​client_encoding​: UTF8
> SHOW server_encoding: UTF8
> file -i: text/plain; charset=utf-8
>
>
> ​Um detalhe, o arquivo foi gerado no ms sqlserver​

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

[pgbr-geral] Insert antes de raise exception

2015-11-24 Por tôpico Danilo Silva
Pessoal,

Dentro de uma função que retorna uma trigger, é possível efetuar um insert
antes de um raise exception?

Por exemplo

IF condicao THEN
INSERT tabela_log...
RAISE EXCEPTION '';
RETURN NULL;
END IF;
RETURN NEW;

A intenção é gravar em uma tabela de log a tentativa de insert.

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

Re: [pgbr-geral] Insert antes de raise exception

2015-11-24 Por tôpico Danilo Silva
Em 24 de novembro de 2015 11:50, Flavio Henrique Araque Gurgel <
fha...@gmail.com> escreveu:

> Pessoal,
>>
>> Dentro de uma função que retorna uma trigger, é possível efetuar um
>> insert antes de um raise exception?
>>
>> Por exemplo
>>
>> IF condicao THEN
>> INSERT tabela_log...
>> RAISE EXCEPTION '';
>> RETURN NULL;
>> END IF;
>> RETURN NEW;
>>
>> A intenção é gravar em uma tabela de log a tentativa de insert.
>>
>
> Quando você faz o RAISE EXCEPTION o que você faz é justamente... uma
> exceção. Logo, um rollback é feito obrigatoriamente.
>
> Para fazer o que você quer, tem que tratar a exceção, um bloco assim no
> fim da função pode te ajudar:
> EXCEPTION
> WHEN unique_violation THEN
> INSERT INTO tabela_log... ;
> RETURN outro_valor;
> END;
>
> Lembre-se de tratar seu RETURN na chamada da função, porque você *não*
> terá tratamento do rollback de outros comandos numa mesma transação, neste
> caso.
>
> ​Legal Flavio, vou testar, obrigado.

[]s
Danilo​
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Re: [pgbr-geral] Tipos de dados

2015-11-21 Por tôpico Danilo Silva
Em 21 de novembro de 2015 13:05, Tiago José Adami 
escreveu:

> Em 21 de novembro de 2015 11:26, Osvaldo Kussama
>  escreveu:
> > Em 21/11/15, Luciano Reis escreveu:
> >> Bom dia pessoal, eu fiz uma busca sobre tipos de dados para campos
> >> específicos no PostgreSQL para gravar CEP,CPF, CNPJ, telefones e valores
> >> monetários e encontrei opiniões muito diversas uns defendem que CPF tem
> de
> >> ser guardado como string outros não.
> >> É um primeiro projeto que eu vou iniciar usando o PostgreSQL e não sei
> >> tomar essa decisão, como não encontrei nada concreto e fundamentado
> estou
> >> recorrendo a comunidade.
> >
> > Creio que todos estes campos sejam numéricos e portanto devem ser
> > armazenados como números (inteiro ou decimal de precisão arbitrária).
>
> Eu pratico a seguinte regra: mesmo que o valor seja numérico, se não
> for utilizado para cálculos matemáticos e não for monetário, eu
> prefiro armazenar em VARCHAR, e geralmente com um limite maior do que
> o atributo exige: para CPF e CNPJ eu uso VARCHAR(20), por exemplo.
>
> ​Costumo usar um campo varchar(14) para considerar CPF e CNPJ, onde o dado
é gravado já formato, retirando-se os pontos e traços, etc. Também utilizo
uma CHECK CONSTRAINT para garantir que sejam gravados dados com 11 ou 14
digitos, ou seja, dados com quantidade de digitos diferentes de 11 e 14 não
serão gravados.

​Devemos considerar que o tipo de dado INT não é recomendado para guardar
informações como CPF e CNPJ, pois caso a informação contenha zeros a
esquerda, esses zeros serão ignorados e não teremos uma informação íntegra.

[]s
Danilo​
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

[pgbr-geral] Migrar 8.0 para 9.3

2015-11-18 Por tôpico Danilo Silva
Pessoal,

É possível migrar um banco na versão 8.0.15 diretamente para a versão 9.3
ou 9.4?

Tentei efetuar na 9.3, porém apresentou alguns erros, como por exemplo:

CREATE FUNCTION lo_in(cstring) RETURNS lo LANGUAGE c IMMUTABLE STRICT AS
'$libdir/lo', 'lo_in';
ERRO:  não pôde encontrar função "lo_in" no arquivo
"/usr/lib/postgresql/9.3/lib/lo.so"

Algumas tabelas possuem campos do tipo "large object" para guardar imagens,
será necessário efetuar alguma configuração do lado da versão 9.3, ou devo
instalar algo?

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

Re: [pgbr-geral] Instalação do postgres 9.3 em opensuse

2015-11-17 Por tôpico Danilo Silva
Em 17 de novembro de 2015 13:46, Guimarães Faria Corcete DUTRA, Leandro <
l...@dutras.org> escreveu:

> 2015-11-17 13:41 GMT-02:00 Danilo Silva <danilo.dsg.go...@gmail.com>:
> >
> > A versão 9.3 do postgres roda no openSuse 11.3 ?
>
> Sim, por que não?
>
>
> > É possível instalar via repositório? pois não achei nada no google
>
> Apesar de ser raro, às vezes vale mais a pena ir para fontes
> específicas de informação.  No caso, o sítio da Novell e
> http://postgresql.org/
>
>
Particularmente, eu prefiro​

​instalar via repositório, mas no caso do openSuse, não achei nenhum
repositório para adicionar, o pior é que não estou acostumado com openSuse,
mas é o que tem pra hoje :)

​[]s
Danilo​
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

[pgbr-geral] Instalação do postgres 9.3 em opensuse

2015-11-17 Por tôpico Danilo Silva
Pessoal,

A versão 9.3 do postgres roda no openSuse 11.3 ?

É possível instalar via repositório? pois não achei nada no google, e o
padrão desta versão do openSuse é a versão 8.4.

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

[pgbr-geral] Bloquear usuário durante atualização

2015-11-16 Por tôpico Danilo Silva
Pessoal,

Para que eu possa atualizar o sistema, é necessário que nenhum usuário
esteja logado no banco. A minha dúvida é: apenas o comando ALTER DATABASE
foo CONNECTION LIMIT 0 resolveria? Se o usuário já estiver logado, após
rodado o comando descrito, esse usuário conseguirá executar algum comando?

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

[pgbr-geral] Gerar dicionário de dados

2015-11-16 Por tôpico Danilo Silva
Pessoal,

É possível gerarmos um dicionário de dados através das tabelas de
catálogos? Se sim, qual seria o comando.

Utilizando ferramentas de terceiros, qual seria a mais indicada para esta
geração?

[]s
Danilo
___
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_log parâmetros de coleta de logs

2015-11-09 Por tôpico Danilo Silva
Em 9 de novembro de 2015 11:25, Joel Benelli 
escreveu:

> Bom dia,
>
> Estou desenvolvimento um trabalho em um servidor de testes que tem
> aproximadamente 400 DB referentes a vários sistema.
>
> Devido ao volume de dados de log gerados, necessito coletar os logs a
> partir de um parâmetro (ou conjunto de parâmetros) como database name,
> application name, user name, ..., enfim qualquer coisa ..., para o que
> postgresql-XXX.log tenha somente o conteúdo com dados relacionados a este
> parâmetro.
>
> Quando necessito obter informações específicas dentro do arquivo de log,
eu costumo gerar outros arquivos de log a partir do arquivo original​, por
exemplo

​com o comando: cat postgresql-Mon.log | grep nome_base​ >> logdatabase.log

Com o comando acima, será gravado no arquivo "logdatabase.log" toda linha
que contenha a palavra "nome_base".

Não sei dizer se isso resolveria o seu caso, mas para minha necessidade,
serviu perfeitamente, é claro que você precisa ajustar o parâmetro
log_line_prefix.

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

Re: [pgbr-geral] Extrair meses de um período

2015-10-26 Por tôpico Danilo Silva
>
>
> select date_part('month',data) from  where data >= 01/01/2015 and
> data <= 30/09/2015 group by date_part('month',data)
>
> ​Obrigado pela resposta, porém, no meu caso, não estou envolvendo nenhuma
tabela, tenho apenas o período, e atráves dele extrair os meses.

[]s
Danilo​
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

[pgbr-geral] Extrair meses de um período

2015-10-26 Por tôpico Danilo Silva
Pessoal,

É possível extrairmos os meses de um período de datas? Por exemplo: período
01/01/2015 a 30/09/2015, extrair os mesmo 01,02,03,04,05,06,07,08,09.

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

Re: [pgbr-geral] Extrair meses de um período

2015-10-26 Por tôpico Danilo Silva
2015-10-26 19:06 GMT-02:00 Osvaldo Kussama <osvaldo.kuss...@gmail.com>:

> Em 26/10/15, Danilo Silva<danilo.dsg.go...@gmail.com> escreveu:
> > Pessoal,
> >
> > É possível extrairmos os meses de um período de datas? Por exemplo:
> período
> > 01/01/2015 a 30/09/2015, extrair os mesmo 01,02,03,04,05,06,07,08,09.
> >
>
>
> =# SELECT extract(month from a) mes FROM
> generate_series('2015-01-01'::date, '2015-09-30'::date,  '1 month') AS
> s(a);
>  mes
> -
>1
>2
>3
>4
>5
>6
>7
>8
>9
> (9 rows)
>
> ​
Obrigado a todos pela ajuda. Solucionado com a utilização do
generate_series.

[]s
Danilo​
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

[pgbr-geral] Erro ao importar arquivo

2015-10-02 Por tôpico Danilo Silva
Pessoal,

Tenho um arquivo CSV e ao importá-lo com o comando copy dá o seguinte erro:
ERRO:  sequência de bytes é inválida para codificação "UTF8": 0xa6
CONTEXTO:  COPY baseativa, linha 571427

Minha base, 9.3.9 (LINUX) está em UTF-8, o psql também está em UTF-8.

Devido ao tamanho do arquivo (330 MB) fica complicado tentar corrigir
diretamente no arquivo.

Existe uma maneira mais rápida de corrigir os caracteres ilegíveis pelo
UTF-8?

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

Re: [pgbr-geral] testar latencia AWS

2015-09-24 Por tôpico Danilo Silva
Em 24 de setembro de 2015 09:30, Flavio Henrique Araque Gurgel <
fha...@gmail.com> escreveu:

> Bom dia Pessoal
>> para apimentar um pouco mais, ja que fui eu quem iniciou a thread,
>> abaixo segue as latências enviado pelo pessoal da representante da
>> Amazon no Brasil.
>> no nosso caso vai ficar complicado utilizar os datacenter fora do
>> Brasil, devido nosso ERP (delphi) ser em duas camadas, com o aplicativo
>> na maquina do cliente apontando o banco para o datacenter. Neste caso
>> teríamos que utilizar Terminal Server.
>> Atualmente nosso banco está no datacenter da UOLDIVEO e temos uma
>> latência media de 40s e os clientes reclamam as vezes da lentidão.
>>
>
> Aplicação cliente-servidor sofre muito com latência até o banco de dados,
> normalmente são péssimas candidatas a ir pra nuvem. As diversas consultas
> necessárias para montar uma tela, por exemplo, multiplica a latência.
> Exemplo:
>
> Uma tela que precise de 5 consultas. Se a latência é de 40ms, isso dá
> 200ms, sem contar o tempo de executar as consultas no servidor e mais o
> processamento local com os dados retornados. Se considerarmos BEGIN et
> COMMIT, junta mais 80ms.
>
> No exemplo acima, se a latência for de 200ms (usuário no Brasil e servidor
> nos EUA), seu tempo só de latência sobe para 1,4 segundos! Uma eternidade.
>
> Sim, é inviável no seu caso.
>
> Se vocês gostariam mesmo de ir pra "nuvem", sugiro reescrever uma
> aplicação web, onde o servidor de aplicação fica próximo do banco de dados.
> Nesse caso, o cliente não sente ou sente muito pouco a latência, uma vez
> que a quantidade de idas e vindas se reduz à requisição da página e o
> retorno dela. As idas e vindas aplicação-banco de dados são sempre rápidas,
> normalmente inferiores a 10ms.
>
> Taí, não precisa ser bidu pra calcular o efeito da latência usando dados
> aproximados.
>
> Claro que sua solução de "terminal server" tem um efeito parecido de
> redução de latência, como uma aplicação web.
>
>
> ​No passado tive problema com a latência, mesmo utilizando uma aplicação
web, o usuário reclamava de lentidão, pois fazia-se leitura de código de
barras, e o usuário era mais rápido que a aplicação.

Nesse processo de leitura, a aplicação fazia algumas validações, o problema
era que cada validação representava uma requisição ao banco de dados, então
multiplicando cada requisição pela latência, esse processo todo levava
quase 2 segundos (que eternidade)...

A solução foi tirar as validações da aplicação e colocar no banco de dados,
pois assim a aplicação fazia apenas uma requisição, o banco de dados
processava e retornava o que tinha que retornar, com isso, conseguimos
reduzir para apenas alguns milissegundos o processo e deixar o cliente
feliz :)

Douglas, analise todo o processo e tente reduzir a quantidade de
requisições que a aplicação faz ao banco de dados, com isso você conseguirá
reduzir o tempo total do processo.

[]s
Danilo
___
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 usar sequences (era "sem assunto")

2015-09-21 Por tôpico Danilo Silva
Em 21 de setembro de 2015 10:00, Flavio Henrique Araque Gurgel <
fha...@gmail.com> escreveu:

> Galera,
>>
>
> Bom dia, coloque sempre um assunto em suas mensagens, por favor.
>
> Estou tendo um problema com uma sequence criada automaticamente no banco
>> de dados utilizando o tipo de campo SERIAL. Ao tentar usar a sequence,
>> recebo a seguinte mensagem:
>>
>> sql> select currval('revisions_id_seq')
>> [2015-09-21 09:53:10] [55000] ERROR: currval of sequence
>> "revisions_id_seq" is not yet defined in this session
>>
>
> Você precisa sempre gerar um valor para sua sequência antes de chamar a
> função curval.
> No seu caso, acho que você precisa fazer um
> SELECT nextval('revisions_id_seq');
> e depois você pode chamar curval quantas vezes precisar.
>
> Alguma idéia? Pesquisei um montão de lugares, e só aparece página de PHP
>> fazendo Go Horse na solução. Nada efetivo para que na hora de criar a
>> sequence no cliente eu não tenha o mesmo erro.
>>
>
> Não sei o que é "Go Horse". Mas a solução taí em cima.
>
> Preciso uma solução que fique dentro da DDL para não ter problemas.
>>
>
> Nada muda na sua DDL, só suas DML e DQL.
>
>
> ​Talvez o que o colega esteja querendo é obter o valor da sequence após um
insert, sendo isso, acrescente no final do comando insert a instrução
"RETURNING campo_​da_sequence"

Supondo que o campo que receberá a sequence chama-se idcodigo, o comando
ficaria assim: INSERT tabela (campos) VALUES (valores) RETURNING​ idcodigo;

Lembrando que o campo, no meu exemplo idcodigo, não precisa estar presente
no comando insert, ou seja, não precisa conter na instrução, apenas no
returning.

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

[pgbr-geral] Identificar pg_start_backup e pg_stop_backup

2015-09-10 Por tôpico Danilo Silva
Pessoal,

Como podemos identificar se o comando pg_start_backup foi executado?

Após ser executado o comando pg_start_backup, é possível saber se foi
executado o comando pg_stop_backup?

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

Re: [pgbr-geral] Identificar pg_start_backup e pg_stop_backup

2015-09-10 Por tôpico Danilo Silva
Em 10 de setembro de 2015 14:08, Franklin Anderson de Oliveira Souza <
frankli...@gmail.com> escreveu:

> na versão 9.3 em diante é mais interessante usar o pg_basebackup não é ?!
>
> Em 10 de setembro de 2015 13:41, Flavio Henrique Araque Gurgel <
> fha...@gmail.com> escreveu:
>
>> Pessoal,

 Como podemos identificar se o comando pg_start_backup foi executado?

 Após ser executado o comando pg_start_backup, é possível saber se foi
 executado o comando pg_stop_backup?

>>>
>>> select pg_is_in_backup();
>>> Retorna verdadeiro se estiver em modo de backup (foi feito
>>> pg_start_backup mas ainda não foi feito pg_stop_backup).
>>>
>>
>> Só um detalhe que esqueci, esta função foi implementada na versão 9.3.
>>
>> Em versões anteriores, uma opção é verificar se existe o arquivo
>> backup_label dentro do diretório de dados. Se ele existir, o banco está em
>> modo de backup (ou foi parado a força no meio de um backup). Este arquivo
>> continua sendo gerado nas versões que dispoem da função pg_is_in_backup().
>>
>> ​Obrigado!!!

[]s
Danilo​
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

[pgbr-geral] Tempo de execução do backup físico

2015-08-29 Por tôpico Danilo Silva
Pessoal,

Em um cluster com +- 180 GiB, o que deveríamos levar em consideração para
determinarmos se o tempo do backup físico (utilizando rsync) está elevado
ou não?

Semana passada, levou 3 horas, hoje, levou quase 5 horas.

Se utilizar o pg_basebackup ao invés do rsync, terei ganho de tempo?

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

[pgbr-geral] Diferença condicional para campos boolean

2015-08-25 Por tôpico Danilo Silva
Pessoal,

Existe diferença entre os where abaixo?

WHERE campo_boolean IS TRUE

WHERE campo_boolean = TRUE

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

Re: [pgbr-geral] Update ou select

2015-08-19 Por tôpico Danilo Silva
Em 19 de agosto de 2015 09:13, Dickson S. Guedes lis...@guedesoft.net
escreveu:

 Em 19 de agosto de 2015 00:28, Danilo Silva
 danilo.dsg.go...@gmail.com escreveu:
  Pessoal,
 
  Considerando:
  pedido | item
   1|  ABC
   1|  XYZ
   2|  XPTO
 
  Tenho uma rotina de integração onde, para cada item do pedido, eu preciso
  indicar o recebimento do pedido, sendo efetuado um update na tabela de
  pedidos dizendo que aquele pedido foi recebido.
 
  Terei que utilizar uma trigger para isso e a minha dúvida é:
  Para cada insert na tabela de itens efetuar o update da tabela de pedidos
  OU
  Para cada insert na tabela de itens, fazer um select na tabela de pedidos
  para saber se o pedido já foi recebido, e caso não tenha sido recebido,
  efetuar o update.
 
  Creio que efetuar o select antes será melhor para evitar os buracos
 que o
  update causa e assim diminuir as ações do autovacuum na tabela de
 pedidos.

 Não respondendo diretamente sua pergunta mas apenas salientando que você
 pode testar no próprio UPDATE, antes de fazer o SELECT, algo como:

 UPDATE pedidos SET recebido = true WHERE codigo_pedido = XYZ AND
 NOT recebido;

 ​Putz, é verdade, caraca esqueci que posso fazer desta forma, deve ter
sido o horário :)
​Valeu...

[]s
Danilo​
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

[pgbr-geral] Update ou select

2015-08-18 Por tôpico Danilo Silva
Pessoal,

Considerando:
pedido | item
 1|  ABC
 1|  XYZ
 2|  XPTO

Tenho uma rotina de integração onde, para cada item do pedido, eu preciso
indicar o recebimento do pedido, sendo efetuado um update na tabela de
pedidos dizendo que aquele pedido foi recebido.

Terei que utilizar uma trigger para isso e a minha dúvida é:
Para cada insert na tabela de itens efetuar o update da tabela de pedidos
OU
Para cada insert na tabela de itens, fazer um select na tabela de pedidos
para saber se o pedido já foi recebido, e caso não tenha sido recebido,
efetuar o update.

Creio que efetuar o select antes será melhor para evitar os buracos que o
update causa e assim diminuir as ações do autovacuum na tabela de pedidos.

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

[pgbr-geral] Backup físico com rsync

2015-08-15 Por tôpico Danilo Silva
Pessoal,

Atualmente meu backup físico utilizando o pg_basebackup leva em torno de 2
horas para ser concluído (ambiente linux com postgres 9.3).

Efetuei alguns testes (em um cluster menor) utilizando o rsync para efetuar
a cópia, ou seja, tudo manual (pg_start_backup, rsync, pg_stop_backup).

Após alguns dias, simulando a realidade de cópia física com rsync, efetuei
o restore, e aparentemente tudo ocorreu normalmente sem problemas.

A minha dúvida está na confiabilidade, se eu colocar esse método em
produção poderei ter problemas?

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


[pgbr-geral] pg_basebackup

2015-07-28 Por tôpico Danilo Silva
Pessoal,

É possível executar o pg_basebackup com a opção -D apontando para um
servidor de backups?

algo como: pg_basebackup -D ip_servidor_backup

[]s
Danilo
___
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_basebackup

2015-07-28 Por tôpico Danilo Silva
2015-07-28 11:27 GMT-03:00 Euler Taveira eu...@timbira.com.br:

 On 27-07-2015 10:29, Danilo Silva wrote:

 É possível executar o pg_basebackup com a opção -D apontando para um
 servidor de backups?

 algo como: pg_basebackup -D ip_servidor_backup

  Não. Execute o pg_basebackup no servidor de backups.

 ​Não me recordo, mas para ter somente o pg_basebackup instalado no
servidor, preciso apenas instalar a contrib? ou terei que efetuar uma
instalação padrão (completa) do postgres?

[]s
Danilo​
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] UPDATE recursivo

2015-07-13 Por tôpico Danilo Silva
Em 13 de julho de 2015 21:12, Cleiton Luiz Domazak cleitondoma...@gmail.com
 escreveu:

 Boa noite.

 Não sei se alguém já precisou disso.

 Preciso fazer um UPDATE em várias tabelas em um campo chave, porém existe
 relacionamento entre elas via FK, e preciso gerar o script de UPDATE desses
 campos dinamicamente, pois não quero engessar o script, caso alguma tabela
 seja adicionada ou removida do banco, o script deve continuar funcionando.
 Ou se existir uma ferramenta que pelo menos monte essa hierarquia.

 Segue um exemplo:

 CREATE TABLE pai
 (
   id bigint NOT NULL,
   value character varying(255),
   CONSTRAINT pai_pkey PRIMARY KEY (id)
 );


 CREATE TABLE filho
 (
   id bigint NOT NULL,
   id_pai bigint,integridade
   CONSTRAINT filho_pkey PRIMARY KEY (id),
   CONSTRAINT filho_id_pai_fkey FOREIGN KEY (id_pai)
   REFERENCES pai (id) MATCH SIMPLE
   ON UPDATE NO ACTION ON DELETE NO ACTION
 );

 CREATE TABLE neto
 (
   id bigint NOT NULL,
   id_filho bigint,
   CONSTRAINT neto_pkey PRIMARY KEY (id),
   CONSTRAINT neto_id_filho_fkey FOREIGN KEY (id_filho)
   REFERENCES filho (id) MATCH SIMPLE
   ON UPDATE NO ACTION ON DELETE NO ACTION
 );


 Para eu realizar o UPDATE na tabela PAI eu teria que primeiro fazer um
 UPDATE na tabela FILHO que por sua vez depende de um UPDATE na tabela
 NETO (sim, nome bizarro só pra identificar :D), e eu não tenho como
 garantir quantos níveis eu tenho.

 ​Troque suas constraints para MATCH SIMPLE ON UPDATE CASCADE ON DELETE
RESTRICT, assim quando o id da tabela pai for alterado, as tabelas que
fazem referencia a tabela pai também serão alterados.

[]s
Danilo​
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] ajuda com for

2015-07-01 Por tôpico Danilo Silva


 ​​
 CREATE OR REPLACE FUNCTION dah.wdetcad() RETURNS TRIGGER AS $body$
 declare
 i integer;

 BEGIN
 for i in 1..(select max(codempresa) from configura  WHERE codhotel 1)
 loop
 INSERT INTO detcad
 select i, new.codgrupo, new.codfuncresp ;
  end loop;

 RETURN NEW();
 END;
 $body$
 LANGUAGE plpgsql;


​Coloque o max em uma variável e a função ficaria: ​

​
CREATE OR REPLACE FUNCTION dah.wdetcad() RETURNS TRIGGER AS $body$
declare
i integer;
vmax integer;

BEGIN
select max(codempresa) from configura  WHERE codhotel 1 INTO vmax;
for i in 1..vmax
loop
INSERT INTO detcad
select i, new.codgrupo, new.codfuncresp ;
 end loop;

RETURN NEW();
END;
$body$
LANGUAGE plpgsql;

Obs: não testei a função.

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


[pgbr-geral] Operações que ativam o autovacuum

2015-06-25 Por tôpico Danilo Silva
Pessoal,

Operações de inserts *teoricamente* não ativa o autovacuum, mas updates e
deletes sim.

Operações de rollback podem ativar?

Enfim, quais operações podem ativar o autovacuum?

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


Re: [pgbr-geral] Driver de conexão com SqlServer

2015-06-08 Por tôpico Danilo Silva
Em 2 de junho de 2015 10:59, Fabrízio de Royes Mello 
fabri...@timbira.com.br escreveu:

 On 02-06-2015 10:46, Danilo Silva wrote:
  Pessoal,
 
  Qual seria o melhor driver de conexão do Sqlserver com o PostgreSQL?
 
  No caso, o sqlserver enviará os dados para o postgres através de
 transações.
 

 Pelo que entendi vc irá fazer uma conexão apartir do SQLServer para o
 PostgreSQL? Se sim, então creio que vc precisará utilizar o driver ODBC
 [1] de acordo com a versão do PostgreSQL que vc irá conectar.

 ​Utilizo a versão 9.3, neste caso, a última versão do odbc é a
psqlodbc_09_03_0400.zip a qual foi instalada no servidor onde está o
sqlserver.

Selects, inserts ocorrem normalmente, o problema está quando um insert é
feito dentro de uma transação:


BEGIN TRANSACTION;
INSERT INTO 
COMMIT;

Quando executado os comandos acima, o erro retornado é:
(
1 row(s) affected)
Msg 8522, Level 18, State 1, Line 7
Microsoft Distributed Transaction Coordinator (MS DTC) has stopped this
transaction.

​Creio que o problema não está no postgres, ficarei grato se puderem me
ajudar​.

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


[pgbr-geral] Driver de conexão com SqlServer

2015-06-02 Por tôpico Danilo Silva
Pessoal,

Qual seria o melhor driver de conexão do Sqlserver com o PostgreSQL?

No caso, o sqlserver enviará os dados para o postgres através de transações.

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


[pgbr-geral] pg_stat_replication

2015-05-21 Por tôpico Danilo Silva
Pessoal,

Li na documentação mas não entendi muito bem, vocês poderiam explicar o que
quer dizer as colunas sent_location, , write_location, flush_location,
replay_location da view pg_stat_replication (PostgreSQL 9.3).

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


[pgbr-geral] Relacionamento entre tabelas - integer e array

2015-05-19 Por tôpico Danilo Silva
Pessoal,

Tenho as tabela cargos e funcionários:

CREATE TABLE _cargos (
car_codcargo integer[],
car_nome text NOT NULL,
CONSTRAINT _car_pk PRIMARY KEY (car_codcargo)
);

INSERT INTO _cargos VALUES
(1,'MECANICO'),(2,'SOLDADOR'),(3,'AUXILIAR'),(4,'VENDEDOR'),(5,'CONTADOR');

CREATE TABLE _funcionarios (
fun_codfunc serial,
fun_codcargo integer[] NOT NULL,
fun_nome text NOT NULL,
CONSTRAINT _fun_pk PRIMARY KEY (fun_codfunc)
);

INSERT INTO _funcionarios VALUES (1,ARRAY[1],'AAA');
INSERT INTO _funcionarios VALUES (2,ARRAY[1],'AAB');
INSERT INTO _funcionarios VALUES (3,ARRAY[1,2],'AAC');

É possível criar relacionamento entre as duas tabelas, para que seja
possível somente inserir na tabela funcionario códigos de cargos que
existam na tabela cargos?

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


Re: [pgbr-geral] Instalação do postgres em windows

2015-05-15 Por tôpico Danilo Silva
Em 15 de maio de 2015 11:14, Guimarães Faria Corcete DUTRA, Leandro 
l...@dutras.org escreveu:

 Em 15 de maio de 2015 11:06, Danilo Silva danilo.dsg.go...@gmail.com
 escreveu:
 
  Estou tentando instalar a versão 9.3.6 em windows server 2008

 Meus pêsames.  Pelo MS Windows, porque o PostgreSQL funciona até nessa
 joça.


  porém, logo no início dá erro de Microsoft VC++ runtime installer.

 Qual erro exatamente?


​
There has been an error.
An error ocoured executing the Microsoft VC++ runtime installer
​

​[]s
Danilo​
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


[pgbr-geral] Limite de procedimentos dentro de uma transação

2015-05-07 Por tôpico Danilo Silva
Pessoal,

Dentro de um processo de atualização da aplicação, considerando o seguinte
cenário:
BEGIN;
INSERT
UPDATE...
CREATE...
INSERT...
COMMIT ou ROLLBACK;

Existe algum limite de procedimentos dentro de uma transação?

Considerando que ninguém estará acessando o banco, posso ter algum problema
em relação ao tempo que a transação ficará aberta?

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


Re: [pgbr-geral] Limite de procedimentos dentro de uma transação

2015-05-07 Por tôpico Danilo Silva
2015-05-08 0:06 GMT-03:00 Euler Taveira eu...@timbira.com.br:

 On 07-05-2015 23:36, Danilo Silva wrote:
  ​Certo, se eu entendi, neste caso um insert gera um id, um update, outro
  id, um novo insert, outro id, e assim por diante?​
 
 É o que eu tentei^H^H^H^H^H^H escrevi, não?


​Euler, eu não entendi a sua resposta de agora, você refere-se a sua
resposta anterior, onde fala sobre os 2^32-2 ?​
​

​[]s
Danilo​
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Limite de procedimentos dentro de uma transação

2015-05-07 Por tôpico Danilo Silva
Em 7 de maio de 2015 22:35, Euler Taveira eu...@timbira.com.br escreveu:

 On 07-05-2015 20:29, Danilo Silva wrote:
  Existe algum limite de procedimentos dentro de uma transação?
 
 2^32-2 comandos que escrevem (como por exemplo, INSERT, UPDATE e
 DELETE). Comandos SELECT não entram nesta contagem.

  Considerando que ninguém estará acessando o banco, posso ter algum
 problema
  em relação ao tempo que a transação ficará aberta?
 
 Transações longas não são recomendadas principalmente se o seu
 agrupamento de bancos de dados consumir muitos (bilhões) id de transação
 durante o tempo que a transação permanecer aberta. Normalmente isso pode
 levar meses ou anos.


​Certo, se eu entendi, neste caso um insert gera um id, um update, outro
id, um novo insert, outro id, e assim por diante?​


​[]s
Danilo​



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


[pgbr-geral] Prepare transaction

2015-05-07 Por tôpico Danilo Silva
Pessoal,

Gostaria de uma ajuda sobre o comando PREPARE TRANSACTION, para quê ele
serve?

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


Re: [pgbr-geral] Ferramenta de modelagem com bom recurso para criar funções

2015-04-18 Por tôpico Danilo Silva

 Entendo... Criar as tabelas e suas restrições e relacionamentos é até
 tranquilo, mas acho que na hora de se criar outros elementos ficaria
 meio complicado. Tipo, geralmente na hora de criar uma função, uma view,
 ou qualquer coisa que você criar após as tabelas estarem prontas, fica
 complicado se você precisar de algumas informações da qual você não
 lembra de pronto, tipo, qual o tipo de dado você definiu para um campo X
 na tabela Y.
 Procurar essa informação em um arquivo de. sei la. 700 linhas de
 código é osso. No diagrama você teria uma representação gráfica de tudo,
 ficando muito mais fácil encontrar. Por mais que o editor tenha recursos
 para localizar palavras através de regex, acho que ainda não seria tão
 prático quanto.


Ao invés de procurar em um arquivo, não seria mais fácil ir direto na
tabela em questão e saber qual o tipo do campo?​


Na verdade acho que o problema das ferramentas de modelagem está no fato
 de não existirem opções descentes para PorstgreSQL, principalmente
 livres. O SQL Server tem sua ferramenta de administração front-end, e é
 onde os DBAs MS desenvolvem seus projetos.
 Mas eu não tenho problemas em sair na mão com o editor não, até porque
 como estou escrevendo essa aplicação em python, já estou acostumado ao
 trabalho braçal. Só fico pensando se caso eu resolva mandar o
 modelador pro inferno e partir pra unha não terei perda de
 produtividade.
 Eu sou novo no PostgreSQL, tento desenvolver nele como em sempre fiz no
 SQL Server. Qual é o roteiro que vocês mais habituados com ele seguem
 para modelar uma base de dados? Tipo escreve o script inteiro na unha,
 funções, view, etc, e depois roda o código e corrige os possíveis erros?
 Ou modelam por partes, tipo, escreve o script das tabelas, restrições e
 relacionamentos, roda, depois cria scripts individuais para as funções,
 view, e as roda separadamente?


Sei que tem ferramentas que *podem* ajudar no desenvolvimento, mas eu,
particularmente, escrevo todos os meus projetos na unha, tanto projetos
de banco de dados quanto os projetos das aplicações (php por exemplo),
prefiro assim, pelo menos não fico dependente. No caso do postgres, utilizo
apenas o pgadmin para executar os comandos, nada de botão direito do
mouse...new table por exemplo.

Não conheço a administração do SQL Server, mas fico imaginando o seguinte:
o que será que acontece se um DBA SQL Server tiver que administrar uma base
sem o front-end, ou seja, tiver que executar tudo na unha?

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


[pgbr-geral] Uso de tablespace

2015-04-15 Por tôpico Danilo Silva
Pessoal,

Com a exceção de organização, qual benefício em utilizar tablespace,
estando esta no mesmo disco?

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


[pgbr-geral] Diferença entre campos do tipo string

2015-04-15 Por tôpico Danilo Silva
Pessoal,

Existe diferença entre os campos do tipo varchar(n) e text?

Qual seria a limitação de caracteres para estes tipos?

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


Re: [pgbr-geral] Diferença entre campos do tipo string

2015-04-15 Por tôpico Danilo Silva
Em 15 de abril de 2015 10:09, Flavio Henrique Araque Gurgel 
fha...@gmail.com escreveu:

 Existe diferença entre os campos do tipo varchar(n) e text?


 Fisicamente, não há diferença.
 Logicamente, o varchar tem a limitação no número de caracteres (n) mas é
 apenas uma verificação no momento em que se insere ou se altera o valor.

  Qual seria a limitação de caracteres para estes tipos?


 1 GiB, não caracteres, afinal alguns caracteres em algumas codificações
 são multi-byte.

 Sempre tive essa dúvida, pois até então pensava que o varchar tivesse uma
limitação de 255 caracteres, por isso seguia uma regra minha: se o tamanho
é fixo e menor que 255 caracteres uso char, se o tamanho for variável de
até 255 utilizo varchar, fora isso uso text.

Mas por sua resposta estava errado, pois não tem diferenças entre varchar e
text, apenas limitação de espaço a ser armazenado.

Obrigado.

[]s
Danilo​
___
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 tablespace

2015-04-15 Por tôpico Danilo Silva
Em 15 de abril de 2015 10:10, Flavio Henrique Araque Gurgel 
fha...@gmail.com escreveu:


  Com a exceção de organização, qual benefício em utilizar tablespace,
 estando esta no mesmo disco?


 Nenhum.

 Por acaso você está fazendo alguma prova on-line e obtendo resposta na
 lista? (curiosidade apenas aqui)

 ​Não, apenas uma dúvida que tinha, pois terei que migrar algumas bases e
levantaram a questão de usar tablespace, mas até então disponibilizaram
apenas um disco para o postgres.

Obrigado.

[]s
Danilo​
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


[pgbr-geral] pgbouncer

2015-04-08 Por tôpico Danilo Silva
Pessoal,

Preciso garantir um máximo de 1000 conexões simultâneas, então penso em
utilizar o pgbouncer para efetuar um pool das conexões e tentar diminuir
os acessos diretos ao postgres.

Para este cenário, qual seria os valores ideais ou próximos para:

max_connections (postgresql.conf)?
pool_mode (pgbouncer.ini)?
max_client_conn (pgbouncer.ini)?
default_pool_size (pgbouncer.ini)?

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


[pgbr-geral] Segurança dos dados

2015-03-25 Por tôpico Danilo Silva
Pessoal,

Existe alguma maneira de bloquear a visualização das functions e o seu
conteúdo?

Quero me refereir a um bloqueio total, mesmo para os superusuários, sendo o
acesso somente mediante a uma senha por exemplo.

Sei que existe meios de bloquear o acesso ao esquema por exemplo, até
funcionaria, mas a questão é que qualquer pessoa com acesso root ao
servidor poderia alterar o pg_hba.conf e conectar via superusuário sem
utilização de senha, mas existe alguma forma de barrar isso, ou seria
somente re-compilando o código fonte do postgres?

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


[pgbr-geral] Histórico de DML

2015-03-12 Por tôpico Danilo Silva
Pessoal,

Qual a melhor maneira de guardar todos os inserts, updates e deletes que
ocorrem em todas as tabelas de uma determinada base de dados?

Em relação aos updates, preciso ter um histórico do que foi alterado,
apresentando em um relatório quais campos sofreram alteração de um
determinado registro, algo como valor anterior valor atual.

Pensei em criar uma cópia da tabela, que serviria para guardar os registros
alterados, seria a melhor solução?

A versão 9.4 tem algo relacionado a isso?

[]s
Danilo Gomes
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


[pgbr-geral] Desabilitar parâmetros enable_*

2015-03-06 Por tôpico Danilo Silva
Pessoal,

Pode acontecer casos em que devemos deixar (pelo menos para a sessão) os
parâmetros enable_seqscan, enable_mergejoin e enable_hashjoin desabilitados
para termos uma melhor performance no retorno dos dados de uma consulta?

Pergunto porque isso está acontecendo comigo, entendo que esses parâmetros
devem ficar habilitados para o postgres decidir qual melhor caminho a
fazer.

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


Re: [pgbr-geral] Tempo de backup

2015-03-03 Por tôpico Danilo Silva
Em 3 de março de 2015 12:07, Euler Taveira eu...@timbira.com.br escreveu:

 On 03-03-2015 11:47, Danilo Silva wrote:
  Em 3 de março de 2015 11:00, Euler Taveira eu...@timbira.com.br
 escreveu:
 
  Existem métodos onde podemos acelerar o tempo para execução?
 
  No pg_basebackup somente a opção --checkpoint=fast. Se você optar por
  não compactar (opção --gzip) também vai levar menos tempo, porém, vai
  ocupar mais espaço.
 
  ​Certo, fiz um teste em uma base com 16GB (base + tablespaces):
  com a opção -Z 9​
 
  ​levou 38 minutos e no final o diretorio ficou com 1,8GB
  sem a opção -Z9 levou 8 minutos e no final o diretorio ficou com 13GB​.
  Neste caso, onde está os outros 3GB? Pergunto isso para tentar saber se
 irá
  reduzir os 300GB que estão em produção.
 
 Como você não mostrou o comando utilizado fica difícil saber porque a
 diferença foi tão grande. Baseado no que você descreveu, com mais
 compressão (9) leva mais tempo para produzir um arquivo menor.


​38 minutos = pg_basebackup -U replicador -P -c fast -v -D
/backup/database/ -Ft -Z 9
08 minutos = pg_basebackup -U replicador -P -c fast -v -D /backup/database/
-Ft​

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


[pgbr-geral] Tempo de backup

2015-03-03 Por tôpico Danilo Silva
Pessoal,

Considerando que o diretório $PGDATA está com 300GB, utilizando o método de
backup físico com o pg_basebackup:

O hardware influencia consideravelmente? o que mais impacta, cpu, disco ou
memória?

Existem métodos onde podemos acelerar o tempo para execução?

É possível estimarmos quanto tempo levará para efetuar o backup?

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


Re: [pgbr-geral] Tempo de backup

2015-03-03 Por tôpico Danilo Silva
Em 3 de março de 2015 11:00, Euler Taveira eu...@timbira.com.br escreveu:

  Existem métodos onde podemos acelerar o tempo para execução?
 
 No pg_basebackup somente a opção --checkpoint=fast. Se você optar por
 não compactar (opção --gzip) também vai levar menos tempo, porém, vai
 ocupar mais espaço.

 ​Certo, fiz um teste em uma base com 16GB (base + tablespaces):
com a opção -Z 9​

​levou 38 minutos e no final o diretorio ficou com 1,8GB
sem a opção -Z9 levou 8 minutos e no final o diretorio ficou com 13GB​.
Neste caso, onde está os outros 3GB? Pergunto isso para tentar saber se irá
reduzir os 300GB que estão em produção.

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


Re: [pgbr-geral] Transações por hora

2015-03-02 Por tôpico Danilo Silva
Em 2 de março de 2015 17:11, Matheus de Oliveira matioli.math...@gmail.com
escreveu:


 2015-03-02 17:08 GMT-03:00 Danilo Silva danilo.dsg.go...@gmail.com:

 Essas transações são independentes da quantidade de comandos? Por
 exemplo: em uma única transação eu executo vários comandos, como inserts,
 updates, deletes, etc, a ​

 ​coluna
 ​
 xact_commit
 ​ irá considerar tudo como uma transação apenas?


 Isso, uma transação só.



 É possível saber quantos arquivos WAL foram gerados para essas transações?


 Você pode pegar a posição atual do WAL usando a função
 pg_xlog_insert_location. Recupere e salve, depois de um tempo recupere
 novamente e use a pg_xlog_location_diff para saber em bytes a diferença
 entre os dois. Se quiser saber em número de segmentos do WAL, basta dividir
 por 16MB.

 ​Valeu...

[]s
Danilo​
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Tablespaces em backup físico

2015-03-02 Por tôpico Danilo Silva
Em 2 de março de 2015 17:09, Matheus de Oliveira matioli.math...@gmail.com
escreveu:


 2015-03-02 17:02 GMT-03:00 Danilo Silva danilo.dsg.go...@gmail.com:

 E esse método pode também ser utilizado como PITR, certo?, bastando criar
 o recovery.conf após as extração de todos os diretórios...


 Correto.

 ​Valeu...

[]s
Danilo​
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Tablespaces em backup físico

2015-03-02 Por tôpico Danilo Silva
Em 2 de março de 2015 10:42, Matheus de Oliveira matioli.math...@gmail.com
escreveu:


 2015-03-02 10:27 GMT-03:00 Danilo Silva danilo.dsg.go...@gmail.com:

 Quando possuímos tablespaces para: pg_xlog, indíces e mariores tabelas,
 ao efetuarmos o backup físico on-line, devemos backpear as tablespace do
 pg_xlog e dos índices, ou somente das tabelas?


 Você deve executar o backup de todos tablespaces, incluindo índices.
 Quanto ao pg_xlog, não é necessário incluí-lo caso você já esteja
 realizando o arquivamento dos logs de transação, o que é o recomendado.

 Para facilitar, você pode usar o pg_basebackup [1]. Caso esteja fazendo o
 backup com ferramentas externas, não se esqueça do pg_start_backup e
 pg_stop_backup.

 [1] http://www.postgresql.org/docs/current/static/app-pgbasebackup.html


 Para utilizar o pg_basebackup é necessário ter a mesma estrutura de
diretorios? Por exemplo, a tablespace está em /database/indice/, no meu
servidor onde ficará os backups eu preciso ter um diretório
/database/indice/ ?

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


[pgbr-geral] Tablespaces em backup físico

2015-03-02 Por tôpico Danilo Silva
Pessoal,

Quando possuímos tablespaces para: pg_xlog, indíces e mariores tabelas, ao
efetuarmos o backup físico on-line, devemos backpear as tablespace do
pg_xlog e dos índices, ou somente das tabelas?

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


Re: [pgbr-geral] Tablespaces em backup físico

2015-03-02 Por tôpico Danilo Silva
Em 2 de março de 2015 12:37, Matheus de Oliveira matioli.math...@gmail.com
escreveu:


 2015-03-02 12:31 GMT-03:00 Euler Taveira eu...@timbira.com.br:

 On 02-03-2015 11:53, Danilo Silva wrote:
  Para utilizar o pg_basebackup é necessário ter a mesma estrutura de
  diretorios? Por exemplo, a tablespace está em /database/indice/, no
 meu
  servidor onde ficará os backups eu preciso ter um diretório
  /database/indice/ ?
 
 Para o backup, não. Quanto a restauração, você deve ter o mesmo caminho
 ao restaurar.


 Ou, na versão 9.4 é possível usar a opção --tablespace-mapping, para
 mapear novos caminhos para os tablespaces.


 ​Utilizo a versão 9.3, logo não tenho essa opção :(​


​Pelo o que eu entendi da documentação, eu não posso direcionar a saída do
backup para o mesmo servidor (quando utiliza tablespaces), é isso mesmo?

Colocando a saída para outro servidor, ​eu não precisarei criar,
antecipadamente, os diretórios das tablespaces? Ou seja, somente precisarei
criar os diretórios quando houver a necessidade de restauração?

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


Re: [pgbr-geral] Tablespaces em backup físico

2015-03-02 Por tôpico Danilo Silva
Em 2 de março de 2015 14:37, Matheus de Oliveira matioli.math...@gmail.com
escreveu:


 2015-03-02 14:07 GMT-03:00 Danilo Silva danilo.dsg.go...@gmail.com:


 Ou, na versão 9.4 é possível usar a opção --tablespace-mapping, para
 mapear novos caminhos para os tablespaces.


 ​Utilizo a versão 9.3, logo não tenho essa opção :(​


 ​Pelo o que eu entendi da documentação, eu não posso direcionar a saída
 do backup para o mesmo servidor (quando utiliza tablespaces), é isso mesmo?


 Se você usar o formato tar, não precisa.

 ​Efetuei esse teste:
postgres@laptop:~$ time pg_basebackup -U replicador -P -c fast -v -D
/backup/pgsql/ -Ft -z
13505678/13505678 kB (100%), 4/4 tablespaces

NOTA:  pg_stop_backup concluído, todos os segmentos do WAL foram arquivados
pg_basebackup: base backup completed

real 9m47.891s
user 6m58.115s
sys 0m11.935s


postgres@laptop:/backup$ ls -lh pgsql/
total 1,9G
-rw-rw-r-- 1 postgres postgres  361 Mar  2 15:14 3511277.tar.gz
-rw-rw-r-- 1 postgres postgres  63M Mar  2 15:14 3511278.tar.gz
-rw-rw-r-- 1 postgres postgres 7,1K Mar  2 15:14 3511279.tar.gz
-rw-rw-r-- 1 postgres postgres 1,8G Mar  2 15:23 base.tar.gz

Agora a dúvida, como restauro estando desta forma?​


​[]s
Danilo​
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Tablespaces em backup físico

2015-03-02 Por tôpico Danilo Silva
Em 2 de março de 2015 16:56, Matheus de Oliveira matioli.math...@gmail.com
escreveu:


 2015-03-02 16:37 GMT-03:00 Danilo Silva danilo.dsg.go...@gmail.com:

 postgres@laptop:/backup$ ls -lh pgsql/
 total 1,9G
 -rw-rw-r-- 1 postgres postgres  361 Mar  2 15:14 3511277.tar.gz
 -rw-rw-r-- 1 postgres postgres  63M Mar  2 15:14 3511278.tar.gz
 -rw-rw-r-- 1 postgres postgres 7,1K Mar  2 15:14 3511279.tar.gz
 -rw-rw-r-- 1 postgres postgres 1,8G Mar  2 15:23 base.tar.gz

 Agora a dúvida, como restauro estando desta forma?​



 base.tar.gz é o PGDATA, os demais são os oids dos tablespaces, para ver o
 local destes, extraia primeiro o base.tar.gz, em seguida veja os links
 simbólicos no diretório pg_tblspc (ls -l ou readlink), cada um deles vai
 ser um arquivo com o mesmo número dos .tar.gz's acima, basta extraí-los no
 mesmo local apontado pelo link simbólico, ou ainda você pode extrair onde
 desejar e apenas recriar o link simbólico.

 ​Show de bola...

E esse método pode também ser utilizado como PITR, certo?, bastando criar o
recovery.conf após as extração de todos os diretórios...

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


Re: [pgbr-geral] Transações por hora

2015-03-02 Por tôpico Danilo Silva
Em 2 de março de 2015 10:37, Matheus de Oliveira matioli.math...@gmail.com
escreveu:


 2015-03-02 10:32 GMT-03:00 Ariel Alves arielalves...@gmail.com:

 Senhores, tem como saber quantas transações por hora efetivamente estou
 fazendo no meu cluster?

 Essa informação vai servir para dimensionar hardware para futuras
 maquinas.


 Você pode a cada hora consultar a view pg_stat_database, a soma das
 colunas
 ​​
 xact_commit+xact_rollback vão te dar um valor aproximado de quantas
 transações foram realizadas, daí basta pegar a diferença a cada hora.

 Essas transações são independentes da quantidade de comandos? Por exemplo:
em uma única transação eu executo vários comandos, como inserts, updates,
deletes, etc, a ​

​coluna
​
xact_commit
​ irá considerar tudo como uma transação apenas?

É possível saber quantos arquivos WAL foram gerados para essas transações?

[]s
Danilo​
​
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


[pgbr-geral] Iniciar transação dentro de função

2015-02-06 Por tôpico Danilo Silva
Pessoal,

Tenho a seguinte função:
CREATE OR REPLACE FUNCTION f_baixa_manifesto() RETURNS text AS
$$
DECLARE
variaveis...
BEGIN
FOR ... LOOP
/* iniciar transação */
FOR ... LOOP
instruções de inserts e updates... */
END LOOP;
/* fim da transação, executando um commit ou rollback */
END LOOP;
RETURN ...;
END;
$$
LANGUAGE plpgsql;

Como posso inciar uma transação dentro de um loop? Sendo que ao final do
loop irei executar um commit ou rollback. Tentei utilizar um begin work
mas deu erro de sintaxe.

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


[pgbr-geral] Comando copy

2015-02-04 Por tôpico Danilo Silva
Pessoal,

Tenho 2 dúvidas referente ao comando copy:

1ª: O postgres está instalado no linux. Estando eu no pgadmin no windows,
eu executo o comando COPY tabela TO 'C:\tabela.sql', porém ocorre
erro: ERROR:  relative path not allowed for COPY to file. Como seria o
caminho do arquivo, uma vez que quero que o arquivo fique no windows?

2ª: A tabela possui uma coluna do tipo bytea, o comando copy possui alguma
restrição para colunas com esse tipo de dados?

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


Re: [pgbr-geral] Comando copy

2015-02-04 Por tôpico Danilo Silva

 O comando COPY busca/salva arquivos no servidor de banco de dados e não no
 cliente. Para enviar/receber dadas com o COPY que estejam no cliente você
 deve usar `COPY ... FROM stdin` ou `COPY ... TO stdout`.

 Não sei quanto ao pgAdmin, mas o psql oferece o comando \copy, que faz a
 leitura/escrita do arquivo e envia/recebe do servidor usando stdin/stdout.


​Beleza...​





 2ª: A tabela possui uma coluna do tipo bytea, o comando copy possui
 alguma restrição para colunas com esse tipo de dados?


 Não. Funciona normalmente.


​Então eu posso usar o copy normalmente, sem precisar adicionar nada em
específico por causa do bytea?

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


[pgbr-geral] Ajuda com select

2015-01-23 Por tôpico Danilo Silva
Pessoal,

Estou executando esse select:

SELECT
ped_data
, SUM(CASE WHEN ped_coddepto = 3 THEN 1 ELSE 0 END) AS fiscal
, SUM(CASE WHEN ped_coddepto = 5 THEN 1 ELSE 0 END) AS dsi
, SUM(CASE WHEN ped_coddepto = 7 THEN 1 ELSE 0 END) AS agendamento
, SUM(CASE WHEN ped_coddepto = 4 THEN 1 ELSE 0 END) AS logistica
, SUM(CASE WHEN ped_coddepto = 6 THEN 1 ELSE 0 END) AS transportadora
, COUNT(*) AS total
FROM pedido WHERE (ped_data  '2008-10-24')
GROUP BY ped_data
ORDER BY 1;

E obtenho esse resultado:

ped_data| fiscal | dsi | agendamento | logistica | transportadora |
total
-++-+-++--+---
 2008-10-20 |  1 |   0 |1 |   0 |
 0 | 2
 2008-10-21 |  1 |   0 |0 |   0 |
  0 | 1
 2008-10-22 |  2 |   0 |2 |   0
|0 | 4
 2008-10-23 |  0 |   1 |0 |   0
|0 | 1
(4 registros)

Onde cada coluna (com exceção de ped_data e total) representa um
departamento, ou seja, o resultado me mostra o total por data e
departamento.

O problema é que isso está totalmente manual, se for criado um novo
departamento terei que alterar a select para contemplar o novo
departamento,
existe a possibilidade de deixar algo mais natural, sem necessidade de
alterar o select a cada novo departamento criado?

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


Re: [pgbr-geral] Ordenando conforme itens na clausula in

2015-01-06 Por tôpico Danilo Silva
Em 6 de janeiro de 2015 22:19, Marcelo Florindo marceloflori...@gmail.com
escreveu:

 Boa noite colegas,

 Eu tenho este sql:

 ​​
 Select * from fabricante where id in (10,14,29,49,20)

 Preciso que o select venha na mesma ordem do in, alguma ideia?


 ​Crie uma função que faça a ordenação:

CREATE OR REPLACE FUNCTION fordenacao(vfield text,vin text) RETURNS text AS
$$
DECLARE
vorder integer DEFAULT 1;
vindice integer;
vcodigo integer[] DEFAULT string_to_array(vin,',')::integer[];
vordenacao text DEFAULT '';
BEGIN
FOR vindice IN array_lower(vcodigo,1)..array_upper(vcodigo,1) LOOP
vordenacao := vordenacao||' WHEN '||vcodigo[vindice]::text||' THEN
'||vorder::text;
vorder := vorder + 1;
END LOOP;
vordenacao := '(CASE '||vfield||' '||vordenacao||' END)';
RETURN vordenacao;
END;
$$
LANGUAGE plpgsql;

​
Select * from fabricante where id in (10,14,29,49,20) ORDER BY
fordenacao('id','10,14,29,49,20')
​

Não sei dizer se é a melhor solução...​mas vale a ajuda. Não esqueça de
analisar a performance...

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


[pgbr-geral] Window functions

2014-12-18 Por tôpico Danilo Silva
Pessoal, é possível utilizar window function para melhorar a select
abaixo:?

SELECT
(SELECT COUNT(*) FROM orcamento_venda WHERE (orv_codemp = 1) AND
(orv_codfilial = 1)) AS totorv
, (SELECT COUNT(*) FROM orcamento_venda WHERE (orv_codemp = 1) AND
(orv_codfilial = 1) AND (orv_codsituacao = 5)) AS total
, (SELECT string_agg(orv_codorcamento::text,',') FROM orcamento_venda WHERE
(orv_codemp = 1) AND (orv_codfilial = 1) AND (orv_codsituacao = 5)) AS
codigos
, (ROUNDSELECT COUNT(*) FROM orcamento_venda WHERE (orv_codemp = 1) AND
(orv_codfilial = 1) AND (orv_codsituacao = 5)) * 100)::numeric / (SELECT
COUNT(*) FROM orcamento_venda WHERE (orv_codemp = 1) AND (orv_codfilial =
1))::numeric),2)) AS percentual


[]s
Danilo
___
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   >