DROP TABLE OrderDetails。
BACKUP DATABASE Northwind TO DISK = 'D:\Backup\Northwind_Full.bak'
WITH INIT, COMPRESSION, CHECKSUM, STATS = 10;
ALTER DATABASE Northwind SET RESTRICTED_USER WITH ROLLBACK IMMEDIATE;
-- 或 SINGLE_USER,視業務衝擊
BACKUP LOG Northwind TO DISK = 'D:\Backup\Northwind_Tail.trn'
WITH NORECOVERY, COMPRESSION, CHECKSUM, STATS = 10;
-- NORECOVERY 保持數據庫處於恢復狀態,包含至誤操作前的所有事務
原則: 災難發生後,首先且必須 備份尾部日誌,鎖定恢復點。
-- 4.1 恢復全量備份 (NORECOVERY)
RESTORE DATABASE Northwind FROM DISK = 'D:\Backup\Northwind_Full.bak'
WITH NORECOVERY, REPLACE, STATS = 10,
MOVE 'Northwind' TO 'E:\Data\Northwind.mdf',
MOVE 'Northwind_log' TO 'E:\Log\Northwind_log.ldf';
-- 4.2 恢復尾部日誌 (RECOVERY, STOPAT 精確到誤操作前)
RESTORE LOG Northwind FROM DISK = 'D:\Backup\Northwind_Tail.trn'
WITH RECOVERY, STOPAT = '2024-01-15 10:59:59.000', STATS = 10;
STOPAT 精確到秒/毫秒,跳過誤刪操作及之後事務。NORECOVERY 恢復,最後一條 RECOVERY。DBCC CHECKDB 確認一致性。ALTER DATABASE Northwind SET MULTI_USER 開放連接。
-- 災難前創建快照 (需預見風險窗口)
CREATE DATABASE Northwind_Snap_1000 ON (NAME = 'Northwind', FILENAME = 'E:\Snap\Northwind_1000.ss')
AS SNAPSHOT OF Northwind;
-- 災難後秒級恢復表數據
INSERT INTO Northwind.dbo.OrderDetails SELECT * FROM Northwind_Snap_1000.dbo.OrderDetails;
快照僅保護用戶錯誤,不防介質故障,需配合備份策略。
| 指標 | 目標 | 管控手段 |
|---|---|---|
| RPO | < 1 分鐘 | FULL 模式 + 15 分鐘日誌備份 + 尾部日誌備份 |
| RTO | < 30 分鐘 | 預熱備份存儲、並行恢復、即時文件初始化、腳本化流程 |
| 備份成功率 | 100% | Agent 作業監控、校驗和、異地複製、定期演練 |