From: | Alvaro Herrera <alvherre(at)2ndquadrant(dot)com> |
---|---|
To: | jim_yates <pg(at)wg5jim(dot)net> |
Cc: | pgsql-sql(at)postgresql(dot)org |
Subject: | Re: could not access status of transaction pg_multixact issue |
Date: | 2014-10-09 18:00:25 |
Message-ID: | 20141009180022.GE7043@eldon.alvh.no-ip.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-sql |
jim_yates wrote:
> Alvaro Herrera-9 wrote
> >
> > There must have been some confusion somewhere; certainly you shouldn't
> > be subtracting anything. The subtraction was just suggested as a way to
> > determine the age. The value to update pg_database.datminmxid to is the
> > oldest one of all the relminmxid in pg_class; so if you have 8376 as the
> > minimum value there, that's what you set pg_database.datminmxid to. Not
> > the 21973 value.
> >
> > update pg_database set datminmxid='8376' where datname='production-copy';
>
> Ok, I'm still confused. Is the value to use the Max value of relminmxid
> from pg_class or the value of NextMultiXactId from pg_controldump? Or are
> these the same thing?
You need to *minimum* of all the values in relminmxid (excluding those
that are zero).
The pg_controldata value is a mechanism to determine which value is
minimum -- when there's been wraparound, the minimum might be "smaller
than zero", i.e. something like 4 thousand millions. I doubt this is
your case though.
--
Álvaro Herrera http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Training & Services
From | Date | Subject | |
---|---|---|---|
Next Message | jim_yates | 2014-10-09 20:17:06 | Re: could not access status of transaction pg_multixact issue |
Previous Message | jim_yates | 2014-10-09 17:02:40 | Re: could not access status of transaction pg_multixact issue |