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,<br>
ok, pero si quisiera obtener las instrucciones de una fecha que
todavia no fue eliminada por la rotacion del WAL ¿podria hacerlo?<br>
</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?<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.
</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.
</eot>
</pre>
</blockquote>
<br>
</body>
</html>
Attachment | Content-Type | Size |
---|---|---|
unknown_filename | text/html | 2.9 KB |
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 |