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

Responder a