error opening pg_clog file

Started by Steve Wolfeover 21 years ago2 messagesgeneral
Jump to latest
#1Steve Wolfe
nw@codon.com

On Saturday, our database machine locked up hard on us due to some
faulty hardware. Since then, we have been getting messages like this:

ERROR: could not access status of transaction 143934068
DETAIL: could not open file "/usr/local/pgsql/data/pg_clog/0089": No
such file or directory

Looking in /usr/local/pgsql/data/pg_clog, the "0089" file isn't
there. Some investigation revealed these messages:

http://archives.postgresql.org/pgsql-hackers/2004-01/msg00534.php
http://www.mail-archive.com/pgsql-admin@postgresql.org/msg13874.html

So, I did "dd if=/dev/zero of=/usr/local/pgsql/data/pg_clog/0089
bs=8k count=1". I did an ls to verify that the file existed. I started
the postmaster back up, tried a VACUUM, and got:

vacuumdb: vacuuming of database "hyperseek" failed: ERROR: could not
access status of transaction 144565028
DETAIL: could not open file "/usr/local/pgsql/data/pg_clog/0089": No
such file or directory

I looked, and the "0089" file was gone again. Is there anything I
can do to save the situation? (The PG version is 7.4.2)

steve wolfe

#2Tom Lane
tgl@sss.pgh.pa.us
In reply to: Steve Wolfe (#1)
Re: error opening pg_clog file

Steve Wolfe <nw@codon.com> writes:

So, I did "dd if=/dev/zero of=/usr/local/pgsql/data/pg_clog/0089
bs=8k count=1". I did an ls to verify that the file existed. I started
the postmaster back up, tried a VACUUM, and got:

vacuumdb: vacuuming of database "hyperseek" failed: ERROR: could not
access status of transaction 144565028
DETAIL: could not open file "/usr/local/pgsql/data/pg_clog/0089": No
such file or directory

I looked, and the "0089" file was gone again. Is there anything I
can do to save the situation? (The PG version is 7.4.2)

Try vacuuming the damaged database *first*. vacuumdb is probably
starting off with something that hasn't got a problem. CLOG will only
get truncated at the end of a successful database-wide vacuum ... but
in this case that's too soon.

regards, tom lane