You may use this:
SET zero_damaged_pages = on;
VACUUM FULL corrupted_table;

Unfortunately zeroing pages will result in losing data written in them(will
be rewritten with zeros).
09-10-2011 19:49 użytkownik "Jesper Krogh" <jes...@krogh.cc> napisał:

> On 2011-10-09 17:41, Tom Lane wrote:
>
>> Jesper Krogh<jes...@krogh.cc>  writes:
>>
>>> I have got a corrupt db.. most likely due to an xfs bug..
>>> pg_dump: SQL command failed
>>> pg_dump: Error message from server: ERROR:  invalid page header in block
>>> 14174944 of relation base/16385/58318948
>>> Can I somehow get pg_dump to "ignore" that block and dump everything
>>> else?
>>>
>> The traditional solution is to zero out the bad block, eg using dd from
>> /dev/zero.  It's easy to zero more than you intended, so practicing on a
>> scratch copy of the table is recommended.
>>
>> But first you should check what kind of relation that is.  If it's an
>> index, you could just REINDEX it instead.
>>
>
> So it is "just" blocknumber * blocksize .. offset, blocksize of zeroes.. ?
> Or is the math harder?
>
> --
> Jesper
>
> --
> Sent via pgsql-admin mailing list (pgsql-admin@postgresql.org)
> To make changes to your subscription:
> http://www.postgresql.org/**mailpref/pgsql-admin<http://www.postgresql.org/mailpref/pgsql-admin>
>

Reply via email to