Belirli bir zamana geri dön (point-in-time restore, STOPAT)
SQL ServerRestore & KurtarmaKomut
-- Yan isimle restore et, orijinali bozma:
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;
-- Tum log yedeklerini sirayla, hepsinde ayni STOPAT ile:
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;
-- Alternatif: STANDBY ile ara noktalarda veriyi okuyarak ilerle:
-- RESTORE LOG [Musteri_PITR] FROM DISK = N'...' WITH STANDBY = N'D:\Backup\Musteri_PITR_undo.dat', STOPAT = '...';Ne yapar?
FULL + (varsa) DIFF + log yedeklerini NORECOVERY ile uygulayıp log'u verilen zamanda durdurur; veritabanını hatalı işlemin (yanlış DELETE/UPDATE, DROP) hemen öncesine döndürür.
Ne zaman kullanılır?
Yanlışlıkla silinen/güncellenen veriyi kurtarmak, belirli bir andaki veri durumunu incelemek veya denetim için.
Dikkat
Orijinal veritabanının üzerine değil yan isimle restore et, sonra gereken satırları geri taşı; üzerine restore gerekiyorsa önce tail-log yedeği al. STOPAT zamanı sunucu yerel saatidir. Recovery model FULL olmalı; STOPAT zamanını içeren log yedeği BULK_LOGGED'da minimal loglu işlem içeriyorsa o yedek içinde durulamaz. RESTORE ... WITH RECOVERY sonrası ek log uygulanamaz.