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.