Hellmuth Vargas escribió:
> Hola Alvaro
> 
> Desarrolle este pequeño script para actualizar en cada base los valores de
> datminmxid,
> 
> select oid, datminmxid , datname from pg_database;
> 
> update pg_database as x
> set datminmxid=y.nuevo
> from (
> select relminmxid as nuevo from pg_class where (cast(cast(relminmxid AS
> text) AS bigint))<>0 and (cast(cast(relminmxid AS text) AS bigint))<>1
> order by (cast(cast(relminmxid AS text) AS bigint)) asc limit 1
> ) as y
> where x.datname='crm_seguro' and x.oid='16438'::oid;
> 
> Está bien?  Puedo dejar este valor así?

Ni idea.  ¿por qué no muestras un select oid, relminmxid from pg_class
where relminmxid <> '0', a ver si tiene sentido?  El problema es que si
has consumido una gran cantidad de multixacts, podrían haber valores que
estén pasados el punto medio de wraparound, o haber dado la vuelta
completa, y las comparaciones normales < y > podrían no tener sentido ...

> Lo estoy ejecutando y no genera error sin embargo lo estoy haciendo
> sobre las bases que se pueden recuperar fácil de un backup....

Me parece sensato!

> De antemano muchas gracias..  Me surge una duda adicional..  Que mas
> debería uno validar? ..  A qué me refiero: pues si no se hubiese
> presentando el problema seguramente se hubiese presentando después con
> peores consecuencias.. 

Bueno, a algunos ya se les presentaron con peores consecuencias.  En
realidad, el bug de ahora surgió a partir de la corrección de un bug más
serio que causaba pérdidas de datos en ciertos casos.  Para saber más
habría que darle una mirada al pg_controldata y el listado de archivos
en pg_multixact/offset, y ver si son consistentes.

> Donde se puede revisará o validar los valores correctos que debe tiene
> una base en sus diccionario de sistema. Existe algún script o
> herramienta que haga este diagnóstico?

No tenemos nada aún.

-- 
Á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@postgresql.org)
Para cambiar tu suscripción:
http://www.postgresql.org/mailpref/pgsql-es-ayuda

Responder a