Re: Error on Vacuum? - Mailing list pgsql-novice

From Tom Lane
Subject Re: Error on Vacuum?
Date
Msg-id 25548.1262808925@sss.pgh.pa.us
Whole thread Raw
In response to Error on Vacuum?  ("John J. Urbaniak" <jjurban@attglobal.net>)
Responses Re: Error on Vacuum?  ("John J. Urbaniak" <jjurban@attglobal.net>)
List pgsql-novice
"John J. Urbaniak" <jjurban@attglobal.net> writes:
> I try to vacuum and get this message:

> Vacuuming of database "oz" failed: ERROR: catalog is missing 3
> attributes for relid 45564.

> Can anybody tell me what this message means and what, if anything I can
> do to fix it?

It means that some of the pg_attribute rows for the table with oid 45564
seem to be missing.  (Try "select relname from pg_class where oid = 45564"
to find out which table that is.)

If you're really lucky, this is just index corruption and "reindex table
pg_attribute" will fix it.  I forget whether 8.0 requires you to do
anything special to reindex pg_attribute --- you might need to do it in
a standalone backend.  Read the REINDEX man page.

If that doesn't fix it, you're pretty much out of luck as far as
recovering that table goes, but you might be able to just drop it
and perhaps the rest of the database will be okay.  (Or perhaps not
... no way to tell from this whether the corruption in pg_attribute
hurt anything else.)  I don't think DROP TABLE will work, but you
could delete the pg_class row for it and then pg_dump should work.

I'd recommend dump, initdb, reload to make sure there's not any
hidden corruption lingering.  This would also be a great opportunity
to update to something less obsolete than PG 8.0.  We don't support
or recommend anything before 8.2 on Windows-ish systems, and even
then you want 8.2.something-pretty-recent.

            regards, tom lane

pgsql-novice by date:

Previous
From: "John J. Urbaniak"
Date:
Subject: Error on Vacuum?
Next
From: Lonni J Friedman
Date:
Subject: SQL for listing the tables in a specific database