[pgbr-geral] Erro ao restaurar backup (pg_dump) realizado em um servidor replicado

2014-07-24 Por tôpico Eurides Baptistella
Preciso novamente da ajuda de vocês!



Possuo um ambiente com PostgreSQL 9.2 (PostgreSQL 9.2.3 on
x86_64-unknown-linux-gnu, compiled by gcc (SUSE Linux) 4.7.1 20120723
[gcc-4_7-branch revision 189773], 64-bit) e OpenSuse 12.2 com
replicação nativa configurada.



Fiz um backup da base no servidor SLAVE usando pg_dump (pg_dump
database -b -Fc -f backup.bak) e levei para outro servidor (de
homologação) com a mesma versão do PostgreSQL e SO.

Quando tento restaurar a base de dados (pg_restore -d database -Fc
backup.bak) no servidor de homologação tenho uma saída de erro:

“pg_restore: [custom archiver] unexpected end of file

 pg_restore: [archiver] worker process failed: exit code 1”

E a restauração não é concluída!



O log do PostgreSQL tem a seguinte informação:

2014-07-22 16:21:49 BRT ERROR:  unexpected message type 0x58 during
COPY from stdin

2014-07-22 16:21:49 BRT CONTEXT:  COPY tabela1, line 10692748:
44543606.0 249628.039792063.0  4   41  1
 0   1   0   0   \N  1   38.85   38.85   1

2014-07-22 16:21:49 BRT STATEMENT:  COPY tabela1 (cmp1, cmp2, cmp3,
cmp4, cmp5, cmp6, cmp7, cmp8, cmp9, cmp10, cmp11, cmp12, cmp13, cmp14,
cmp15, cmp16, cmp17, cmp18, cmp18, cmp19, cmp20, cmp21, cmp22, cmp23,
cmp24, cmp25, cmp26, cmp27, cmp28, cmp29, cmp30, cmp31, cmp32, cmp33,
cmp34, cmp35, cmp36) FROM stdin;



2014-07-22 16:21:50 BRT LOG:  could not send data to client: Pipe quebrado

2014-07-22 16:21:50 BRT STATEMENT:  COPY tabela1 (cmp1, cmp2, cmp3,
cmp4, cmp5, cmp6, cmp7, cmp8, cmp9, cmp10, cmp11, cmp12, cmp13, cmp14,
cmp15, cmp16, cmp17, cmp18, cmp18, cmp19, cmp20, cmp21, cmp22, cmp23,
cmp24, cmp25, cmp26, cmp27, cmp28, cmp29, cmp30, cmp31, cmp32, cmp33,
cmp34, cmp35, cmp36) FROM stdin;



Entretanto, se o backup é feito no servidor MASTER a restauração no
servidor de homologação é concluída com sucesso.



O pg_controldata tem as seguintes informações:

srv-master:~ # pg_controldata

pg_control version number:922

Catalog version number:   201204301

Database system identifier:   5866782369715847035

Database cluster state:   in production

pg_control last modified: Thu 24 Jul 2014 09:20:48 AM BRT

Latest checkpoint location:   F39/AA0D00C0

Prior checkpoint location:F39/9C5DA148

Latest checkpoint's REDO location:F39/A39C37F0

Latest checkpoint's TimeLineID:   1

Latest checkpoint's full_page_writes: on

Latest checkpoint's NextXID:  0/256831503

Latest checkpoint's NextOID:  7796298

Latest checkpoint's NextMultiXactId:  201472

Latest checkpoint's NextMultiOffset:  483528

Latest checkpoint's oldestXID:150001583

Latest checkpoint's oldestXID's DB:   12593

Latest checkpoint's oldestActiveXID:  256831500

Time of latest checkpoint:Thu 24 Jul 2014 09:18:43 AM BRT

Minimum recovery ending location: 0/0

Backup start location:0/0

Backup end location:  0/0

End-of-backup record required:no

Current wal_level setting:hot_standby

Current max_connections setting:  280

Current max_prepared_xacts setting:   10

Current max_locks_per_xact setting:   64

Maximum data alignment:   8

Database block size:  8192

Blocks per segment of large relation: 131072

WAL block size:   8192

Bytes per WAL segment:16777216

Maximum length of identifiers:64

Maximum columns in an index:  32

Maximum size of a TOAST chunk:1996

Date/time type storage:   64-bit integers

Float4 argument passing:  by value

Float8 argument passing:  by value



srv-slave:~ # pg_controldata

pg_control version number:922

Catalog version number:   201204301

Database system identifier:   5866782369715847035

Database cluster state:   in archive recovery

pg_control last modified: Thu 24 Jul 2014 09:17:34 AM BRT

Latest checkpoint location:   F39/9C5DA148

Prior checkpoint location:F39/982EC280

Latest checkpoint's REDO location:F39/997C2908

Latest checkpoint's TimeLineID:   1

Latest checkpoint's full_page_writes: on

Latest checkpoint's NextXID:  0/256831503

Latest checkpoint's NextOID:  7796298

Latest checkpoint's NextMultiXactId:  201470

Latest checkpoint's NextMultiOffset:  483524

Latest checkpoint's oldestXID:150001583

Latest checkpoint's oldestXID's DB:   12593

Latest checkpoint's oldestActiveXID:  256826091

Time of latest checkpoint:Thu 24 Jul 2014 09:13:43 AM BRT

Minimum recovery ending location: F39/B816D438

Backup start location:0/0

Backup end location:  0/0

End-of-backup record required:no

Current wal_level setting:hot_standby

Current max_connections setting:  280

Current max_prepared_xacts setting:  

Re: [pgbr-geral] Erro ao restaurar backup (pg_dump) realizado em um servidor replicado

2014-07-24 Por tôpico Flavio Henrique Araque Gurgel

Preciso novamente da ajuda de vocês!



Possuo um ambiente com PostgreSQL 9.2 (PostgreSQL 9.2.3 on
x86_64-unknown-linux-gnu, compiled by gcc (SUSE Linux) 4.7.1 20120723
[gcc-4_7-branch revision 189773], 64-bit) e OpenSuse 12.2 com
replicação nativa configurada.



Fiz um backup da base no servidor SLAVE usando pg_dump (pg_dump
database -b -Fc -f backup.bak) e levei para outro servidor (de
homologação) com a mesma versão do PostgreSQL e SO.

Quando tento restaurar a base de dados (pg_restore -d database -Fc
backup.bak) no servidor de homologação tenho uma saída de erro:

“pg_restore: [custom archiver] unexpected end of file

  pg_restore: [archiver] worker process failed: exit code 1”

E a restauração não é concluída!


Porque o arquivo está incompleto.


O log do PostgreSQL tem a seguinte informação:

2014-07-22 16:21:49 BRT ERROR:  unexpected message type 0x58 during
COPY from stdin

2014-07-22 16:21:49 BRT CONTEXT:  COPY tabela1, line 10692748:
44543606.0 249628.039792063.0  4   41  1
  0   1   0   0   \N  1   38.85   38.85   1

2014-07-22 16:21:49 BRT STATEMENT:  COPY tabela1 (cmp1, cmp2, cmp3,
cmp4, cmp5, cmp6, cmp7, cmp8, cmp9, cmp10, cmp11, cmp12, cmp13, cmp14,
cmp15, cmp16, cmp17, cmp18, cmp18, cmp19, cmp20, cmp21, cmp22, cmp23,
cmp24, cmp25, cmp26, cmp27, cmp28, cmp29, cmp30, cmp31, cmp32, cmp33,
cmp34, cmp35, cmp36) FROM stdin;



2014-07-22 16:21:50 BRT LOG:  could not send data to client: Pipe quebrado

2014-07-22 16:21:50 BRT STATEMENT:  COPY tabela1 (cmp1, cmp2, cmp3,
cmp4, cmp5, cmp6, cmp7, cmp8, cmp9, cmp10, cmp11, cmp12, cmp13, cmp14,
cmp15, cmp16, cmp17, cmp18, cmp18, cmp19, cmp20, cmp21, cmp22, cmp23,
cmp24, cmp25, cmp26, cmp27, cmp28, cmp29, cmp30, cmp31, cmp32, cmp33,
cmp34, cmp35, cmp36) FROM stdin;



Entretanto, se o backup é feito no servidor MASTER a restauração no
servidor de homologação é concluída com sucesso.


Seu servidor slave cortou o dump.
Isso acontece quando a configuração hot_standby_feedback está 
desligada e o servidor master está com muitas modificações, após uma 
passagem de vacuum as tuplas necessárias ao slave são limpas no master e 
replicadas, o slave cancela as consultas, inclusive o COPY do dump.
Ligar hot_standby_feedback deve resolver seu problema, ou faça sempre os 
dumps no master que não sofre disso.



Obviamente os servidores MASTER e SLAVE são idênticos, o servidor de
homologação é bem inferior aos outros (tanto em memória como
processamento).


Isso não é um problema no seu caso.

[]s
Flavio Gurgel
___
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 ao restaurar backup (pg_dump) realizado em um servidor replicado

2014-07-24 Por tôpico Matheus de Oliveira
2014-07-24 11:20 GMT-03:00 Flavio Henrique Araque Gurgel fha...@gmail.com:

 Seu servidor slave cortou o dump.
 Isso acontece quando a configuração hot_standby_feedback está desligada
 e o servidor master está com muitas modificações, após uma passagem de
 vacuum as tuplas necessárias ao slave são limpas no master e replicadas, o
 slave cancela as consultas, inclusive o COPY do dump.
 Ligar hot_standby_feedback deve resolver seu problema, ou faça sempre os
 dumps no master que não sofre disso.



Algo que muita gente não faz é verificar o código de retorno do pg_dump ao
executar um backup. Se o que o Gurgel comentou ocorreu (também creio que
seja isso), o pg_dump apresentou um erro que provavelmente o OP ignorou.

DICA: Gerem logs de seus scripts, verifiquem por códigos de retorno e se
for redirecionar as saídas para um arquivo, lembre-se que há a saída padrão
(stdout) e saída de erro (stderr). Por exemplo (no Linux ao menos) para
redirecionar a saída do dump você pode fazer:

$ pg_dump ... 2 erros.log

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


Re: [pgbr-geral] Erro ao restaurar backup (pg_dump) realizado em um servidor replicado

2014-07-24 Por tôpico Fabrízio de Royes Mello
On 24-07-2014 12:20, Matheus de Oliveira wrote:
 2014-07-24 11:20 GMT-03:00 Flavio Henrique Araque Gurgel fha...@gmail.com:
 
 Seu servidor slave cortou o dump.
 Isso acontece quando a configuração hot_standby_feedback está desligada
 e o servidor master está com muitas modificações, após uma passagem de
 vacuum as tuplas necessárias ao slave são limpas no master e replicadas, o
 slave cancela as consultas, inclusive o COPY do dump.
 Ligar hot_standby_feedback deve resolver seu problema, ou faça sempre os
 dumps no master que não sofre disso.

 
 
 Algo que muita gente não faz é verificar o código de retorno do pg_dump ao
 executar um backup. Se o que o Gurgel comentou ocorreu (também creio que
 seja isso), o pg_dump apresentou um erro que provavelmente o OP ignorou.
 
 DICA: Gerem logs de seus scripts, verifiquem por códigos de retorno e se
 for redirecionar as saídas para um arquivo, lembre-se que há a saída padrão
 (stdout) e saída de erro (stderr). Por exemplo (no Linux ao menos) para
 redirecionar a saída do dump você pode fazer:
 
 $ pg_dump ... 2 erros.log
 

+1

E só pra ficar registrado algumas referencias:

http://tldp.org/LDP/abs/html/exit-status.html
http://www.linuxcommand.org/wss0150.php
http://www.cyberciti.biz/faq/shell-how-to-determine-the-exit-status-of-linux-and-unix-command/

Att,

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


Re: [pgbr-geral] Erro ao restaurar backup (pg_dump) realizado em um servidor replicado

2014-07-24 Por tôpico Fabrízio de Royes Mello
On 24-07-2014 12:47, Fabrízio de Royes Mello wrote:
 On 24-07-2014 12:20, Matheus de Oliveira wrote:
 2014-07-24 11:20 GMT-03:00 Flavio Henrique Araque Gurgel fha...@gmail.com:

 Seu servidor slave cortou o dump.
 Isso acontece quando a configuração hot_standby_feedback está desligada
 e o servidor master está com muitas modificações, após uma passagem de
 vacuum as tuplas necessárias ao slave são limpas no master e replicadas, o
 slave cancela as consultas, inclusive o COPY do dump.
 Ligar hot_standby_feedback deve resolver seu problema, ou faça sempre os
 dumps no master que não sofre disso.



 Algo que muita gente não faz é verificar o código de retorno do pg_dump ao
 executar um backup. Se o que o Gurgel comentou ocorreu (também creio que
 seja isso), o pg_dump apresentou um erro que provavelmente o OP ignorou.

 DICA: Gerem logs de seus scripts, verifiquem por códigos de retorno e se
 for redirecionar as saídas para um arquivo, lembre-se que há a saída padrão
 (stdout) e saída de erro (stderr). Por exemplo (no Linux ao menos) para
 redirecionar a saída do dump você pode fazer:

 $ pg_dump ... 2 erros.log

 
 +1
 
 E só pra ficar registrado algumas referencias:
 
 http://tldp.org/LDP/abs/html/exit-status.html
 http://www.linuxcommand.org/wss0150.php
 http://www.cyberciti.biz/faq/shell-how-to-determine-the-exit-status-of-linux-and-unix-command/
 

Desculpem, mas não poderia deixar de passar também uma referencia
tupiniquim:

http://aurelio.net/shell/canivete/

Att,

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


[pgbr-geral] Funções para inclusão e alteração

2014-07-24 Por tôpico Matheus Saraiva
Estou fazendo funções armazenadas para inclusão, alteração, exclusão de 
dados nas tabelas.
Qual seria a melhor prática? Criar essas funções ou deixar a cargo da 
aplicação lidar com as queries?

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


Re: [pgbr-geral] Case com Zebedee

2014-07-24 Por tôpico Renato Ricci
Utilizo Zebedee a um bom tempo.. é muito bom! Ele cria um tunel entre o
server e o client e toda informação que trafega neste tunel é compactada,
deixando assim a comunicação entre cliente/servidor mais rápida.

A versão atual é de 2005 mesmo, mas está muito estável. Creio que por isso
não tenha atualizações recentes.

Obs.: Zebedee não funciona apenas com PostgreSQL. Ele funciona com qualquer
aplicativo que utilize portas TCP para se comunicar.

Att.,

Renato Ricci


Em 23 de julho de 2014 16:02, Alessandro Lima grandegoia...@gmail.com
escreveu:

 Jean, estive dando uma olhada no Zebedee, parece que a última atualização
 dele foi em 2005, é isto mesmo?

 Atenciosamente,

 Alessandro Lima

 email grandegoia...@gmail.com

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


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


Re: [pgbr-geral] Case com Zebedee

2014-07-24 Por tôpico Daniel Cordeiro


Em 24-07-2014 19:02, Renato Ricci escreveu:
Utilizo Zebedee a um bom tempo.. é muito bom! Ele cria um tunel entre 
o server e o client e toda informação que trafega neste tunel é 
compactada, deixando assim a comunicação entre cliente/servidor mais 
rápida.


Uma pergunta de leigo: qual a diferença, em termos de performance, entre 
uma ferramenta deste segmento e um túnel VPN sobre UDP compactado, como 
por exemplo, o OpenVPN?


Att,

--
+--+
| Daniel Cordeiro de Morais Neto
| Diretor de TI - Portal de Cotações e-Compras
| Sócio-diretor ADM Soluções em Informática LTDA
| daniel.cordeiro(at)cotacoesecompras.com.br
| dmoraisn(at)gmail.com
| www.cotacoesecompras.com.br
| Fone: (083)8724-4440
| Gentoo User
| http://twitter.com/dmoraisn
+--+

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


Re: [pgbr-geral] Case com Zebedee

2014-07-24 Por tôpico Fabrízio de Royes Mello
On 24-07-2014 20:25, Daniel Cordeiro wrote:
 
 Em 24-07-2014 19:02, Renato Ricci escreveu:
 Utilizo Zebedee a um bom tempo.. é muito bom! Ele cria um tunel entre
 o server e o client e toda informação que trafega neste tunel é
 compactada, deixando assim a comunicação entre cliente/servidor mais
 rápida.

 Uma pergunta de leigo: qual a diferença, em termos de performance, entre
 uma ferramenta deste segmento e um túnel VPN sobre UDP compactado, como
 por exemplo, o OpenVPN?
 

Eu estava escrevendo um email com a mesma dúvida.

Att,

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


Re: [pgbr-geral] Funções para inclusão e alteração

2014-07-24 Por tôpico Danilo Silva
Em 24 de julho de 2014 17:47, Matheus Saraiva matheus.sara...@gmail.com
escreveu:

 Estou fazendo funções armazenadas para inclusão, alteração, exclusão de
 dados nas tabelas.
 Qual seria a melhor prática? Criar essas funções ou deixar a cargo da
 aplicação lidar com as queries?

 ​Há alguns anos, isso seria motivo para muita discussão, não sei se hoje
continua assim, mas eu prefiro deixar as regras de negócios no banco de
dados​, porque assim, a regra será a mesma, independentemente de onde venha
o comando (aplicação ou pelo pgadmin). Essa forma também ajuda na questão
de não se preocupar com a linguagem de programação, pois a regra a mesma.

[]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] Case com Zebedee

2014-07-24 Por tôpico Itamar Reis Peixoto
2014-07-23 15:11 GMT-03:00 Jean - GeControl j...@gecontrolsistemas.com.br:

 Pessoal,

 apenas compartilhando com a lista: estou acessando o banco de dados
 Postgresql através da internet, através de um link dedicado de 2Mbps do
 lado host e client. Pra melhorar o desempenho, coloquei o Zebedee pra fazer
 o tunneling, com compactação de pacotes. Percebi que a melhor no Fetch das
 consultas ficou na casa dos 65%, em média. Visivelmente, no manuseio do
 sistema ERP, o ganho foi considerável.

 Espero que o case sirva pra outros usuários.

 *Jean Domingues*
 *Sócio-Proprietário*
 *Gecontrol Consultoria e Sistemas.*

 o postgres com ssl também faz compactação.

o stunnel também faz o mesmo serviço do zbd.







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


[pgbr-geral] banco e aplicação no mesmo servidor

2014-07-24 Por tôpico Alessandro Lima
Tenho vários clientes que possuem o postgres e a aplicação java web no
mesmo servidor,
acredito que tenho melhor desempenho por não gerar tráfego na rede e por
aproveitar ociosidade da cpu.

Mas gostaria da experiência de vocês se esta é uma boa prática, ou o banco
em um servidor independente teria melhor desempenho.



Atenciosamente,

Alessandro Lima

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


Re: [pgbr-geral] banco e aplicação no mesmo servidor

2014-07-24 Por tôpico Danilo Silva
Em 24 de julho de 2014 23:31, Alessandro Lima grandegoia...@gmail.com
escreveu:

 Tenho vários clientes que possuem o postgres e a aplicação java web no
 mesmo servidor,
 acredito que tenho melhor desempenho por não gerar tráfego na rede e por
 aproveitar ociosidade da cpu.

 Mas gostaria da experiência de vocês se esta é uma boa prática, ou o banco
 em um servidor independente teria melhor desempenho.


Uma coisa é você ter uma carreta (teu servidor) para carregar um saco de
cimento (tua aplicação + postgres), outra coisa é você ter um carrinho de
mão (novamente teu servidor) para carregar 50 sacos de cimento (novamente
tua aplicação + postgres).

Resumindo, cada caso é um caso, tudo depende. Depende de verba, etc... Já
vi casos de sucesso, onde aplicação (php) e postgres estavam no mesmo
servidor, e também já vi casos de insucesso, onde a solução foi separar
ambos.

Você tem que avaliar também o quanto sua aplicação e o postgres irão
consumir de recursos do servidor, se o consumo for baixo, não vejo
problemas em ter ambos no mesmo servidor.

Avalie também estratégias de backups e replicação.

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