Cómo restaurar a un momento determinado (Transact-SQL)

En este tema se describe cómo restaurar hasta un momento determinado.

Para restaurar hasta un momento determinado

  1. Ejecute la instrucción RESTORE DATABASE con la opción NORECOVERY.

    Nota

    Si una secuencia de restauración parcial excluye cualquier grupo de archivos FILESTREAM, no se admite la restauración a un momento dado. Puede forzarse la continuación de la secuencia de restauración. Sin embargo, no se podrán restaurar los grupos de archivos FILESTREAM omitidos en la instrucción RESTORE. Para forzar una restauración a un momento específico, especifique la opción CONTINUE_AFTER_ERROR junto con la opción STOPAT, STOPATMARK o STOPBEFOREMARK, que debe especificar también en las instrucciones RESTORE LOG siguientes. Si se especifica CONTINUE_AFTER_ERROR, la secuencia de restauración parcial será correcta y el grupo de archivos FILESTREAM no será recuperable.

  2. Ejecute la instrucción RESTORE LOG para aplicar cada copia de seguridad de registros especificando:

    • El nombre de la base de datos a la que se aplica el registro de transacciones.

    • El dispositivo de copia de seguridad desde el que se restaura la copia de seguridad del registro de transacciones.

    • Las opciones RECOVERY y STOPAT. Si la copia de seguridad de registros de transacciones no contiene la hora solicitada (por ejemplo, si la hora especificada está fuera de los límites del intervalo cubierto por el registro de transacciones), se genera una advertencia y no se recupera la base de datos.

Ejemplo

En el ejemplo siguiente se restaura una base de datos al estado en que se encontraba a las 12:00 AM del April 15, 2020 y se muestra una operación de restauración que implica varias copias de seguridad de registros. En el dispositivo de copia de seguridad, AdventureWorks2008R2Backups, la copia de seguridad de base de datos completa que se va a restaurar es el tercer conjunto de copias de seguridad del dispositivo (FILE = 3), la primera copia de seguridad de registros es el cuarto conjunto de copias de seguridad (FILE = 4) y la segunda copia de seguridad de registros es el quinto conjunto de copias de seguridad (FILE = 5).

Nota importanteImportante

La base de datos AdventureWorks2008R2 utiliza el modelo de recuperación simple. Con el fin de permitir copias de seguridad de registros, antes de realizar una copia de seguridad de base de datos completa, la base de datos se ha configurado para utilizar el modelo de recuperación completa, mediante ALTER DATABASE AdventureWorks2008R2 SET RECOVERY FULL.

RESTORE DATABASE AdventureWorks2008R2
   FROM AdventureWorks2008R2Backups
   WITH FILE=3, NORECOVERY;

RESTORE LOG AdventureWorks2008R2
   FROM AdventureWorks2008R2Backups
   WITH FILE=4, NORECOVERY, STOPAT = 'Apr 15, 2020 12:00 AM';

RESTORE LOG AdventureWorks2008R2
   FROM AdventureWorks2008R2Backups
   WITH FILE=5, NORECOVERY, STOPAT = 'Apr 15, 2020 12:00 AM';
RESTORE DATABASE AdventureWorks2008R2 WITH RECOVERY; 
GO