Cómo realizar una restauración hasta el momento del error (Transact-SQL)
En este tema se explica cómo realizar una restauración hasta el momento del error. Este tema sólo es relevante para las bases de datos que utilizan los modelos de recuperación completa o por medio de registros de operaciones masivas.
Para restaurar hasta el momento del error
Realice una copia de seguridad del final del registro mediante la ejecución de la siguiente instrucción BACKUP básica:
BACKUP LOG <database_name> TO <backup_device> WITH NORECOVERY, NO_TRUNCATE;
Restaure una copia de seguridad completa de la base de datos mediante la ejecución de la siguiente instrucción RESTORE DATABASE básica:
RESTORE DATABASE <database_name> FROM <backup_device> WITH NORECOVERY;
Opcionalmente, restaure una copia de seguridad diferencial de la base de datos mediante la ejecución de la siguiente instrucción RESTORE DATABASE básica:
RESTORE DATABASE <database_name> FROM <backup_device> WITH NORECOVERY;
Aplique los registros de transacciones, incluida la copia de seguridad de registros después del error que ha creado en el paso 1, mediante la especificación de WITH NORECOVERY en la instrucción RESTORE LOG:
RESTORE LOG <database_name> FROM <backup_device> WITH NORECOVERY;
Recupere la base de datos mediante la ejecución de la siguiente instrucción RESTORE DATABASE:
RESTORE DATABASE <database_name> WITH RECOVERY;
Ejemplo
Antes de que pueda ejecutar el ejemplo, debe completar los preparativos siguientes:
La base de datos AdventureWorks utiliza el modelo de recuperación simple de forma predeterminada. Puesto que este modelo de recuperación no admite la restauración hasta el punto del error, configure AdventureWorks para que utilice el modelo de recuperación completa mediante la ejecución de la siguiente instrucción ALTER DATABASE:
USE master; GO ALTER DATABASE AdventureWorks SET RECOVERY FULL;
Cree una copia de seguridad completa de la base de datos mediante la siguiente instrucción BACKUP:
BACKUP DATABASE AdventureWorks TO DISK = 'C:\AdventureWorks_Data.bck';
Cree una copia de seguridad de registros rutinaria:
BACKUP LOG AdventureWorks TO DISK = 'C:\AdventureWorks_Log.bck';
En el ejemplo siguiente se restauran las copias de seguridad que se han creado con anterioridad, tras crear una copia de seguridad de registros después del error de la base de datos AdventureWorks. (En este paso se asume que se puede tener acceso al disco de registros).
Primero, en el ejemplo se crea una copia de seguridad de registros después del error de la base de datos que captura el registro activo y deja la base de datos en el estado de restauración. A continuación, en el ejemplo se restaura la copia de seguridad de la base de datos, se aplica la copia de seguridad de registros rutinaria que se ha creado con anterioridad y se aplica la copia de seguridad de registros después del error. Finalmente, en el ejemplo se recupera la base de datos en un paso diferente.
[!NOTA] El comportamiento predeterminado es recuperar una base de datos como parte de la instrucción que restaura la copia de seguridad final.
/* Example of restoring a to the point of failure */
-- Step 1: Create a tail-log backup by using WITH NORECOVERY.
BACKUP LOG AdventureWorks
TO DISK = 'C:\AdventureWorks_Log.bck'
WITH NORECOVERY;
GO
-- Step 2: Restore the full database backup.
RESTORE DATABASE AdventureWorks
FROM DISK = 'C:\AdventureWorks_Data.bck'
WITH NORECOVERY;
GO
-- Step 3: Restore the first transaction log backup.
RESTORE LOG AdventureWorks
FROM DISK = 'C:\AdventureWorks_Log.bck'
WITH NORECOVERY;
GO
-- Step 4: Restore the tail-log backup.
RESTORE LOG AdventureWorks
FROM DISK = 'C:\AdventureWorks_Log.bck'
WITH NORECOVERY;
GO
-- Step 5: Recover the database.
RESTORE DATABASE AdventureWorks
WITH RECOVERY;
GO
Vea también
Otros recursos
BACKUP (Transact-SQL)
RESTORE (Transact-SQL)
Restaurar bases de datos a un punto de una copia de seguridad
Tutorial de SQL Server Management Studio