Re: Auditoria completa de una tabla (examinar el log de transacciones)

From: Alvaro Herrera <alvherre(at)2ndquadrant(dot)com>
To: Gustavo Vaccaro <gustavo_vaccaro(at)fibertel(dot)com(dot)ar>
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Auditoria completa de una tabla (examinar el log de transacciones)
Date: 2015-08-17 15:41:55
Message-ID: 20150817154155.GV5232@alvherre.pgsql
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Gustavo Vaccaro escribió:

> Alvaro,<br>
> ok, pero si quisiera obtener las instrucciones de una fecha que
> todavia no fue eliminada por la rotacion del WAL ¿podria hacerlo?<br>

El WAL registra cambios a nivel físico. Si quieres, puedes intentar
descomponer los bytes que fueron registrados en el WAL para que sean una
tupla de algún catálogo de sistema que te interese (e.g. pg_class),
saber que es un UPDATE o un INSERT o un DELETE, luego identificar la
tupla original (en caso de UPDATE), luego tratar de "decodificar" qué
tipo de sentencia DDL representa ese cambio. Honestamente, este trabajo
es tan complicado, tedioso y propenso a errores que yo ni siquiera lo
intentaría (sin mencionar que habría que hacer un esfuerzo adicional en
cada migración de versión). Ah, y no sé qué harás cuando te encuentres
con 9.5 y su molesta (je) habilidad de comprimir los registros WAL
eliminando secuencias de bytes de la tupla modificada que aparecían en
la tupla original.

https://www.flickr.com/photos/nauright/11341288174/

> Ejemplo: detecte un error en una funcion y quiero ver las
> instrucciones que impactaron en un tabla ¿puedo verlas?<br>
> Te estoy hablando, poder ver lo que paso en mi base de datos de
> testing (no en produccion) en la ultima ejecucion.<br>
> Tengo el probelma que todas las instrucciones que genero desde mi
> aplicacion quedan grabadas en pg_log, pero no quedan las generadas
> por el trigger o funcion.

Además de lo que ya mencioné antes, que no volveré a mencionar, y que
resuelve tus requerimientos sin necesidad de decodificar WAL, también te
puede servir audit_trigger.

</eot>

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

-
Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda(at)postgresql(dot)org)
Para cambiar tu suscripción:
http://www.postgresql.org/mailpref/pgsql-es-ayuda

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Esneiker Enriquez Cabrera 2015-08-17 17:34:06 RE: ayuda
Previous Message Martín Marqués 2015-08-17 15:01:57 Re: Tipo de dato blob en pgadmin