"John J. Urbaniak" <jjurban(at)attglobal(dot)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
In response to
pgsql-novice by date
|Next:||From: Lonni J Friedman||Date: 2010-01-06 22:46:19|
|Subject: SQL for listing the tables in a specific database|
|Previous:||From: John J. Urbaniak||Date: 2010-01-06 19:14:16|
|Subject: Error on Vacuum?|