資料庫備份是災難復原基石。本文提供 SSMS 圖形介面完整操作步驟:完整備份、還原至新資料庫 (含檔案重新定位)、收縮日誌檔、維護計畫自動排程備份,並說明關鍵選項與常見錯誤排查。
一、完整備份 (圖形介面)
- SSMS 物件總管 → 展開伺服器 → 「資料庫」→ 右鍵目標資料庫 → 「工作」→ 「備份」。
- 備份類型:完整。
- 目的地:磁碟 → 「移除」既有檔案 → 「加入」指定路徑與檔名 (如
D:\Backup\MyDB_Full_20240115.bak)。
- 「選項」頁籤:
- 備份集:名稱、描述、過期日。
- 壓縮:壓縮備份 (SQL 2008 Enterprise/Standard R2+),節省 60-80% 空間。
- 校驗:備份完成前驗證、執行檢查碼。
- 確定執行,進度條完成即成功。
二、還原資料庫 (覆蓋現有/新建)
- 建立新資料庫 (或使用現有):右鍵「資料庫」→ 「新增資料庫」→ 命名 (如
MyDB_Restore)。
- 右鍵目標資料庫 → 「工作」→ 「還原」→ 「資料庫」。
- 來源:從裝置 → 選擇備份檔 (.bak) → 確定。
- 「一般」頁:勾選欲還原的備份集 (通常最新完整備份)。
- 關鍵:「檔案」頁 — 重新定位資料/記錄檔
- 邏輯檔名保持不變 (如
MyDB_Data, MyDB_Log)。
- 實體檔名指定至目標磁碟路徑 (如
D:\SQLData\MyDB_Restore.mdf, D:\SQLLog\MyDB_Restore_Log.ldf)。
- 目錄必須預先存在,否則報錯。
- 「選項」頁:
- 還原選項:覆蓋現有資料庫 (WITH REPLACE)。
- 復原狀態:RESTORE WITH RECOVERY (資料庫可用、不可再還原記錄備份)。
- 確定執行,常見錯誤:路徑不存在、檔名衝突、磁碟空間不足、資料庫正在使用 (關閉所有查詢視窗/停止服務再試)。
三、收縮資料庫 (主要針對日誌檔)
- 右鍵資料庫 → 「屬性」→ 「選項」→ 復原模式改為 簡單。
- 右鍵資料庫 → 「工作」→ 「收縮」→ 「檔案」→ 檔案類型選 記錄 → 確定。
- 完成後,將復原模式改回 完整 (生產環境需配合記錄備份)。
⚠️ 收縮資料檔 (MDF) 易產生索引碎片,非必要不建議。日誌收縮應定期執行,防止無限增長。
四、維護計畫自動排程備份
- SSMS → 「管理」→ 「維護計畫」→ 右鍵「維護計畫精靈」。
- 命名 (如
DailyFullBackup) → 排程:每日 02:00。
- 選擇任務:備份資料庫 (完整)、備份資料庫 (交易記錄) (每 1 小時)、清除維護作業 (保留 7 天備份檔)、檢查資料庫完整性、重建索引、更新統計資料。
- 備份任務設定:壓縮、校驗、網路共享路徑 (需 SQL 服務帳號寫入權限)。
- 完成精靈,自動建立 Agent 作業,確保 Agent 服務啟動。
五、關鍵選項對照表
| 選項 | 用途 | 建議 |
| COMPRESSION | 備份壓縮 | 生產環境啟用 |
| CHECKSUM | 頁面檢查碼驗證 | 啟用 |
| STATS = 10 | 進度顯示間隔 | 10% 或 5% |
| WITH REPLACE | 還原覆蓋現有資料庫 | 還原至新名稱可不勾選 |
| RECOVERY / NORECOVERY | 還原後狀態 | 最後一組備份用 RECOVERY |
六、常見錯誤速查
| 錯誤現象 | 原因 | 解決 |
| 還原失敗:檔案存取被拒 | 服務帳號無資料夾權限 | 授與讀寫權限 |
| 還原失敗:資料庫正在使用 | 有作用中連線 | ALTER DATABASE SET SINGLE_USER WITH ROLLBACK IMMEDIATE |
| 備份檔過大 | 未啟用壓縮、日誌未截斷 | 啟用壓縮、定期記錄備份 |
| 維護計畫不執行 | Agent 服務未啟動 | 設為自動並啟動 |