viernes, 8 de enero de 2010

Respaldos en MS SQL Server. Parte 3.

Ahora viene lo interesante y la diferencia marcada y el porqué  de la importancia de los modelos de recuperación:
En el modelo simple, los datos se restauran al punto (momento) en que se realizó el último respaldo. Punto, no hay vuelta de hoja.

Ejemplo: Programas un respaldo todos los días a las 2:00 a.m.
Si ocurre un error a las 10:30 a.m., solo puedes restaurar la información hasta las 2 a.m. Si hay pérdida de datos, lo siento mucho, pero no es posible recuperar la información con una restauración, y es hora de echar mano de herramientas especiales para leer el registro y buscar manualmente las sentencias que afectaron la base de datos.

Otra herramienta son las auditorias a las acciones de los catálogos, es decir, emular un registro de transacciones guardando las sentencias sql insert, update y delete que se ejecutan contra la bae de datos, y poder generar un “undo” o “deshacer” para las sentencias que provocaron un error. No obstante esta herramienta es “medicina preventiva”, no correctiva.

Es por eso que este tipo de modelo de recuperación simple solo es recomendado para bases de datos de solo lectura, exclusivamente de consulta, y para pruebas y desarrollo.
Si tienes una base de datos transaccional recurrente de producción con frecuencia alta de actualizaciones, el modelo simple no es para ti, tú debes usar el modelo full.

Entre respaldo y respaldo de la base de datos, debes realizar respaldos periódicos a intervalos menores de tiempo del registro de transacciones, lo que te permitirá asegurar la recuperación de la información de mejor manera y minimizar las pérdidas de la misma.

Ejemplo: Programas un respaldo diario a las 2:00 a.m. de tu base de datos.
Programas un respaldo del registro de transacciones cada 4 horas (2 am, 6am, 10am, 2pm, 6pm, 10 pm).

A las 10:30 un usuario despistado ( que nunca falta ) se “chuta” una tabla. Con el modelo de recuperación full y los respaldos del registro de transacciones de las 2,6 y 10 a.m. puedes recuperar los datos hasta las 10 de la mañana y no solo los del día anterior como con el método simple. (Eso no es todo, es posible recuperar la información en su totalidad restaurando a un momento del tiempo específico, más detalles en la cuarta entrega).

Para restaurar bases de datos con el método full, el conjunto de sentencias sql es:
RESTORE DATABASE [MiBase] 
FROM  DISK = N'C:\MiBaseRespaldo_1.bak' 
GO

RESTORE LOG [MiBase] 
FROM  DISK = N'C:\MiBaseRespaldoLog_1_1.trn' 
GO

RESTORE LOG [MiBase] 
FROM  DISK = N'C:\MiBaseRespaldoLog_1_2.trn' 
GO

RESTORE LOG [MiBase] 
FROM  DISK = N'C:\MiBaseRespaldoLog_1_3.trn' 
GO
...
RESTORE LOG [MiBase] 
FROM  DISK = N'C:\MiBaseRespaldoLog_1_n.trn' 
GO

Donde se debe respaldar primero la base de datos y posteriormente todos los respaldos de los registros de transacciones subsecuentes a el respaldo de la base de datos, en el orden en que fueron creados.
Bien, eso es todo por ahora, pero en la próxima entrega veremos cómo restaurar bases de datos a un punto especifico de tiempo, con una determinada fecha y hora.

No hay comentarios:

Publicar un comentario