Discussion:
pg_class corrupted ?
(too old to reply)
Bruno THOMAS
2004-06-17 12:05:53 UTC
Permalink
Hi all,


After a severe HD crash and the impossibility to read old DAT with our
new DAT drive, I've been able to copy $PGDATA/base/mabase on a new HD.
I've found all the tables data, and even the java intranet based on it
is working fine.

My problem is that when I tried to make a dump of the copied DB for a
new backup I've had the following error :
pg_dump: query to obtain list of tables failed: ERROR: Relation
pg_class does not have attribute 1

I can run psql but \dt causes this error :
ERROR: Relation pg_class does not have attribute 3

I can make a select * from pg_class but when I select a column from it
(i.e. 'select relname from pg_class'), I have the error again :
ERROR: Relation pg_class does not have attribute 1.

As I'm not a specialist, I can't find a solution or workaround for this
problem, I've not been able to find a solution on the net or forums.
Anybody has an idea ?

Thanks.

Bruno Thomas

PS: postresql version is 7.2.1


---------------------------(end of broadcast)---------------------------
TIP 1: subscribe and unsubscribe commands go to ***@postgresql.org
Tom Lane
2004-06-18 15:52:22 UTC
Permalink
Post by Bruno THOMAS
My problem is that when I tried to make a dump of the copied DB for a
pg_dump: query to obtain list of tables failed: ERROR: Relation
pg_class does not have attribute 1
Reindexing pg_class might help. Read the reindex man page carefully,
because reindexing system tables is a tricky procedure before 7.4.
Post by Bruno THOMAS
PS: postresql version is 7.2.1
You like to live dangerously, eh? There are several known serious
bugs in 7.2.1. If you want to stay on the 7.2 series you should
at least update to 7.2.4 (or whatever the last of that series was).

regards, tom lane

---------------------------(end of broadcast)---------------------------
TIP 9: the planner will ignore your desire to choose an index scan if your
joining column's datatypes do not match
Tom Lane
2004-06-18 18:26:10 UTC
Permalink
Post by Tom Lane
Post by Bruno THOMAS
My problem is that when I tried to make a dump of the copied DB for a
pg_dump: query to obtain list of tables failed: ERROR: Relation
pg_class does not have attribute 1
Reindexing pg_class might help.
On second thought, that symptom sounds more like a problem in the
pg_attribute indexes. Probably what you want to do is REINDEX DATABASE
to force recreation of all the system-table indexes ...

regards, tom lane

---------------------------(end of broadcast)---------------------------
TIP 9: the planner will ignore your desire to choose an index scan if your
joining column's datatypes do not match
Tom Lane
2004-06-22 17:44:01 UTC
Permalink
Thank you for your answers. I tried (after having shut down postmaster
NOTICE: table "pg_class" wasn't reindexed
ERROR: catalog is missing 3 attributes for relid 1261
This is the cause of all my troubles I think.
Did you run the standalone backend with the right options? (From
memory, -O -P, but check the manual.)

regards, tom lane

---------------------------(end of broadcast)---------------------------
TIP 8: explain analyze is your friend

Loading...