Обсуждение: error opening pg_clog file
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
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