[Pgsql-ayuda] Log de transacciones

Jose Joaquin Lorente Garcia jlorente@unesco.upv.es
Thu, 8 Jan 2004 10:04:31 +0100


Hola a todos,
=BFExiste la posibilidad de conocer el 'timestamp' de una transacci=F3n =
en postgresql?
Bueno, les explico. Deseamos llevar un log de las transacciones mediante =
programaci=F3n para realizar posibles auditor=EDas y dise=F1ar un =
sistema de recuperaci=F3n o backup  incremental o m=E1s eficiente que un =
dump completo.=20
De esta manera, registramos cada sentencia SQL de una transacci=F3n en =
una tabla pero para garantizar la seriabilidad, es decir, que la =
reproducci=F3n de esas sentencias tal y como se han producido en tiempo =
real, necesitamos el 'instante' o 'timestamp' de inicio de cada =
transacci=F3n.
Un ejemplo: imaginemos dos procesos o programas P1 y P2, donde P1 =
ejecuta la transacci=F3n
BEGIN T1
SQL T1.1
SQL T1.2=20
..
END T1
y donde P2 ejecuta la transacci=F3n
BEGIN T2
SQL T2.1
SQL T2.2
...
END T2
y suponemos que las transacciones se completan satisfactoriamente. =
Entonces, en el registro de transacciones se almacenar=EDan las =
siguientes tuplas
TRANSACCION, TIMESTAMP U ORDEN TRANSACCION, SETENCIA, ORDEN_SETENCIA
t1, ?, SQL T1.1, 1
t1, ?, SQL T1.2, 2
...
t2, ?, SQL T2.1, 1
t2, ?, SQL T2.2, 2
...
Si a partir de esta tabla deseamos realizar una reproducci=F3n de las =
transacciones tal y como se ejecutaron en el sistema real, deber=EDamos =
conocer el 'instante' o 'timestamp' de cada una de ellas. De lo =
contrario, c=F3mo podr=EDamos garantizar la integridad o seriabilidad de =
las operaciones.

Bueno, perdonen por tanta explicaci=F3n, pero creo que es un problema =
interesante para todos.

Saludos,=20


JJ Lorente