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

From: Gustavo Vaccaro <gustavo_vaccaro(at)fibertel(dot)com(dot)ar>
To: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Auditoria completa de una tabla (examinar el log de transacciones)
Date: 2015-08-17 20:22:09
Message-ID: 55D24271.6080508@fibertel.com.ar
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

<html>
<head>
<meta content="text/html; charset=windows-1252"
http-equiv="Content-Type">
</head>
<body bgcolor="#FFFFFF" text="#000000">
Alvaro,<br>
gracias por la explicacion.<br>
Voy a probar con audit_trigger que es lo que mas se aproxima a lo
que estoy buscando.<br>
Saludos<br>
<div class="moz-signature">
<meta content="text/html; charset=windows-1252"
http-equiv="content-type">
<title></title>
<meta content="Gustavo J. Vaccaro - www.gjv.com.ar" name="author">
<span style="font-weight: bold; font-family: Arial;"><br>
Gustavo J. Vaccaro</span><br>
<a style="font-style: italic;" href="http://www.gjv.com.ar">http://www.gjv.com.ar</a><br>
<br>
</div>
<div class="moz-cite-prefix">El 17/08/2015 a las 12:41 p.m., Alvaro
Herrera escribió:<br>
</div>
<blockquote cite="mid:20150817154155(dot)GV5232(at)alvherre(dot)pgsql"
type="cite">
<pre wrap="">Gustavo Vaccaro escribió:

</pre>
<blockquote type="cite">
<pre wrap=""> Alvaro,&lt;br&gt;
ok, pero si quisiera obtener las instrucciones de una fecha que
todavia no fue eliminada por la rotacion del WAL ¿podria hacerlo?&lt;br&gt;
</pre>
</blockquote>
<pre wrap="">
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.

<a class="moz-txt-link-freetext" href="https://www.flickr.com/photos/nauright/11341288174/">https://www.flickr.com/photos/nauright/11341288174/</a>

</pre>
<blockquote type="cite">
<pre wrap=""> Ejemplo: detecte un error en una funcion y quiero ver las
instrucciones que impactaron en un tabla ¿puedo verlas?&lt;br&gt;
Te estoy hablando, poder ver lo que paso en mi base de datos de
testing (no en produccion) en la ultima ejecucion.&lt;br&gt;
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.
</pre>
</blockquote>
<pre wrap="">
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.

&lt;/eot&gt;

</pre>
</blockquote>
<br>
</body>
</html>

Attachment Content-Type Size
unknown_filename text/html 2.9 KB

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Fernando Rodiño 2015-08-18 23:28:20 error de conexion
Previous Message Esneiker Enriquez Cabrera 2015-08-17 17:59:32 RE: historicos y particiones