Michael Glenn <mike@mglenn.com> writes:
> I receive the following error when trying to connect to ALL postgres
> databases on my system.
> Database 'xxxx', OID yyyyy, has disappeared from pg_database
Hmm. The only thing I can think of that might cause that for all DBs
at once is transaction ID wraparound. How large is your pg_log file
($PGDATA/pg_log, in 7.0)? If it's 1GB then that's what happened to you.
> The various archives have other users that had this problem and the
> solution is to vacuum the pg_database, however;
> bash$ vacuumdb pg_database
> psql: FATAL 1: Database "pg_database" does not exist in the system catalog.
There are problems that can cause this error message for individual
databases, and the solution is to connect to another database and vacuum
the pg_database table (not the pg_database database; there isn't one).
But that won't help if you can't get into anything to begin with.
> PostgreSQL 7.0.0 - yeah, I know I should have upgraded. SOL?
Could be :-(. If your pg_log is not 1GB in size then you didn't have a
wraparound and maybe we can still help you. Otherwise, I hope you made
a backup recently.
regards, tom lane