¿Cómo recuperar una base de datos SQL Server usando una copia de seguridad antigua y el archivo del registro de transacciones actual? Los Administradores de Bases de Datos tienen varios planes de recuperación de desastres. Una de las preguntas que deben responder antes de establecer un plan correcto es cuántos datos pueden permitirse perder. Muchos de los “Administradores de Bases de Datos accidentales” cobran consciencia de que crear copias de seguridad completas regularmente puede no ser suficiente, sólo después de que es demasiado tarde.
Digamos que usted crea una copia de seguridad de la base de datos cada viernes después de las horas de trabajo, sus archivos de base de datos MDF están localizados en un disco duro, el LDF en otro y las copias de seguridad en un tercero y su disco del archivo MDF colapsó el viernes en la mañana. Gracias a la inteligente distribución de los archivos a través de 3 discos diferentes, usted tiene una copia de seguridad de la base de datos completa y un archivo LDF saludable.
¿Qué opciones de recuperación SQL Server tiene usted?
- La más simple, y al mismo tiempo la peor opción, es restaurar la copia de seguridad completa de la base de datos más reciente, creada el anterior viernes. Usted perderá casi 7 días de datos. Si usted puede permitirse semejante pérdida, siga adelante con este escenario
-
Intente hacer una copia de seguridad del archivo LDF, por ejemplo haga una copia de seguridad de la cola de registros. Una copia de seguridad de la cola de registros captura cualquier registro que no ha sido todavía respaldado en una copia de seguridad. Note que usted puede hacer esto incluso para una base de datos que está fuera de línea. Será exitoso sólo si el archivo LDF no está dañado
BACKUP log database_name TO DISK = 'disk:\location' WITH init, no_truncate;
Si la copia de seguridad es exitosa, restaure la copia de seguridad completa de la base de datos primero usando la opción RESTORE WITH RECOVERY y luego restaure la copia de seguridad de la cola de registros.
La desventaja de este método es que es sólo aplicable a modelos de recuperación completos o por medio de registros de operaciones masivas y que crear una copia de seguridad de la cola de registros puede fallar.
- Use ApexSQL Log
ApexSQL Log es una herramienta de auditoría y recuperación de bases de datos SQL Server la cual lee registros de transacciones, copias de seguridad de registros de transacciones, registros de transacciones sueltos y copias de seguridad de bases de datos, y audita, revierte o reproduce cambios en datos y objetos que han afectado a la base de datos, incluyendo las que han ocurrido antes de que el producto fuera instalado.
Si sus bases de datos están en el modelo de recuperación Completa y usted no hizo copias de seguridad del registro de transacciones después de la última copia de seguridad de la base de datos, significa que todas las transacciones que ocurrieron después de la copia de seguridad de la base de datos aún están en el archivo LDF y que hay una buena posibilidad de recuperación de los datos y objetos. Pero incluso si su base de datos está en el modelo de recuperación Simple, hay una posibilidad de recuperar su base de datos SQL Server.
- Use la copia de seguridad completa de la base de datos más reciente y restáurela
- Inicie ApexSQL Log
-
Conéctese a la base de datos
-
En el siguiente paso, añada el archivo LDF rescatado y elíjalo
-
En el mismo paso añada la copia de seguridad de la base de datos completa usada para restaurar la base de datos. Esto es necesario para una reconstrucción exitosa de UPDATEs
-
En Filter setup, especifique el rango de tiempo que desea recuperar
- Haga clic en Open results in grid
-
Las transacciones leídas desde el archivo LDF serán mostradas en la cuadrícula
Para crear el script REDO, en el grupo Actions en el menú, haga clic en Create REDO script
- Cuando el script es creado, ejecútelo contra la base de datos restaurada usando la antigua copia de seguridad. Todas las transacciones leídas desde el archivo LDF serán añadidas
La recuperación de bases de datos SQL Server a un punto en el tiempo es posible incluso sin copias de seguridad del registro de transacciones. Use ApexSQL Log to para leer registros de transacciones sueltos de SQL Server y reproduzca o retrotraiga las transacciones leídas.
Traductor: Daniel Calbimonte
junio 12, 2015