Re: Re: [pgsql-es-ayuda] [pgsql-es-ayuda] Recuperar borrado físico de registro.

From: Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org>
To: Alejandro Carrillo <fasterzip(at)yahoo(dot)es>
Cc: Ayuda <pgsql-es-ayuda(at)postgresql(dot)org>, Casanova Jaime <jaime(at)2ndquadrant(dot)com>, Quijada Edwin <listas_quijada(at)hotmail(dot)com>, Gonzalez Rodrigo <listas(at)estrads(dot)com(dot)ar>
Subject: Re: Re: [pgsql-es-ayuda] [pgsql-es-ayuda] Recuperar borrado físico de registro.
Date: 2012-05-29 19:28:15
Message-ID: 1338319315-sup-2592@alvh.no-ip.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda


Excerpts from Alejandro Carrillo's message of mar may 29 14:15:18 -0400 2012:
> Ok, entiendo. Ya llegue a ese archivo a través de la ruta pgsql\data\base\16641 y copie el archivo 58031. ¿Ahora como quito el hint bit
> de "xmax committed" y coloco el valor de "xmax" en 0, usando el editor hexadecimal (en donde coloco en el archivo esos cambios)?

Usa pg_filedump para averiguar el offset de cada tupla. Luego mira en
htup.h la definición de HeapTupleHeaderData para saber en qué posición
de la cabecera de tupla está cada elemento; tú buscas t_infomask y
t_xmax. Una forma simple puede ser ver el pg_filedump de cada tupla qué
valor tiene cada campo, y encontrar ese valor en el editor (ojo con
valores little endian: los bytes se ponen al revés). Tocas el archivo,
grabas, y luego un nuevo pg_filedump te dirá si has modificado la
posición correcta.

Otra opción que se me acaba de ocurrir es tener el servidor corriendo, y
usando GDB modificar los valores "en caliente" en el buffer que tiene la
página de datos correspondiente. Neceesitas saber suficiente de GDB
y tener familiaridad con el código de Postgres para saber qué tocar y
cómo .. pero al menos no tienes que estar moviendo bytes a mano. Como
nunca lo he hecho, no explicaré cómo se hace porque no lo sé.

--
Álvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org>

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Alejandro Carrillo 2012-05-29 19:59:41 Re: [pgsql-es-ayuda] Re: [pgsql-es-ayuda] [pgsql-es-ayuda] Recuperar borrado físico de registro.
Previous Message Alejandro Carrillo 2012-05-29 18:15:18 Re: [pgsql-es-ayuda] [pgsql-es-ayuda] Recuperar borrado físico de registro.