Hola a todos,
tengo la necesidad de auditar las instrucciones que se ejecutan en una base de datos version 9.3.5 corriendo sobre Windows.
Para esto modifique postgresql.conf en la seccion ERROR REPORTING AND LOGGING y habilite estas lineas:
  debug_pretty_print = off
  log_checkpoints = off
  log_connections = on
  log_disconnections = on
  log_duration = off
  log_hostname = off
  log_error_verbosity = default        # terse, default, or verbose messages
  log_line_prefix = 'DBNAME:%d\t%c\t%l\t%t\t%h\t%u\t%x\t%e\t'
  log_statement = 'all'            # none, ddl, mod, all
Con esto lo que consigo es que todas las instrucciones (insert, update, delete, commit y rollback) que se ejecutan desde mi programa sean logueadas.
Pero si una tabla tiene un trigger que ejecuta un update, o un insert o tiene una llamada a una funcion que hace algo de esto, entonces NO loguea nada.
Con esto quiero decir que no tengo toda la profundidad de la instruccion. Loguea solamente la instruccion enviada por mi programa.
żexiste alguna forma de loguear todo lo que se ejecuta en la base de datos?
Vengo de sybase anywhere y en el LOG de transacciones estaban todos los comandos. Se podia reconstruir la base de datos con el log porque tenia todo.
En postgres existe, en la carpeta bin, el programa pg_xlogdump, pero no logro obtener nada a pesar que sigo los (pocos) ejemplos que hay al pie de la letra.
Supuestamente con este programa podria obtener todo lo que estoy buscando.
Espero haber sido claro en mi exposicion y que alguien me pueda ayudar.
Muchas gracias.

--

Gustavo J. Vaccaro

http://www.gjv.com.ar