DBAtlas · Atlas de operaciones de bases de datos

Tomar un backup tail-log antes de una restauración (NORECOVERY / NO_TRUNCATE)

SQL ServerRestauración y recuperación

Comando

-- A) Healthy DB: back up the tail and put the DB into RESTORING (no new writes):
BACKUP LOG [Musteri]
TO DISK = N'D:\Backup\Musteri_tail.trn'
WITH NORECOVERY, CHECKSUM, INIT;

-- B) Damaged DB / data file lost, log file intact:
-- BACKUP LOG [Musteri]
-- TO DISK = N'D:\Backup\Musteri_tail_damaged.trn'
-- WITH NO_TRUNCATE, CONTINUE_AFTER_ERROR, INIT;

SELECT name, state_desc FROM sys.databases WHERE name = N'Musteri';

Qué hace

Respalda la parte del log escrita desde el último backup de log (la cola), de modo que la cadena de restauración llegue al momento del fallo y no se pierdan los últimos minutos de transacciones.

Cuándo usarlo

Antes de restaurar sobre la misma base de datos, cuando falla el disco del archivo de datos o en el corte final de una migración.

Precaución

NORECOVERY pone la base de datos en RESTORING y termina el acceso de los usuarios; no lo ejecute en la base de datos equivocada. Restaurar WITH REPLACE sin un backup tail-log descarta de forma permanente las transacciones posteriores al último backup de log. Un backup tomado con NO_TRUNCATE puede contener metadatos incompletos; ejecute DBCC CHECKDB tras la restauración. En recuperación SIMPLE no es posible un backup tail-log.

Abrir en DBAtlas →

Relacionado