BITACORAS DE BASES DE DATOS

BITACORAS DE BASES DE DATOS

La estructura más ampliamente usada para grabar las modificaciones de la base de datos es la Bitácora.

Cada registro de la bitácora escribe una única escritura de base de datos y tiene lo siguiente :

  1. Nombre de la transacción : Nombre de la transacción que realizó la operación de escritura.
  2. Nombre del dato : El nombre único del dato escrito.
  3. Valor antiguo : El valor del dato antes de la escritura.
  4. Valor nuevo : El valor que tendrá el dato después de  la escritura.

Existen otros registros de bitácora especiales para grabar sucesos importantes durante el proceso de transacción tales como :

< T1, inicio >
< T1, x, v1, v2 >
< T1, commit >

Es fundamental que siempre se cree un registro en la bitácora cuando se realice una escritura antes de que se modifique la base de datos.
También tenemos la posibilidad de deshacer una modificación que ya se ha escrito en la base de datos, esto se realizará usando el campo del valor antiguo de los registros de la bitácora.
Los registros de la bitácora deben residir en memoria estable como resultado el volumen de datos en la bitácora puede ser exageradamente grande.

EJEMPLO E IMPLEMENTACION DE BITACORA DE BASE DE DATOS EN LENGUAJE DE PROGRAMACION EN SQL SERVER

Bitácora de instrucciones por Javier Loria (MVP)  Revisión de Carlos Sacristán.
***************
CREATE TABLE [dbo].[Bitacora] (
[BitacoraID] [int] IDENTITY (1, 1) NOT NULL ,
[EventType] [char] (14) NOT NULL ,
[Status] [int] NOT NULL ,
[EventInfo] [varchar] (1000) NOT NULL ,
[Usuario] [varchar] (20) NOT NULL ,
[Fecha] [smalldatetime] NOT NULL
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[Bitacora] WITH NOCHECK ADD
CONSTRAINT [DF_Bitacora_Usuario] DEFAULT (suser_sname()) FOR [Usuario],
CONSTRAINT [DF_Bitacora_Fecha] DEFAULT (getdate()) FOR [Fecha]
******************
Y, por otro lado, el trigger en la tabla lo refiniría de la siguiente
manera:
******************
/* Trigger de Monitoreo */
CREATE TRIGGER trig_tablabitacora
ON TABLA
FOR DELETE, INSERT, UPDATE
AS
BEGIN
DECLARE @NUMERO INT
INSERT INTO Bitacora (EventType,Status,EventInfo)
exec sp_executesql N’DBCC INPUTBUFFER( @i )’, N’@i int’,
@i=@@spid
END 

 

About these ads

Una respuesta to “BITACORAS DE BASES DE DATOS”

  1. INDICE « Ely Says:

    [...] 19.-BITACORA DE BASES DE DATOS [...]


Deja un comentario

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

Seguir

Recibe cada nueva publicación en tu buzón de correo electrónico.

%d personas les gusta esto: