Ola Flavio. Obrigado por responder.

Na primeira vez que isso ocorreu, peguei o servidor, trouxe para a empresa onde 
realizamos varios testes, que realmente apontaram falhas na memória. 
Troquei então de servidor, e o erro ocorreu novamente. Pode ser uma daqueles em 
que damos muito azar mesmo, hehehehe. Vou testar a memória do outro servidor 
tbm.
Nos meus aureos tempos, e me desculpe a infame comparação, mas quando ainda 
usava dbf (foxpro, clipper), era comum um problemas de rede (cabeamento, 
switch, placa de rede) interferirem na gravação dos dados. Você acha que isso é 
possivel?

Julio


From: flavio 
Sent: Wednesday, February 23, 2011 12:05 PM
To: [email protected] ; [email protected] 
Subject: Re: [pgbr-geral] Erro em tabela/registro: "Invalid memory allocrequest 
size


Message: 2

Estou tendo problemas em um cliente (com uma base de dados muito pequena,  
aproximadamente 80MB).Nos ultimos 3 dias, esse erro ocorreu 2 vezes, fazendo 
que houvesse perda de alguns dados, por eu não ter conseguido recuperar a 
tabela/registro.Fiz algumas pesquisas, e pelo que entendi é um problema num 
registro especifico da tabela.O erro acontece ao tentar selecionar um 
determinado registro ou grupo de registros, e ocorre em diversas tabelas. O 
pg_dump também é interrompido quando chega a tabela.Gostaria de saber se alguem 
da lista ja passou por algo parecido, se existe alguma solução, e quais seriam 
as possiveis causas.Da última vez que isso me aconteceu foi causado por um 
pente de memória defeituoso. Dados em memória ficavam corrompidos antes de 
serem despejados para o disco. Não dá pra dizer cruamente se o erro foi parar 
no disco durante um checkpoint ou causado por buffers do sistema operacional.

Por isso é recomendado usar memória com correção de erro em servidores sérios 
de produção.

A única solução 100% válida é restaurar um backup que você tenha.

Caso você não tenha um backup restaurável, soluções paliativas incluem fazer um 
pg_dump sem a tabela corrompida (possível com pg_dump >= 8.4), restaurar em 
outro banco e depois fazer um pg_dump só da tabela corrompida. A parte dos 
dados da tabela que estão integros irão pro arquivo de dump mas tudo irá parar 
ao encontrar a página problemática. Daí em diante você perde os dados. O 
arquivo de dump precisará ser corrigido manualmente para ser restaurável.

Você pode também transferir dados do banco ruim para um bom usando uma 
ferramenta de migração, por exemplo o Kettle da suíte Pentaho faz isso muito 
bem.

[]s

Flavio Henrique A. Gurgeltel. 55-11-2125.4786cel. 
55-11-6429.0496www.4linux.com.brFREE SOFTWARE SOLUTIONS

--------------------------------------------------------------------------------


_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a