"Simpson" <asimpson@i-55.com> writes:
> mydb=# vacuum;
> ERROR: could not open relation 1663/12649295/16396: No such file or
> directory
> What would be the best way to fix this?
[ checks catalogs... ] In 8.0.*, 16396 is pg_am which is basically
constant, so you could replace that file by copying it out of another
database, eg
cp $PGDATA/base/1663/1/16396 $PGDATA/base/1663/12649295/16396
After that I would try a REINDEX DATABASE in a standalone backend,
to repair any damage to the system catalog indexes. Then start the
postmaster and see if you can pg_dump and reload the database.
VACUUM is *not* a good idea if you have any doubts about the consistency
of the database.
It's quite likely though that there is more damage and that this
procedure will not get you out of trouble :-(. You apparently have got
either a flaky disk drive or severe kernel bugs, because files don't
just disappear without cause. The kernel version you mentioned looks a
bit old, so updating to something more recent would be a good idea.
regards, tom lane