Cómo restaurar un respaldo en SQL Server (RESTORE DATABASE)
Restaurar bien es tan importante como respaldar. La clave esta en entender WITH NORECOVERY (para encadenar) y WITH RECOVERY (para dejar la base lista).
- 1
Restaura el respaldo completo con NORECOVERY
Usa NORECOVERY si vas a aplicar despues un diferencial o logs. La base queda en estado 'Restoring' y no se puede usar todavia.
RESTORE DATABASE [MiBase] FROM DISK = N'D:\Backups\MiBase_full.bak' WITH NORECOVERY, REPLACE, MOVE 'MiBase_Data' TO 'D:\Data\MiBase.mdf', MOVE 'MiBase_Log' TO 'L:\Logs\MiBase.ldf'; - 2
Aplica el diferencial (si lo hay)
Tambien con NORECOVERY si aun faltan logs por aplicar. El diferencial adelanta la base hasta ese punto.
RESTORE DATABASE [MiBase] FROM DISK = N'D:\Backups\MiBase_diff.bak' WITH NORECOVERY; - 3
Aplica los logs en orden
Restaura cada .trn en secuencia. El ultimo va con RECOVERY. Para point-in-time usa STOPAT con la fecha y hora exacta.
RESTORE LOG [MiBase] FROM DISK = N'D:\Backups\MiBase_log.trn' WITH RECOVERY, STOPAT = '2026-07-04T13:45:00'; - 4
Deja la base lista con RECOVERY
El ultimo comando de la cadena debe llevar WITH RECOVERY para poner la base en linea. Si ya lo pusiste en el log anterior, no repitas.
RESTORE DATABASE [MiBase] WITH RECOVERY;
// el error común
REPLACE sobrescribe una base existente: es destructivo, asegurate del nombre. Si dejas RECOVERY antes de tiempo, rompes la cadena y tendras que empezar desde el full de nuevo. El orden de los logs importa: uno fuera de secuencia falla.
// cuándo conviene un experto
Una restauracion mal hecha durante una emergencia cuesta horas o dias de datos. En dba.mx probamos las restauraciones antes del incidente y documentamos el runbook, para que recuperar sea con techo cerrado y no una apuesta.
Agenda un Escaneo — desde USD $550Esta guía es orientativa y usa comandos de referencia. En producción, adapta a tu versión y prueba en un ambiente seguro primero.