Recuperar datos SQL de una tabla eliminada sin copias de seguridad

Si usted accidentalmente ejecutó una declaración DROP y tiene una copia de seguridad completa de la base de datos, dado que no ocurrieron cambios después de que la tabla fuera eliminada, usted simplemente puede recuperar los datos sobrescribiendo la base de datos original con la copia de seguridad. De todas maneras, si ese no es el caso, ya sea porque los objetos de la base de datos han sido cambiados después de la declaración DROP fuera ejecutada o porque no tiene una copia de seguridad válida de la base de datos, aún hay una manera de recuperar todos los datos perdidos.

A saber, cada operación DROP es registrada en el registro de transacciones de SQL Server. Esto significa que el registro de transacciones almacena la información requerida para retrotraer la transacción y, dado que la base de datos está en modo de recuperación FULL, soporta una recuperación a un punto en el tiempo desde la operación DROP.

Dado que DROP es registrado en el registro de transacciones, puede ser retrotraído si está encapsulado en una transacción explícita y activa. Por ejemplo, la siguiente consulta SQL:

DROP TABLE Customer

SELECT *
FROM Customer

Resultará en el mensaje de error Msg 208, Level 16, State 1 ya que la tabla Customer ha sido eliminada.

Como sea, el siguiente código SQL:

BEGIN TRAN 
DROP TABLE Customer

ROLLBACK 
SELECT *
FROM Customer

Retornará todas las filas en la tabla Customer dado que la operación DROP será retrotraída.

De todos modos, si la transacción que contiene la operación DROP ya no está activa, por ejemplo desde ha sido aplicada, la tabla eliminada no puede ser retrotraída, e inversamente los datos que guardó serán perdido también. ¿Quiere eso decir que no puede recuperar los datos perdidos debido a una operación DROP si no hay copias de seguridad de la base de datos disponibles?

Afortunadamente, no. Es aquí donde ApexSQL Recover entra en escena.

ApexSQL Recover es una herramienta de recuperación para bases de datos SQL Server que recupera datos borrados, truncados, corruptos o dañados. Recupera objetos y datos perdidos debido a operaciones drop y restaura BLOBs tanto borrados como en línea como archivos, haciéndola ideal para recuperaciones de SharePoint.

Para recuperar datos perdido debido a un DROP sin copias de seguridad:

  1. Inicie ApexSQL Recover
  2. Seleccione la opción Recover lost data due to a DROP TABLE operation
  3. En el paso Select the database to recover:
    • Especifique la instancia SQL donde está la base de datos que desea recuperar en el menú Server
    • Especifique el método de autenticación para esa instancia SQL (y un conjunto válido de credenciales si eligió autenticación SQL Server)
    • Especifique el nombre de la base de datos que contenía las tablas eliminadas en el menú Database. Y haga clic en Next

  4. En el paso Are additional data soures available?, seleccione la opción No additional transactions logs are available

  5. En el paso Select a recovery action, seleccione la opción Save the recovery script to a file y especifique la ruta donde el script T-SQL que insertará todos los datos perdidos será grabado

  6. Haga clic en Recover

Y simplemente así, usted recuperará sus datos perdido sin tener ninguna copia de seguridad de la base de datos.

Traductor: Daniel Calbimonte

Diciembre 9, 2014