Em 22 de agosto de 2011 21:01, Fábio Gibon - Comex System <
[email protected]> escreveu:

> Pessoal,
>          tenho uma tabela aqui que ao tentar fazer um select count(*), por
> exemplo, ocorre o erro abaixo... no backup com o pg_dump também ocorre o
> mesmo erro na cópia da tabela. Alguma dica ou só um restore para resolver?
>
>
Se vc tem backup é bom pensar em utilizá-lo...



>          Pensei em rodar um reindex, mas quando faço o select o banco não
> está usando índice e mesmo assim ocorre o erro, então achei inútil tentar
> isto...
>
> ERRO: could not read block 425902 of relation pg_tblspc/16396/24587/26175:
> Invalid argument
> SQL state: XX000
>
>
Já tive problemas semelhantes e o backup (pitr e coisas do genero) foram a
salvação, mas tb já passei pelo mesmo caso e o cliente *nao tinha* nenhuma
espécie de backup, então recuperei quase toda tabela (registro a registro)
utilizando a pesquisa pelo "ctid" [1]... tente fazer o seguinte:

select * from sua_tabela where ctid = '(425902, 1)';

É bem provável que dê erro, pois aparentemente vc está com problemas
físicos... porém vc pode descobrir o menor e maior "ctid" da sua relação
danificada e fazer um script que vai lendo registro a registro e salvando em
outro banco/tabela e/ou arquivo texto.

select min(ctid), max(ctid) from sua_tabela;

Caso nada disso adiante e vc não tenha backup e os dados sejam *muito*
importantes então sugiro contratar um DBA ou Consultoria especializada para
poder melhor ajudá-lo.


[1]
http://www.postgresql.org/docs/current/interactive/ddl-system-columns.html

-- 
Fabrízio de Royes Mello
Consultoria/Coaching PostgreSQL
>> Blog sobre TI: http://fabriziomello.blogspot.com
>> Perfil Linkedin: http://br.linkedin.com/in/fabriziomello
>> Twitter: http://twitter.com/fabriziomello
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a