Re: Corrupt DB - Mailing list pgsql-admin

From Tom Lane
Subject Re: Corrupt DB
Date
Msg-id 22439.1113841097@sss.pgh.pa.us
Whole thread Raw
In response to Corrupt DB  ("Simpson" <asimpson@i-55.com>)
Responses pg_enconding  (Dextra - Gustavo Bartz Guedes <gustavo-bartz@dextra.com.br>)
List pgsql-admin
"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

pgsql-admin by date:

Previous
From: Bruno Wolff III
Date:
Subject: Re: Pg7.1 to Pg7.2 Upgrade
Next
From: Dextra - Gustavo Bartz Guedes
Date:
Subject: pg_enconding