Tom Lane wrote:
Jacob Coby <jcoby@xxxxxxxxxxxxxxx> writes:
I then tried:
foo=# select * from pg_catalog.pg_statistic ;
ERROR: could not access status of transaction 3242180415
DETAIL: could not open file "pg_clog/0C13": No such file or directory
so it seems that pg_catalog.pg_statistic has somehow become corrupt on
template0?
Yeah, that's what it looks like. If you're interested in digging into
why, it'd be productive to run "pg_filedump -i -f" on the table
(see http://sources.redhat.com/rhdb/ for that utility).
I wasn't able to build that utility due to dependencies that I didn't
have the patience to chase down.
If you just want to get out of the problem, it's fortunately not hard
because pg_statistic is all derived data. Go into template0, TRUNCATE
pg_statistic, and then VACUUM ANALYZE to regenerate it and VACUUM FREEZE
to re-freeze template0. (You'll need to fool with
pg_database.datallowconn to let yourself into template0. Read the
manual's bit about template databases if you aren't sure what you're
doing here.)
That worked perfectly. Thanks.