Re: Caso interesante: recuperar BD solo con el directorio data/base

From: Alvaro Herrera <alvherre(at)2ndquadrant(dot)com>
To: Carlos Martinez <camarti(at)gmail(dot)com>
Cc: pgsql-es-ayuda(at)lists(dot)postgresql(dot)org
Subject: Re: Caso interesante: recuperar BD solo con el directorio data/base
Date: 2019-10-25 20:51:50
Message-ID: 20191025205150.GA31049@alvherre.pgsql
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Carlos Martinez escribió:

> Me contactaron por el siguiente caso: manitas creativas borraron todo
> el contenido del directorio de postgresql (versión 9.4,
> /var/lib/pgsql/9.4/data/) excepto el directorio base.
>
> La pregunta es: ¿existe alguna posibilidad de recuperar las bases de
> datos solo con los archivos de este directorio?

No. pg_clog es información crítica; los datos no se pueden leer sin
eso.

Si el caso es de vida o muerte, puedes inventar un pg_clog ficticio que
indique algo como "todas las transacciones hicieron commit" y examinar a
mano los datos que salgan, porque seguro que habrá muchas
inconsistencias a corregir. Seguro que será necesario inventar más
cosas para que funcione (como pg_subtrans, pg_multixact). Pero si los
datos no son tan valiosos, es difícil creer que vale la pena este
ejercicio. Si no sabes cómo hacer esto, es un trabajo cuyo costo
mediría una consultora profesional en decenas de miles de USD.

> Como nota adicional existe un backup de hace "unas" semanas, por si se
> puede hacer algo con ello, aparte de restaurarlo y llorar por los
> datos perdidos.

:-(

Una cosa que podrías hacer con ese backup es estudiar la frecuencia de
rollbacks en pg_clog.

--
Álvaro Herrera https://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Horacio Miranda 2019-10-25 22:00:38 Re: unexpected chunk number
Previous Message Jose Mercedes Venegas Acevedo 2019-10-25 16:53:25 Re: Caso interesante: recuperar BD solo con el directorio data/base