"Alexandru Coseru" <alex_spam@xxxxxxxxxxxxxxxxx> writes: > [root@gw gateway]# psql -U postgres -h 127.0.0.1 template1 > Welcome to psql 7.4.5, the PostgreSQL interactive terminal. > Type: \copyright for distribution terms > \h for help with SQL commands > \? for help on internal slash commands > \g or terminate with semicolon to execute query > \q to quit > template1=3D# \dt > ERROR: catalog is missing 8 attribute(s) for relid 16683 > template1=3D# VACUUM FULL; > ERROR: catalog is missing 3 attribute(s) for relid 16656 Something very bad has happened to pg_attribute. I don't think there's any useful way to recover that database; however, if it's only template1 that is corrupted, you could drop template1 and recreate it from template0 (see techdocs.postgresql.org for detailed instructions). The rest of your message suggests that the same corruption has occurred in both template1 and your "mydata" database. That's really odd. Maybe template1 was already broken when you cloned it to make mydata? But I think you'd have noticed before getting very far. It's barely possible that you could get to a state where pg_dump would succeed by dropping and recreating the pg_user view --- since it's only a view, there's no data to lose. I expect that DROP VIEW would not work but you could simply delete the pg_class row (DELETE FROM pg_class WHERE oid = 16683) and then make a new view using the same definition you see in the initdb script: CREATE VIEW pg_catalog.pg_user AS SELECT usename, usesysid, usecreatedb, usesuper, usecatupd, '********'::text as passwd, valuntil, useconfig FROM pg_shadow; regards, tom lane ---------------------------(end of broadcast)--------------------------- TIP 6: Have you searched our list archives? http://archives.postgresql.org