Re: Registros desaparecidos de la BD

From: Gerardo Herzig <gherzig(at)fmed(dot)uba(dot)ar>
To: Daniel Carrero <dcarreroc(at)gmail(dot)com>
Cc: Fernando A <soporteallpurpose(at)gmail(dot)com>, Lista PostgreSQL <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: Registros desaparecidos de la BD
Date: 2017-10-03 15:18:42
Message-ID: 30890384.118498.1507043922774.JavaMail.zimbra@fmed.uba.ar
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

----- Mensaje original -----
> De: "Daniel Carrero" <dcarreroc(at)gmail(dot)com>
> Para: "Gerardo Herzig" <gherzig(at)fmed(dot)uba(dot)ar>
> CC: "Fernando A" <soporteallpurpose(at)gmail(dot)com>, "Lista PostgreSQL" <pgsql-es-ayuda(at)postgresql(dot)org>
> Enviados: Martes, 3 de Octubre 2017 11:38:33
> Asunto: Re: Registros desaparecidos de la BD
>
> El 3 de octubre de 2017, 10:48, Gerardo Herzig<gherzig(at)fmed(dot)uba(dot)ar>
> escribió:
>
> >
> > ----- Mensaje original -----
> > > De: "Fernando A" <soporteallpurpose(at)gmail(dot)com>
> > > Para: "Alvaro Herrera" <alvherre(at)alvh(dot)no-ip(dot)org>
> > > CC: "Lista PostgreSQL" <pgsql-es-ayuda(at)postgresql(dot)org>
> > > Enviados: Martes, 3 de Octubre 2017 10:29:58
> > > Asunto: Re: Registros desaparecidos de la BD
> > >
> > > Hola, aqui te adjunto una captura de la consulta que muestra los
> > > "registros" de la tabla en cuestión.
> > > El campo "id" es un campo serial, podes observar en las dos filas
> > > "pintadas" que salta el valor de id, que corresponde a los registros que
> > se
> > > perdieron.
> > >
> > > Si, empiezo a pensar que es algo como lo que tu comentas...........pero
> > > todavia estoy buscando el error!
> > > Gracias!
> > > Saludos
> > >
> > >
> > > El 3 de octubre de 2017, 09:45, Alvaro Herrera<alvherre(at)alvh(dot)no-ip(dot)org>
> > > escribió:
> > >
> > > > Fernando A escribió:
> > > > > Estimados,
> > > > > en tres ocasiones, me encuentro con que han desaparecido algunos
> > > > registros
> > > > > de distintas tablas de una BD,.
> > > >
> > > > Por favor explica a qué te refieres con que "han desaparecido algunos
> > > > registros". ¿cómo identificas que desaparecieron?
> > > >
> > > > Lo que suena posible es que una transacción quedó sin cerrar, y luego
> > se
> > > > cerró la conexión, dejando el mensaje del log que mostraste; todos los
> > > > cambios que se hicieron en esa transacción se pierden.
> > > >
> > > > --
> > > > Álvaro Herrera https://www.2ndQuadrant.com/
> > > > PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
> > > >
> > >
> >
> > Los campos seriales (implementados con una sequence) son propensos a tener
> > "baches".
> > Cuando se hace un nextval(), la secuencia *siempre* se incrementa,
> > independientemente de si la transacccion termina en COMMIT o ROLLBACK
> >
> > Entonces, ya no estariamos hablando de registros perdidos, solo de
> > transacciones fallidas. El log te sabra indicar cuales fallan y porque.
> >
> > Saludos,
> > Gerardo
> >
> >
> Puede ser que la aplicación este creando los id?
> Me explico, la aplicación genera el id cuando el usuario presiona "nuevo",
> si el usuario presiona el botón "guardar" lo que hace es una actualización
> del registro que antes había creado, en caso de que el usuario presione
> "cancelar" el id se pierde.
>
> Mala o buena practica... no lo sé :D
>

Si, es posible. En la practica los campos SERIAL se implementan asignandole un DEFAULT que sale de una llamada a netxval('nombre_sequence'). Podras verlo si haces un "describe" de la tabla (\d si usas psql)

> --
> Daniel Carrero Canales
> +56974726453
>

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Eduardo Morras 2017-10-03 17:22:44 Re: Registros desaparecidos de la BD
Previous Message Daniel Carrero 2017-10-03 14:38:33 Re: Registros desaparecidos de la BD