Re: localizar sentencia en archivos wal

From: Alvaro Herrera <alvherre(at)2ndquadrant(dot)com>
To: kernel <jucabapa(at)gmail(dot)com>
Cc: Ayuda <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: localizar sentencia en archivos wal
Date: 2020-06-05 16:41:57
Message-ID: 20200605164157.GA2570@alvherre.pgsql
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

kernel escribió:
> Hola,
>
> Me me han desaparecido los datos de una tabla, por suerte teníamos copia de
> seguridad y ya lo hemos restaurado.
>
> La cuestión es que no sabemos por que ha podido suceder , no sabemos si ha
> podido ser el ERP o algún usuario de administración del al db lo haya
> borrado  por error
>
> Disponemos de una copia base y de todos los archivos wal, ¿hay alguna manera
> de poder buscar las sentencias en estos archivos wal para poder tirar del
> hilo?

Sí, se puede seguir el hilo, pero como dijo Martín es a nivel físico. Lo
primero es obtener el relfilenode de la tabla (de pg_class) y el ctid de
la tupla que quieres investigar. Luego usa pg_waldump (o pg_xlogdump en
versiones anteriores) para encontrar qué le hizo update o delete a esa
tupla en ese relfilenode. Eso te dará un XID (identificador de
transacción). Puedes ver qué más hizo esa transacción usando pg_waldump
-x. Si tu log_line_prefix tiene %x entonces podrás ver lo que dejó en
el log esa transacción (por ej. cuándo se conectó, desde qué IP, etc).

--
Á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 Fontana Daniel C (Desartec S.R.L.) 2020-06-08 12:32:30 Empezando con Slony
Previous Message kernel kernel 2020-06-05 14:47:07 Re: localizar sentencia en archivos wal