時間點還原可將資料庫恢復至任意秒級時間點,前提是完整復原模式且具備完整備份 + 交易日誌備份鏈。
' 確認復原模式
SELECT name, recovery_model_desc FROM sys.databases WHERE name = 'pubs';
-- 必須為 FULL
' 確認備份鏈完整
SELECT * FROM msdb..backupset WHERE database_name = 'pubs' ORDER BY backup_start_date;
BACKUP LOG pubs TO DISK = 'C:\Backup\pubs_tail.trn'
WITH NOFORMAT, NOINIT, NAME = 'pubs_tail_log', NOSKIP, STATS = 10;
RESTORE DATABASE pubs
FROM DISK = 'C:\Backup\pubs_full.bak'
WITH NORECOVERY, REPLACE, STATS = 10;
RESTORE DATABASE pubs
FROM DISK = 'C:\Backup\pubs_diff.bak'
WITH NORECOVERY, STATS = 10;
RESTORE LOG pubs
FROM DISK = 'C:\Backup\pubs_tail.trn'
WITH RECOVERY, STOPAT = '2005-07-06 17:36:00.000', STATS = 10;
| 參數 | 作用 |
|---|---|
NORECOVERY | 保持資料庫處於還原狀態,允許後續套用日誌 |
RECOVERY | 完成還原,資料庫上線 (最後一條日誌指定) |
STOPAT | 指定還原截止時間點 (精確到秒/毫秒) |
STOPATMARK / STOPBEFOREMARK | 依標記交易還原 (需 WITH MARK 備份) |
RESTORE DATABASE pubs FROM DISK='full.bak' WITH NORECOVERY, REPLACE;
RESTORE DATABASE pubs FROM DISK='diff.bak' WITH NORECOVERY;
RESTORE LOG pubs FROM DISK='log1.trn' WITH NORECOVERY;
RESTORE LOG pubs FROM DISK='log2.trn' WITH NORECOVERY;
RESTORE LOG pubs FROM DISK='log3.trn' WITH RECOVERY, STOPAT='2024-01-15 14:30:00';
DBCC CHECKDB (pubs) 確認邏輯一致性BCP 匯出關鍵資料供業務複核STOPAT 時間點超出日誌涵蓋範圍時間點還原是 RPO 接近零的核心能力,**完整備份 + 高頻日誌備份 + 定期還原演練**是落地關鍵。