Skip site navigation (1) Skip section navigation (2)

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 (view raw or flat)
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

pgsql-es-ayuda by date

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

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group