特定の時点にリストアする (ポイントインタイムリストア、STOPAT)
SQL Serverリストアと復旧コマンド
-- 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 = '...';概要
FULL + (任意で) DIFF + ログバックアップを WITH NORECOVERY で適用し、指定した時刻でログの再生を停止する。データベースを誤った操作 (誤った DELETE/UPDATE、DROP) の直前の状態に戻す。
使用する場面
誤って削除 / 更新したデータを復旧する場合、特定時点のデータを調べる場合、または監査のため。
注意
元のデータベースに上書きするのではなく別名でリストアし、必要な行をコピーして戻す。上書きリストアが必要な場合は、先にログ末尾のバックアップを取得する。STOPAT はサーバーのローカル時刻。復旧モデルは FULL である必要がある。STOPAT の時刻を含むログバックアップに BULK_LOGGED での最小ログ記録操作が含まれる場合、そのバックアップ内で停止することはできない。RESTORE ... WITH RECOVERY の後は、それ以上ログを適用できない。