Re: missing pg_clog files ?

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Patrick Welche <prlw1(at)newn(dot)cam(dot)ac(dot)uk>
Cc: pgsql-hackers(at)postgresql(dot)org
Subject: Re: missing pg_clog files ?
Date: 2003-09-22 14:50:22
Message-ID: 28276.1064242222@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Patrick Welche <prlw1(at)newn(dot)cam(dot)ac(dot)uk> writes:
> select * from olddata02_03vac offset 2573719 limit 1;
> ERROR: could not access status of transaction 1664158221
> DETAIL: open of file "/usr/local/pgsql/data/pg_clog/0633" failed: No such file or directory

> # ls -l pg_clog
> total 32
> -rw------- 1 postgres postgres 16384 Sep 22 13:12 0000

What you have here is a corrupted tuple (viz, a silly transaction number).

It would be useful to look at the page containing the tuple to see if
any pattern can be detected in the corruption. To do this, get the
ctid of the prior tuple:
select ctid from olddata02_03vac offset 2573718 limit 1;
This will give you a result "(blocknumber,tuplenumber)". The bogus
tuple is probably on the same page, though possibly further along.
Next find a dump tool --- I usually use Red Hat's pg_filedump:
http://sources.redhat.com/rhdb/tools.html
Dump out the page(s) in question and send them along.

regards, tom lane

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Patrick Welche 2003-09-22 15:23:22 Re: missing pg_clog files ?
Previous Message Patrick Welche 2003-09-22 13:02:06 missing pg_clog files ?