誤刪資料、誤更新是資料庫運維噩夢。本文以實測流程示範:在「完整復原模式」下,利用「完整備份 + 交易記錄備份」實現時間點還原,找回誤刪資料。
CREATE DATABASE zp; GO USE zp; CREATE TABLE [zping.com] (id INT, name VARCHAR(20)); INSERT INTO [zping.com] VALUES (1,'zping.com1'),(2,'zping.com2'),(3,'zping.com3'),(4,'zping.com4');
BACKUP DATABASE [zp] TO DISK = N'C:\k.bak' WITH NOFORMAT, NOINIT, NAME = N'zp-完整備份', STATS = 10;
DELETE FROM [zping.com] WHERE id IN (1,2); -- 假設 10:15 執行 -- 記下大約時間:2024-01-15 10:15:00
BACKUP LOG [zp] TO DISK = N'C:\k_log.trn' WITH NOFORMAT, NOINIT, NAME = N'zp-記錄備份_誤刪後', STATS = 10;
zp 改名或離線,避免衝突。C:\k.bak。C:\k_log.trn。USE zp_restored; SELECT * FROM [zping.com]; -- id 1、2 應重新出現
| 策略 | 頻率 | 說明 |
|---|---|---|
| 完整備份 | 每日/每週 | 大型庫可配合差異備份減少完整備份頻率 |
| 記錄備份 | 每 15~60 分鐘 | RPO(資料遺失容忍度)決定頻率 |
| 備份驗證 | 每週 | RESTORE VERIFYONLY 或實測還原 |
| 異地備份 | 即時/每日 | 異地容災,防機房級故障 |
msdb.dbo.backupset 的 first_lsn/last_lsn 連續性。掌握「完整備份 + 記錄備份 + 時間點還原」鐵三角,即可從容應對人為誤操作,將 RPO 壓縮至分鐘級,守護核心資料資產。