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>
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. |