本文記錄使用 SSMS (SQL Server Management Studio) 圖形界面還原數據庫的標準流程,適用於完整備份、差異備份、事務日志備份、文件/文件組備份的還原場景。
-- 完整備份還原 (NORECOVERY 留待應用日志)
RESTORE DATABASE [TargetDB]
FROM DISK = N'D:\Backup\Full.bak'
WITH FILE = 1,
MOVE N'TargetDB' TO N'D:\Data\TargetDB.mdf',
MOVE N'TargetDB_Log' TO N'D:\Log\TargetDB_Log.ldf',
NORECOVERY, NOUNLOAD, STATS = 5;
GO
-- 差異備份還原
RESTORE DATABASE [TargetDB]
FROM DISK = N'D:\Backup\Diff.bak'
WITH FILE = 1, NORECOVERY, NOUNLOAD, STATS = 5;
GO
-- 事務日志還原 (最後一個用 RECOVERY)
RESTORE LOG [TargetDB]
FROM DISK = N'D:\Backup\Log.trn'
WITH FILE = 1, RECOVERY, NOUNLOAD, STATS = 5;
GO
| 問題 | 原因 | 解決 |
|---|---|---|
| 「備份集持有的數據庫備份與現有數據庫不同」 | 備份來源庫與目標庫名/ID 不符 | 勾選 WITH REPLACE 或改名還原 |
| 「無法獨佔鎖定數據庫」 | 有活躍連接 | 選項頁勾選「關閉現有連接」或手動 KILL/OFFLINE |
| 「日志備份 LSN 斷裂」 | 缺少中間日志備份或順序錯誤 | 補全缺失 .trn,按 LSN 遞增順序還原 |
| 「磁盤空間不足」 | 目標路徑磁盤滿 | 清理空間或指定其他路徑 (MOVE 子句) |
BACKUP LOG ... WITH NORECOVERY),將 RPO 降為 0。STATS = 1 監控進度,預估完成時間。DBCC CHECKDB、更新統計、重建索引、驗證應用連通性。