Restaurar para um ponto no tempo (point-in-time restore, STOPAT)
SQL ServerRestore e recuperaçãoComando
-- Restore under a side name, keep the original intact:
RESTORE DATABASE [Musteri_PITR]
FROM DISK = N'D:\Backup\Musteri_full_20261008.bak'
WITH MOVE N'Musteri' TO N'D:\Data\Musteri_PITR.mdf',
MOVE N'Musteri_log' TO N'D:\Log\Musteri_PITR_log.ldf',
NORECOVERY, STATS = 10;
RESTORE DATABASE [Musteri_PITR]
FROM DISK = N'D:\Backup\Musteri_diff_20261008.bak' WITH NORECOVERY;
-- All log backups in order, each with the same STOPAT:
RESTORE LOG [Musteri_PITR] FROM DISK = N'D:\Backup\Musteri_log_1200.trn'
WITH NORECOVERY, STOPAT = '2026-10-08T14:29:00';
RESTORE LOG [Musteri_PITR] FROM DISK = N'D:\Backup\Musteri_log_1500.trn'
WITH NORECOVERY, STOPAT = '2026-10-08T14:29:00';
RESTORE DATABASE [Musteri_PITR] WITH RECOVERY;
-- Alternative: step forward with STANDBY and read data at each point:
-- RESTORE LOG [Musteri_PITR] FROM DISK = N'...' WITH STANDBY = N'D:\Backup\Musteri_PITR_undo.dat', STOPAT = '...';O que faz
Aplica FULL + (opcional) DIFF + backups de log WITH NORECOVERY e interrompe a reaplicação do log no horário informado; devolve o banco ao estado logo antes da operação ruim (DELETE/UPDATE errado, DROP).
Quando usar
Para recuperar dados excluídos/alterados por engano, inspecionar os dados em um momento específico ou para uma auditoria.
Atenção
Restaure com outro nome em vez de sobre o original e depois copie de volta as linhas necessárias; se precisar restaurar sobre ele, faça antes um backup tail-log. STOPAT está no horário local do servidor. O recovery model precisa ser FULL; se o backup de log que contém o horário do STOPAT incluir operações minimamente logadas sob BULK_LOGGED, não é possível parar dentro desse backup. Após RESTORE ... WITH RECOVERY nenhum log adicional pode ser aplicado.