Re: Problems with missing OIDs - Mailing list pgsql-admin

From Tom Lane
Subject Re: Problems with missing OIDs
Date
Msg-id 11596.1194109249@sss.pgh.pa.us
Whole thread Raw
In response to Problems with missing OIDs  (Alexander Lohse <al@humantouch.de>)
Responses Re: Problems with missing OIDs  (Alexander Lohse <al@humantouch.de>)
List pgsql-admin
Alexander Lohse <al@humantouch.de> writes:
> after a disk-crash some weeks ago and a successful recovery, I now
> find some strange issues in postgres.
> I am not sure they are related to the crash, but I figure chances
> are ...

That really shouldn't have happened in the first place.  Are you running
an up-to-date Postgres version?  Are you sure your disk drives don't lie
about write completion?

> One of them is: When trying to vacuum one database I get the following
> message:
> "ERROR:  could not open relation with OID 36893600"

> Now I searched and found a row in pg_index with
> indexrelid => 36893600
> Is it save to just drop this row? Or how do I find out which index is
> affected?

Well, if the pg_class row with that OID is gone, then there's no direct
way to know.  But you should be able to look at the row referenced by
indrelid, to find out which table it was an index *of*.  Hopefully you
know your schema well enough to figure out which of its indexes is
missing.

I would recommend a dump/initdb/reload cycle to try to detect and clean
up any other corruption.  Loss of just one pg_class row doesn't seem
like a very probable failure, so I'm afraid you may have more problems.

            regards, tom lane

pgsql-admin by date:

Previous
From: Jason Testart
Date:
Subject: RPATH issue with libpq on Solaris 8 (gcc)
Next
From: Tom Lane
Date:
Subject: Re: RPATH issue with libpq on Solaris 8 (gcc)