Robert Haas wrote:
> On Mon, May 2, 2016 at 12:30 PM, Alvaro Herrera
> <alvherre@2ndquadrant.com> wrote:
> > 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).
> I think that if you use -O, and it breaks something, you get to keep
> both pieces. pg_largeobject is a big problem, and we should replace
> it with something better. And maybe in the meantime we should support
> moving it to a different tablespace. But if it's not officially
> supported and you do it anyway, I don't think it's pg_upgrade's job to
> cope.
I'm happy with the solution that pg_upgrade has a step in the check
stage that says "catalog XYZ has a toast table but shouldn't, aborting
the upgrade". (Well, not _happy_, but at least it's a lot easier to
diagnose).
--
Álvaro Herrera http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services