Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Estrategias de Recuperacion de Datos en SQL Server
Estrategias de Recuperacion de Datos en SQL Server
A pesar de los aos que el sistema de backup y restoring de SQL Server lleva sin sufrir cambios en sus opciones bsicas, es incomprensiblemente frecuente encontrar sistemas en produccin con datos sensibles funcionando en el modelo de recuperacin simple. Es cierto, no todos los sistemas necesitan un nivel de proteccin total: existen aplicativos donde un mecanismo que asegure la recuperacin de la base de datos a una versin de hace 24h es aceptable. En la mayora de casos tener que volver a una versin de hace un da significar cmo mnimo la prdida del trabajo de ese da. No pensemos en prdida de datos como consecuencia de un cataclismo o una desgracia natural. Basta un desafortunado despiste en la ejecucin de una consulta en el servidor para poder echar a perder una tabla entera. La correcta configuracin de nuestras copias de seguridad nos puede evitar todos estos riesgos, sin apenas contraindicaciones. El objetivo de este manual es describir de forma precisa y resumida los procedimientos de actuacin ante los siguientes supuestos: Recuperacin de una base de datos a una fecha y hora concreta de cualquier da de la semana en curso. Recuperacin de una base de datos a una fecha y hora concreta del da actual. Marcado de transacciones en el servidor de base de datos y recuperacin a una transaccin con nombre.
Sistema de Backup
Una base de datos puede estar en dos modos de recuperacin: simple y completa. En el modelo de recuperacin simple las copias de seguridad nos permiten volver a puntos concretos en el tiempo. Es decir, con una estrategia de backup completo diario, guardando la de los ltimos siete das podemos volver a los puntos dnde se han hecho dichos backups.
En un sistema de recuperacin completa, la proteccin ante desastres es total, lo cual se visualiza en este grfico que representa la exposicin a prdida de datos en un sistema con copias de seguridad completas, diferenciales y de log de transacciones:
El modelo puede ser tan complejo cmo necesitemos: existen modelos con copias de seguridad de log de transacciones cada minuto.
Para frecuencias inferiores recurriramos a otros sistemas de alta disponibilidad, como puede ser LogShipping o Mirroring. El modelo que se presenta en este artculo es mucho ms sencillo: consta de un nico log backup justo antes de cada full backup. Ambas copias de seguridad se harn diariamente con el nombre del da de la semana en el que se ejecutan, y dentro del mismo trabajo. Se utilizarn archivos distintos para facilitar la administracin, asignando como nombre de archivo el nombre del da de la semana con extensin .bak para el full backup y .trn para el del log de transacciones.
El grfico representa en qu momento se guardan los datos. Con las copias de seguridad completas (.bak) podramos volver a puntos concretos en el tiempo; en este caso a los momentos en que se realizan las copias de seguridad. En el sistema propuesto programaramos las copias de seguridad para ejecutarse una vez al da a las 4:00 am, que es una hora de poca actividad en el servidor. Para volver a un punto en el tiempo distinto a las 4:00, tenemos que utilizar el log de transacciones (archivos .trn) correspondiente. Por ejemplo, para volver al jueves a las 15:30 necesitaramos utilizar el BBDD1_Mi.bak para retroceder hasta el jueves a las 4:00 y despus aplicar el BBDD1_Ju.trn para avanzar hasta las 15:30. Si el punto al que queremos volver an no est respaldado en ninguna copia de log de transacciones, siempre podremos generar uno cuando lo necesitemos. Se trata del archivo que en el grfico aparece cmo tail.trn. Este archivo nos permite partir del backup completo del viernes a las 4:00 y avanzar hasta el punto actual o cualquiera intermedio.
1. Abrimos el men de restauracin de BBDD. Seleccionamos el backup completo ms reciente anterior al punto de restauracin deseado. En este caso ser el archivo BBDDx_Lu.bak, que restaura la BBDD al lunes 4:00 am.
2. Seleccionamos un nuevo nombre para la base de datos restaurada, para no sobrescribir la actual. Es aconsejable esta tcnica para poder comparar las versiones de la base de datos y recuperar slo lo que nos interese mediante una consulta, en lugar de revertir toda la base de datos y perder todos los cambios existentes. 3. Puesto que esta restauracin todava no dejar a la base de datos en el punto deseado, marcamos la segunda opcin en las opciones del estado de recuperacin: Dejar la base de datos no operativa... (ver siguiente figura). Esto nos permite que la base de datos quede en un estado de restauracin para seguir con el proceso. Al efectuar esta operacin sobre una nueva base de datos no tendremos ninguna incidencia, en cambio si se trata de hacer esta restauracin sobre una base de datos en uso necesitaramos antes obtener acceso exclusivo.
4. Ahora la base de datos est exactamente igual que estaba en el punto que hicimos el backup, incluyendo las transacciones sin confirmar, de ah que no est operativa. Para avanzar hasta la hora que nos interesaba tenemos que recurrir al log de transacciones
del da correspondiente. Botn derecho sobre la base de datos, y en el men contextual vamos a TasksRestoreTransaction Log (en espaol TareasRestaurarLog de Transacciones), como se muestra en la figura siguiente:
5. Puesto que estamos en el lunes a las 4:00 y queremos avanzar hasta el lunes a las 15:30 utilizamos el archivo de logs del martes: BBDD1_Ma.trn. No necesitamos restaurar todo el archivo, sino slo hasta la hora que queremos.
6. En esta ocasin dejamos la opcin por defecto dejar la base de datos lista para su uso revirtiendo las transacciones no confirmadas, ya que alcanzamos el punto deseado. Listo!
A continuacin procedemos de la misma forma que antes: restauracin del ltimo backup completo y restauracin de este registro de transacciones hasta un punto concreto.
2. Para restaurar a una transaccin con nombre utilizamos el procedimiento habitual: restauramos a copia completa dejando la base de datos en estado de recuperacin, y al restaurar el registro de transacciones elegimos la opcin Transaccin marcada en lugar de a un momento dado.
Referencias
Backup Under the Full Recovery Model Backup Under the Simple Recovery Model Recovery Model Overview Using Marked Transactions (Full Recovery Model) Copy-Only Backups
Acerca de campusMVP
CampusMVP te ofrece la mejor formacin en tecnologa Microsoft a travs de nuestros cursos online y nuestros libros especializados, impartidos y escritos por conocidos profesionales de Microsoft. Visita nuestra pgina en www-campusmvp.com
Reconocimiento - NoComercial - CompartirIgual (by-nc-sa): No se permite un uso comercial de este documento ni de las posibles obras derivadas, la distribucin de las cuales se debe hacer con una licencia igual a la que regula esta obra original. Se debe citar la fuente.