Hi,
A customer of ours was unable to pg_upgrade a database, with this error:
old and new databases "postgres" have a mismatched number of relations Failure, exiting
After some research, it turned out that pg_largeobject had acquired a
toast table. After some more research, we determined that it was
because right after initdb of the old database (months or years prior)
they moved pg_largeobject to another, slower tablespace, because for
their case it is very bulky and not used as much as the other data.
(This requires restarting postmaster with the -O parameter).
While I understand that manual system catalog modifications are frowned
upon, it seems to me that we should handle this better. The failure is
very confusing and hard to diagnose, and hard to fix also.
--
Álvaro Herrera http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services