Re: version 9.3.5_ actualizar?

From: Alvaro Herrera <alvherre(at)2ndquadrant(dot)com>
To: Hellmuth Vargas <hivs77(at)gmail(dot)com>
Cc: Álvaro Hernández <aht(at)8kdata(dot)com>, Enrique Escobar <ethhsc(at)gmail(dot)com>, Lista Postgres ES <pgsql-es-ayuda(at)postgresql(dot)org>, Javier Lugo Porras <jlugop(at)hotmail(dot)com>
Subject: Re: version 9.3.5_ actualizar?
Date: 2015-06-01 20:31:29
Message-ID: 20150601203129.GB2988@postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Hellmuth Vargas escribió:
> Hola Alvaro de eso que me escribe (cito) :
>
> "Todos estos son síntomas clásicos de haber actualizado con el pg_upgrade
> de alguna versión entre 9.3.0 y 9.3.4 (inclusive), que dejan el
> datminmxid en 1 (un número que en realidad no es correcto)"
>
> Que debo hacer para subsanarlo? O que implicaciones tiene? Muchas
> gracias!!!

Para corregirlo hay que cambiar los valores de datminmxid en
pg_database. La idea es hacer que apunte al multixact más temprano que
tenga tu sistema; en tu caso será un multixact que esté en el segmento
0008. Tendría que ser algo como
0008 * 32 * 2048
pero me parece que ese valor exacto no sirve, porque es muy probable que
en realidad el multixact de esa ubicación esté apuntando a cero, y si
no me equivoco, eso no serviría. Creo que habría que mirar el archivo
0008 para saber cuál es el primer valor que no es cero (hexdump).

Hmm, quizás un punto de partida para encontrar un valor bueno sea mirar
los pg_class.relminmxid en cada base de datos. Si no has tenido
wraparound de multixact desde que hiciste el pg_upgrade, el mínimo entre
todos esos valores será el valor que necesitas poner en pg_database.

Luego de un tiempo, una combinación de vacuum y checkpoint hará que el
valor de datminmxid que hayas puesto se propague a
pg_control.oldestMultiXid, y una vez que eso haya pasado el WAL-replay
de los checkpoint ocurrirá correctamente sin errores.

La implicancia es que si no lo corriges, el valor quedará apuntando a un
archivo que no existe (pg_multixact/offset/0000) y ocurrirá un error
cuando el 9.4.2/9.3.7 trate de leerlo (esto es lo que te pasó el otro
día, si no entiendo mal).

Si tienes tiempo de experimentar, creo que podría ser buena idea que le
echaras una mirada a las cosas que he mencionado y nos cuentes, a ver si
surge algo útil ...

--
Álvaro Herrera http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

-
Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda(at)postgresql(dot)org)
Para cambiar tu suscripción:
http://www.postgresql.org/mailpref/pgsql-es-ayuda

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message jvenegasperu . 2015-06-01 20:35:54 Alguna sugerencia para mejorar el tiempo de respuesta de esta consulta
Previous Message Hellmuth Vargas 2015-06-01 19:58:35 Re: version 9.3.5_ actualizar?