場景:每日 06:00 全備,11:00 使用者誤刪 Order Details 表。目標:RPO 接近零、RTO 最小化。Northwind 資料庫為例,恢復模式 FULL。
BACKUP DATABASE Northwind TO DISK='D:\DBBackup\NorthwindBackup.bak' WITH INIT, STATS=10DROP TABLE [Order Details](11:00)ALTER DATABASE Northwind SET RESTRICTED_USER WITH ROLLBACK IMMEDIATEBACKUP LOG Northwind TO DISK='D:\DBBackup\NorthwindBackupLog.trn' WITH STATS=10 捕獲 06:00~11:00 所有交易。RESTORE DATABASE Northwind FROM DISK='...Backup.bak' WITH NORECOVERY, RESTRICTED_USERRESTORE LOG Northwind FROM DISK='...BackupLog.trn' WITH STOPAT='2008-09-23 10:42:44', RECOVERYCREATE DATABASE Northwind_RestorePointSnapshot ON (NAME=Northwind, FILENAME='D:\DBBackup\NorthwindData_RestorePointSnapshot.snap') AS SNAPSHOT OF Northwind 作為後續比對基準。DBCC CHECKIDENT('Order Details', RESEED, 29000) 留出間隙防衝突。Northwind_recover 還原完整備份 + 記錄備份,STANDBY 模式允許唯讀查詢。STOPAT(1 分鐘/5 分鐘/1 分鐘)執行 RESTORE LOG ... WITH STANDBY,每次查詢 Order Details 是否存在,鎖定刪除發生窗口(如 11:01:44~11:03:44)。RESTORE LOG ... WITH STOPAT='11:03:44', RECOVERY 完成旁路庫恢復。ROW_NUMBER() 生成代理鍵,INSERT INTO Northwind.dbo.[Order Details] SELECT ... FROM Northwind_recover WHERE ROWID > (SELECT COUNT(*) FROM Northwind_RestorePointSnapshot.dbo.[Order Details]) 精準補齊缺失列。關鍵工具: tablediff.exe(命令列/ GUI 版)自動比對表差異。核心思想: 先快速上線業務(接受小量資料缺口),再離線精準補齊,兼顧 RTO 與 RPO。