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@postgresql.org)
Para cambiar tu suscripción:
http://www.postgresql.org/mailpref/pgsql-es-ayuda

Responder a