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

From: Alejandro Carrillo <fasterzip(at)yahoo(dot)es>
To: Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org>
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: [pgsql-es-ayuda] Re: [pgsql-es-ayuda] [pgsql-es-ayuda] Recuperar borrado físico de registro.
Date: 2012-05-29 19:59:41
Message-ID: 1338321581.50380.YahooMailNeo@web171003.mail.ukl.yahoo.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Hola

Ya coloque con un editor hexadecimal el valor de xmax en 0 (LO SÉ poque reemplacé el archivo y volvi a consultar select * from heap_page_items(get_raw_page('gps_datos',0))), sin embargo no me sale el dato eliminado. Creo que me falta el bit con xmax commited en el registro eliminado, pero no sé donde ponerlo en el archivo.

Por favor ayudame.

Gracias

>________________________________
> De: Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org>
>Para: 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>
>Enviado: Martes 29 de Mayo de 2012 14:28
>Asunto: Re: [pgsql-es-ayuda] Re: [pgsql-es-ayuda] [pgsql-es-ayuda] Recuperar borrado físico de registro.
>
>
>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 Alvaro Herrera 2012-05-29 20:10:08 Re: Re: [pgsql-es-ayuda] [pgsql-es-ayuda] Recuperar borrado físico de registro.
Previous Message Alvaro Herrera 2012-05-29 19:28:15 Re: Re: [pgsql-es-ayuda] [pgsql-es-ayuda] Recuperar borrado físico de registro.