Archivo de Transacciones Log

20/01/2004 - 14:15 por Fernando | Informe spam
Saludos al grupo
De vez en cuando se "borran" registros de una base de
datos. Si no estoy confundido en el archivo de
transacciones se guarda todo lo que se ha hecho en la BD.
Puedo analizar de alguna forma este archivo ? Si es asi
como?
Saludos y Gracias

Preguntas similare

Leer las respuestas

#1 ulises
20/01/2004 - 15:24 | Informe spam
Tienes razón en que las actualizaciones a la base de datos se guardan
en el LOG (a menos que se indique que no lo guarde modificando
opciones de configuración), pero la comprensión de lo que guarda en el
LOG es bastante enredado y no está documentado, Si bien lo puedes leer
con :

SELECT * FROM ::fn_dblog(NULL,NULL)

la información para identificar que se modificó no se encuentra ahí,
en todo caso existe un producto comrecial que puede hacerlo SQL LOG
Explorer de Lumigent (http://www.lumigent.com), se que le ha aparecido
competencia pero el nombre se me escapa en estos momentos :( en todo
caso bajate el "trial" del producto de Lumigent y ve si te puede ser
de ayuda.

Saludos,
Ulises

On Tue, 20 Jan 2004 05:15:03 -0800, "Fernando"
wrote:

Saludos al grupo
De vez en cuando se "borran" registros de una base de
datos. Si no estoy confundido en el archivo de
transacciones se guarda todo lo que se ha hecho en la BD.
Puedo analizar de alguna forma este archivo ? Si es asi
como?
Saludos y Gracias
Respuesta Responder a este mensaje
#2 Sérgio Monteiro
21/01/2004 - 01:29 | Informe spam
Hola,

Sigue lo que he escrito sobre este tema en una thread en este mismo foro:

Es posible si tenes la base de datos en modo de recuperacion BulkCopy o
Full, saber la hora que se hizo la operacion y el UID de quien la hizo.
Tenes sólo que usar un par de comandos que solian no ser documentados, pero
que ya se recontraconoce.

dbcc traceon(3604)
dbcc log(nobredeldb, -1)

y buscar por el OPERATION= LOP_BEGIN_XACT, a que se siga una con
OPERATION=LOP_MARK_DDL y otra con LOP_MODIFY_ROW, y que la columna CONTEXT
sea LCX_SCHEMA_VERSION y el OBJECT NAME sea sysobjects.

Bueno, un poco más abajo vas a encontrar una OPERATION=LOP_INSERT_ROWS en el
OBJECT NAME syscolumns y INDEX NAME ncsyscolumns. La columna Row Data
contiene el nombre del campo insertado (o borrado), en formato Hexadecimal
NVARCHAR.

Si todo eso se dá, volve al registro de OPERATION=LOP_BEGIN_XACT, y busca la
columna UID. Alli tenes el User ID del usuário que inicio la transacción.

No es necesario el Lumigent o otro producto, aun que es mucho mas simples
usarlos.

Si necesitas mas informacion, podes preguntar.

Saludos,



Sérgio Monteiro - Brasil
www.sqlpass.org
"Fernando" escreveu na mensagem
news:106b01c3df57$6a303980$
Saludos al grupo
De vez en cuando se "borran" registros de una base de
datos. Si no estoy confundido en el archivo de
transacciones se guarda todo lo que se ha hecho en la BD.
Puedo analizar de alguna forma este archivo ? Si es asi
como?
Saludos y Gracias
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida