Restaurar una base de datos con WITH STOPAT en SQL Server

Jue, 22/11/2018 - 16:36 -- jsequeiros

Se tiene una base de datos llamada BDColegio que está configurada para usar el modelo de recuperación full. Se realiza un backup full diario a las 02:00. El job realiza el backup full de la base de datos DBColegio en el archivo C:\Backup\DBColegio.bak
Se debe restaurar la base de datos DBColegio al punto en el tiempo de 02.35 del 22 de noviembre del 2018 (Fecha2 en el escript de demostración), y asegurarse de que la base de datos sea funcional y que acepte las conexiones.

Restaurar un backup de una base de datos con WITH STOPAT en SQL Server

--SCRIPT DE PRUEBA
--Creación de la base de datos.
USE MASTER
CREATE DATABASE DBColegio
GO
USE DBColegio 
CREATE TABLE Alumno (Codigo INT)
INSERT INTO Alumno VALUES (1)
INSERT INTO Alumno VALUES (2)
INSERT INTO Alumno VALUES (3)
INSERT INTO Alumno VALUES (4)
INSERT INTO Alumno VALUES (5)
INSERT INTO Alumno VALUES (6)
INSERT INTO Alumno VALUES (7)
INSERT INTO Alumno VALUES (8)
INSERT INTO Alumno VALUES (9)
INSERT INTO Alumno VALUES (10)
GO
SELECT GETDATE()
GO
--Backup full diario 02.000
USE MASTER
BACKUP DATABASE DBColegio TO DISK='C:\backup\DBColegio.BAK'
SELECT GETDATE()
GO
--Fecha1:2018-11-22 15:12:01.143

--Inserciones de registros
USE DBColegio
INSERT INTO Alumno VALUES (11)
INSERT INTO Alumno VALUES (13)
INSERT INTO Alumno VALUES (14)
INSERT INTO Alumno VALUES (15)
SELECT GETDATE()
--Fecha2:2018-11-22 15:34:18.253

--Borrado de registros
DELETE FROM Alumno WHERE Codigo>5
SELECT GETDATE()
GO
--Fecha3:2018-11-22 15:35:59.880

--SOLUCIÓN: 
--Paso1 se realiza un backup de log de transacciones:
USE MASTER BACKUP LOG DBColegio to disk= N'C:\Backup\DBColegioLog.bak' WITH NORECOVERY
--Paso2 se restaura el backup full que se realizó en la fecha1:
RESTORE DATABASE DBColegio FROM disk= N'C:\Backup\DBColegio.bak' WITH NORECOVERY
--Paso3 Especificar la fecha a la cual se desea restaurar en este caso colocamos la fecha2:
RESTORE LOG DBColegio FROM disk= N'C:\Backup\DBColegioLog.bak' WITH STOPAT=N'2018-11-22T15:34:18.253'

--Comprobación:
SELECT * FROM [DBColegio].[dbo].[Alumno]

Resultados de la restauración WITH STOPAT en SQL Server :

Restaurar una base de datos con WITH STOPAT en SQL Server

Post new comment