Re: invalid page header

Lists: pgsql-admin
From: Hornyak Laszlo <kocka(at)tigrasoft(dot)hu>
To: pgsql-admin(at)postgresql(dot)org
Subject: invalid page header
Date: 2003-09-25 19:01:26
Message-ID: Pine.LNX.4.21.0309252056430.5789-100000@tiger.tigrasoft.hu
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-admin

Hi folks!

I have a problem again, now with PostgreSQL 7.3.4. One of my 1.8 million
rows tables have damaged, it operated all the day and now it is off, we
don`t know the reason. When we try to dump or select from it, it says
'Invalid page header in block 12345 in prep'.

Does anybody know how to make our table healthy again?
I have read oin the manual about pg_resetxlog, it says it may fix the
problem, but I should use it only as last solution. What is the risk of
using it? May it damage other tables?

Thanks in advance,
Laszlo Hornyak


From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Hornyak Laszlo <kocka(at)tigrasoft(dot)hu>
Cc: pgsql-admin(at)postgresql(dot)org
Subject: Re: invalid page header
Date: 2003-09-26 00:27:55
Message-ID: 5816.1064536075@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-admin

Hornyak Laszlo <kocka(at)tigrasoft(dot)hu> writes:
> I have a problem again, now with PostgreSQL 7.3.4. One of my 1.8 million
> rows tables have damaged, it operated all the day and now it is off, we
> don`t know the reason. When we try to dump or select from it, it says
> 'Invalid page header in block 12345 in prep'.

> Does anybody know how to make our table healthy again?

You could zero out that page (while the postmaster is stopped,
preferably) but you ought to first try to figure out what data you are
going to lose. Dumping the page with pg_filedump might provide some
clues. See this thread for a recent exercise in file-dumping:

http://groups.google.com/groups?hl=en&lr=&ie=UTF-8&threadm=20030922162322.E12708%40quartz.newn.cam.ac.uk&rnum=8&prev=/groups%3Fq%3Dpg_filedump%26hl%3Den%26lr%3D%26ie%3DUTF-8%26selm%3D20030922162322.E12708%2540quartz.newn.cam.ac.uk%26rnum%3D8

Or you could just use dd; since the page header is corrupt, it's
unlikely that pg_filedump will be able to give you anything smarter
than a bare hex/ascii dump (-d mode), which dd and od could do as well.

regards, tom lane