invalid page header - Mailing list pgsql-general

From Markus Schiltknecht
Subject invalid page header
Date
Msg-id 46B308CC.5090806@bluegap.ch
Whole thread Raw
Responses Re: invalid page header  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-general
Hi,

I'm in the unfortunate position of having "invalid page header(s) in
block 58591 of relation "pg_toast_302599". I'm well aware that the
hardware in question isn't the most reliable one. None the less, I'd
like to restore as much of the data as possible.

A pg_filedump analysis of the file in question spits out the following
information (relation pg_toast_302599 has oid 302602):

> # pg_filedump -R 58590 58592 base/296788/302602
>
> *******************************************************************
> * PostgreSQL File/Block Formatted Dump Utility - Version 8.1.1
> *
> * File: base/296788/302602
> * Options used: -R 58590 58592
> *
> * Dump created on: Fri Aug  3 10:34:23 2007
> *******************************************************************
>
> Block 58590 ********************************************************
> <Header> -----
>  Block Offset: 0x1c9bc000         Offsets: Lower      36 (0x0024)
>  Block: Size 8192  Version    3            Upper      48 (0x0030)
>  LSN:  logid      4 recoff 0x24b6ee88      Special  8192 (0x2000)
>  Items:    4                   Free Space:   12
>  Length (including item array): 40
>
> <Data> ------
>  Item   1 -- Length: 2034  Offset: 6156 (0x180c)  Flags: USED
>  Item   2 -- Length: 2034  Offset: 4120 (0x1018)  Flags: USED
>  Item   3 -- Length: 2034  Offset: 2084 (0x0824)  Flags: USED
>  Item   4 -- Length: 2034  Offset:   48 (0x0030)  Flags: USED
>
>
> Block 58591 ********************************************************
> <Header> -----
>  Block Offset: 0x1c9be000         Offsets: Lower    12858 (0x323a)
>  Block: Size 28160  Version   73            Upper    14900 (0x3a34)
>  LSN:  logid 627535472 recoff 0x3a693b22      Special  9506 (0x2522)
>  Items: 3209                   Free Space: 2042
>  Length (including item array): 8192
>
>  Error: Invalid header information.
>
>  Error: End of block encountered within the header. Bytes read: 8192.
>
>
> Block 58592 ********************************************************
> <Header> -----
>  Block Offset: 0x1c9c0000         Offsets: Lower      36 (0x0024)
>  Block: Size 8192  Version    3            Upper      48 (0x0030)
>  LSN:  logid      4 recoff 0x24b73110      Special  8192 (0x2000)
>  Items:    4                   Free Space:   12
>  Length (including item array): 40
>
> <Data> ------
>  Item   1 -- Length: 2034  Offset: 6156 (0x180c)  Flags: USED
>  Item   2 -- Length: 2034  Offset: 4120 (0x1018)  Flags: USED
>  Item   3 -- Length: 2034  Offset: 2084 (0x0824)  Flags: USED
>  Item   4 -- Length: 2034  Offset:   48 (0x0030)  Flags: USED
>
>
> *** End of Requested Range Encountered. Last Block Read: 58592 ***

It seems obvious, that the block in question is absolutely screwed, as
the block size as well as the version don't match.

What's the best cure? Can I just wipe out the block with something like:

# dd if=/dev/zero of=base/296788/302602 seek=58591 bs=8192 count=1



This is PostgreSQL 8.1.9 (from Debian 8.1.9-0etch1), but it has been
running earlier 8.1.x versions in the past.


Regards

Markus



pgsql-general by date:

Previous
From: "Chris Coleman"
Date:
Subject: Suse RPM's
Next
From: Jorge Godoy
Date:
Subject: Re: Suse RPM's