首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> SQL Server 2008

SQL Server 2008 備份與還原完整指南:四種備份類型、三種復原模式、T-SQL 腳本與策略選型

     編輯:SQL Server 2008

四大備份類型比較

類型內容適用場景優點缺點
完整備份所有資料頁 + 部分記錄所有資料庫、基準備份還原最簡單、單一檔案耗時、佔空間大、不可中斷
差異備份自上次完整備份以來變更的區塊每日/每小時補充備份快、檔案小還原需先還原完整再套用最新差異,累積越久越大
記錄備份交易記錄區間 (LSN 範圍)完整/大量記錄模式、時間點還原零資料遺失、可還原至任意秒需完整備份為基礎、記錄檔會持續增長
檔案/檔案群組備份指定檔案群組/檔案超大型資料庫 (TB 級)、分片備份平行備份、單獨還原損毀檔案管理複雜、需完整記錄備份配合

三種復原模式與備份組合

復原模式支援備份記錄截斷機制資料遺失風險典型應用
簡單完整、差異Checkpoint 自動截斷自上次備份以來所有變更開發/測試、唯讀、資料可重建
完整完整、差異、記錄記錄備份後截斷無 (可還原至任意時間點)核心生產系統
大量記錄完整、差異、記錄 (大量作業最小記錄)記錄備份後截斷極低 (大量作業無法時間點還原)大量匯入/索引重建期間暫時切換

核心 T-SQL 腳本範本

1. 完整備份 (壓縮、驗證、統計)

BACKUP DATABASE [MyDB]
TO DISK = N'D:\Backup\MyDB_Full_20240115.bak'
WITH INIT, COMPRESSION, CHECKSUM, STATS = 10;

2. 差異備份

BACKUP DATABASE [MyDB]
TO DISK = N'D:\Backup\MyDB_Diff_20240115_1400.bak'
WITH DIFFERENTIAL, COMPRESSION, STATS = 10;

3. 記錄備份

BACKUP LOG [MyDB]
TO DISK = N'D:\Backup\MyDB_Log_20240115_1430.trn'
WITH COMPRESSION, STATS = 10;

4. 還原至時間點 (完整 + 差異 + 記錄)

RESTORE DATABASE [MyDB]
FROM DISK = N'D:\Backup\MyDB_Full_20240115.bak'
WITH NORECOVERY, REPLACE, STATS = 10;

RESTORE DATABASE [MyDB]
FROM DISK = N'D:\Backup\MyDB_Diff_20240115_1400.bak'
WITH NORECOVERY, STATS = 10;

RESTORE LOG [MyDB]
FROM DISK = N'D:\Backup\MyDB_Log_20240115_1430.trn'
WITH STOPAT = N'2024-01-15 14:25:00', RECOVERY, STATS = 10;

自動化策略建議 (維護計畫 / Agent Job)

  • 每日 02:00 完整備份。
  • 每 4 小時 差異備份 (06:00, 10:00, 14:00, 18:00, 22:00)。
  • 每 15 分鐘 記錄備份 (完整模式)。
  • 備份完成後執行 `RESTORE VERIFYONLY` 驗證。
  • 異地複製:網路分享 / Azure Blob / AWS S3。
  • 保留策略:完整備份 30 天、差異 7 天、記錄 3 天。
  • 每季演練完整還原演練,記錄 RTO/RPO。

常見誤區

  1. 簡單模式下嘗試記錄備份 → 錯誤。
  2. 只做完整備份,無差異/記錄 → RPO = 24 小時。
  3. 記錄備份未定期執行 → 記錄檔暴漲填滿磁碟。
  4. 備份檔放在同一顆實體磁碟 → 單點故障。
  5. 從未驗證備份可還原性 → 災難發生時才發現備份損壞。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved