DBAtlas · Veritabanı operasyon atlası

Belirli bir zamana geri dön (point-in-time restore, STOPAT)

SQL ServerRestore & Kurtarma

Komut

-- 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.

DBAtlas'ta aç →

İlgili