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. Gurgel
tel. 55-11-2125.4786
cel. 55-11-6429.0496
www.4linux.com.br
FREE SOFTWARE SOLUTIONS




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

Responder a