Modelos de Recuperación (Recovery Models)
El Modelo de Recuperación es una opción de configuración de base de datos que indica cómo se gestiona el uso del LOG de Transacciones de SQL Server para dicha base de datos (esta opción se configura para cada base de datos de forma independiente). En función de la configuración del Modo de Recuperación debemos elegir la estrategia de Backup y Restauración de SQL Server (o viceversa), y podremos mejorar el rendimiento de ciertas operaciones denominadas Operaciones de Registro Mínimo, minimizando las escrituras en el LOG de SQL Server (y en consecuencia, minimizando el tamaño del LOG de SQL Server).
Tipos de Modelos
- Simple Recovery
- Full Recovery
- Bulk-Logged Recovery
Modo de Recuperación Simple o Sencillo (Simple Recovery Model).
· Las Operaciones de Registro Mínimo realizarán un registro mínimo en el LOG de SQL Server, minimizando las escrituras en LOG y maximizando el Rendimiento de SQL Server.
· Sólo se permiten Copias de Seguridad Completas o Diferenciales.
· No se puede recuperar (RESTORE) a un punto en el tiempo (STOPAT).
· Los cambios desde el ultimo backup están desprotegidos
· ALTER DATABASE Demo SET RECOVERY SIMPLE
Cuando usar Simple Recovery
1. Cuando un punto de recuperación no es necesario
2. Quieres mejorar el desempeño
Modo de Recuperación Completo (Full Recovery Model).
· Las Operaciones de Registro Mínimo no se comportarán como tal, realizándose siempre un registro completo en el LOG de SQL Server.
· Se permite cualquier tipo de Copia de Seguridad (BACKUP): Completas, Diferenciales, de Fichero, de Grupo de Ficheros (FILEGROUP), y de LOG.
· Es posible recuperar (RESTORE) a un punto del tiempo (STOPAT).
· ALTER DATABASE Demo SET RECOVERY FULL
Cuando usar Full Recovery:
1. Si debes poder recuperar todos los datos
2. Si debes poder recuperar un punto en el tiempo
§ Si estás dispuesto a incurrir los costos de administración del Log de Transacciones
3. Si estás dispuesto a incurrir en el desempeño.
Modo de Recuperación de Registro Masivo (Bulk-Logged Recovery Model).
Este Modo de Recuperación sólo debe ser utilizado de forma intermitente o eventual para mejorar el rendimiento de las Operaciones de Registro Mínimo.
· Las Operaciones de Registro Mínimo realizarán un registro mínimo en el LOG de SQL Server, minimizando las escrituras en LOG y maximizando el Rendimiento de SQL Server.
· Se permite cualquier tipo de Copia de Seguridad (BACKUP): Completas, Diferenciales, de Fichero, de Grupo de Ficheros (FILEGROUP), y de LOG,
· No se puede recuperar (RESTORE) a un momento en el tiempo (STOPAT).
· ALTER DATABASE Demo SET RECOVERY BULK_LOGGED
Cuando usar Bulk-Logged Recovery:
1. Si estas corriendo cargas de datos masivos a gran escala, y no requiras recuperación un punto de recuperación en el tiempo.
2. Si corres periódicamente operaciones de carga masiva de datos.
3. Si quieres conservar espacio en el disco usando mínimo LOG.
Tan pronto cuando tus operaciones de carga de datos haya finalizado, inmediatamente regresa al modo de recuperación Full Recovery Model
Backup Types
Full Backup: Backup de toda la base de datos.
Diferential: Backup de los cambios efectuados desde el último Full Backup.
Transaction Log: Contiene todos los cambios desde el último backup de log. El backup de Log tiene, por defecto, la característica de que, una vez finalizado, dispara automáticamente una operación de TRUNCATE sobre la log, lo cual libera su espacio utilizado. Sólo es posible bajo los modelos de recuperación Full y Bulk-Logged.
Demo
1. Verifiquemos la ultima fecha de respaldo de nuestra base “Demo” y de su Log. En las propiedades de la base de datos. Sección General.
2. Crear un respaldo de la base de Datos, de tipo Full Backup.
3. Crear un respaldo del Log de la base de Datos.
4. Verificar nuevamente las fechas de respaldo de nuestra base.
5. Ahora vamos a suponer que tenemos un caso de emergencia, tenemos corrupción en los datos, o cualquier otro problema con nuestra base.
6. Vamos a respaldar la base, seleccionamos el tipo de backup Transaction Log. En la sección de opciones, apartado de Transaction Log, seleccionamos “Back up the tail of the log, and leave the database in restoring state”
7. Ahora nuestra base de datos quedo en modo de “restoring”.
8. A continuación vamos a recuperar nuestra base basado en el último backup que realizamos. Click Derecho sobre la base, Task, Restore, Database
9. Seleccionamos todos los respaldos que tenemos, Full Backup, Transaction Log y Transaction Log (Read Only)
10. Una vez hecho esto hemos recuperado nuestra base desde el ultimo Full Backup realizado.
11. Vamos a modificar algunos datos de nuestra base para posteriormente recuperarla en un punto del tiempo. Supongamos que por error ponemos todos nuestros productos en precio 0.
UPDATE Productos SET Precio = 0
12. Ahora procedemos a realizar un Backup Transaction Log y dejamos la base en recuperación como en el punto 6.
13. Cerramos todas las conexiones a la base debido a que vamos a restaurarla, seleccionamos todos los archivos de backup y escogemos un punto en el tiempo en la opción “To a Point in Time”, que tiene que ser antes que pasara nuestro error de productos con precio 0. Cabe recalcar que no hemos hecho ningún respaldo desde que nuestro backup inicial, se restaurara basado en el Log de transacciones.
No hay comentarios:
Publicar un comentario