Cómo recuperar datos de SQL Server de operaciones DELETE, TRUNCATE y DROP accidentales

Usted ha ejecutado accidentalmente (o ha experimentado otros escenarios de pérdida de datos que involucran) una sentencia DELETE, TRUNCATE o DROP contra una base de datos y ha perdido registros valiosos.

¡¿¡¿Cómo puede recuperar los datos?!?!

Escenarios:

a) Fácil:

  • No ocurrieron cambios después de las sentencias DELETE, TRUNCATE o DROP y usted tiene una copia de seguridad completa.

>> Restaurar una copia de seguridad de la base de datos completa.

b)Difícil:

  • Usted tiene una copia de seguridad completa pero…
  • Algunos cambios fueron hechos después de las sentencias DELETE, TRUNCATE o DROP, o
  • Usted no puede poner la base de datos fuera de línea

>> Use la copian de seguridad completa para exportar los datos e importarlos a la base de datos de producción.

c) ¿Imposible?

  • Usted no tiene una copia de seguridad de la base de datos completa que contenga los datos perdidos
  • Usted no puede poner la base de datos fuera de línea
  • Algunas transacciones fueron hechas en la base de datos después de que los datos se perdieran

>> Use ApexSQL Recover

¿Cómo puede ayudar ApexSQL Recover?

El registro de transacciones contiene la información acerca de las transacciones hechas a su base de datos. ApexSQL Recover es una herramienta que puede hacer minería del registro de transacciones de la base de datos y recuperar datos borrados, eliminados y perdidos.

  1. Inicie ApexSQL Recover
  2. Seleccione una opción de recuperación basado en la sentencia ejecutada. Por ejemplo, recuperar datos perdidos debido a una operación DELETE.
    Si usted no sabe qué sentencia causó la pérdida de datos, use todas las opciones, una después de otra.
    Si la pérdida de datos fue causada por dos o más sentencias diferentes, use las opciones adecuadas, una después de otra.



  3. Si usted tiene copias de seguridad de los registros de transacciones o registros desasociados creados en el tiempo cuando los datos se perdieron, haga clic en Add transaction logs para añadirlos. En caso de que haya muchas transacciones en la base de datos después de que los datos se perdieran, la información acerca de los datos perdidos puede ya no existir en el registro de transacciones en línea. Al añadir estas fuentes adicionales, usted proveerá la información necesaria acerca de las transacciones que removieron los datos de su base de datos. Use la opción Help me decide si no está seguro de qué fuentes adicionales pueden ser usadas.

    Esta opción está disponible sólo para las opciones DELETE y DROP TABLE.

    Si no hay fuentes adicionales disponibles, seleccione No additional transaction logs are available y vaya al paso #7.



  1. Añada una secuencia de copias de seguridad de registros de transacciones que termine con el registro de transacciones y/o los registros de transacciones desasociados usando el botón Add.



  2. Seleccione el tiempo cuando los datos se perdieron. Esto reducirá los resultados a sólo los registros que usted desea recuperar. Usted no desea insertar datos que ha eliminado deliberadamente.

    Si no está seguro de cuándo fue esto, seleccione Date and time are unknown

  3. Seleccione Save recovery script to file para crear un script T-SQL para rehacer, el cual insertará todos los registros recuperados. Usted puede revisar y modificar el script antes de ejecutarlo.



  4. Select Save recovery script to file to create a redo T-SQL script that will insert all the recovered records. You can review and modify the script before you execute it



Después de que el script Deshacer es ejecutado, los datos perdidos son reinsertados en la tabla.

Así que recuerde, incluso si usted ha borrado registros de tablas sin intención, o ha truncado o eliminado una tabla, hay una oportunidad de recuperar los datos perdidos usando ApexSQL Recover

Traductor: Daniel Calbimonte

octubre 25, 2015