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

SQL Server 備份與還原完整操作指南:完整備份、還原覆蓋、收縮日誌、維護計畫自動化

     編輯:關於SqlServer

資料庫備份是災難復原基石。本文提供 SSMS 圖形介面完整操作步驟:完整備份、還原至新資料庫 (含檔案重新定位)、收縮日誌檔、維護計畫自動排程備份,並說明關鍵選項與常見錯誤排查。

一、完整備份 (圖形介面)

  1. SSMS 物件總管 → 展開伺服器 → 「資料庫」→ 右鍵目標資料庫 → 「工作」→ 「備份」。
  2. 備份類型:完整。
  3. 目的地:磁碟 → 「移除」既有檔案 → 「加入」指定路徑與檔名 (如 D:\Backup\MyDB_Full_20240115.bak)。
  4. 「選項」頁籤:
    • 備份集:名稱、描述、過期日。
    • 壓縮:壓縮備份 (SQL 2008 Enterprise/Standard R2+),節省 60-80% 空間。
    • 校驗:備份完成前驗證、執行檢查碼。
  5. 確定執行,進度條完成即成功。

二、還原資料庫 (覆蓋現有/新建)

  1. 建立新資料庫 (或使用現有):右鍵「資料庫」→ 「新增資料庫」→ 命名 (如 MyDB_Restore)。
  2. 右鍵目標資料庫 → 「工作」→ 「還原」→ 「資料庫」。
  3. 來源:從裝置 → 選擇備份檔 (.bak) → 確定。
  4. 「一般」頁:勾選欲還原的備份集 (通常最新完整備份)。
  5. 關鍵:「檔案」頁 — 重新定位資料/記錄檔
    • 邏輯檔名保持不變 (如 MyDB_Data, MyDB_Log)。
    • 實體檔名指定至目標磁碟路徑 (如 D:\SQLData\MyDB_Restore.mdf, D:\SQLLog\MyDB_Restore_Log.ldf)。
    • 目錄必須預先存在,否則報錯。
  6. 「選項」頁:
    • 還原選項:覆蓋現有資料庫 (WITH REPLACE)。
    • 復原狀態:RESTORE WITH RECOVERY (資料庫可用、不可再還原記錄備份)。
  7. 確定執行,常見錯誤:路徑不存在、檔名衝突、磁碟空間不足、資料庫正在使用 (關閉所有查詢視窗/停止服務再試)。

三、收縮資料庫 (主要針對日誌檔)

  1. 右鍵資料庫 → 「屬性」→ 「選項」→ 復原模式改為 簡單。
  2. 右鍵資料庫 → 「工作」→ 「收縮」→ 「檔案」→ 檔案類型選 記錄 → 確定。
  3. 完成後,將復原模式改回 完整 (生產環境需配合記錄備份)。

⚠️ 收縮資料檔 (MDF) 易產生索引碎片,非必要不建議。日誌收縮應定期執行,防止無限增長。

四、維護計畫自動排程備份

  1. SSMS → 「管理」→ 「維護計畫」→ 右鍵「維護計畫精靈」。
  2. 命名 (如 DailyFullBackup) → 排程:每日 02:00。
  3. 選擇任務:備份資料庫 (完整)、備份資料庫 (交易記錄) (每 1 小時)、清除維護作業 (保留 7 天備份檔)、檢查資料庫完整性、重建索引、更新統計資料。
  4. 備份任務設定:壓縮、校驗、網路共享路徑 (需 SQL 服務帳號寫入權限)。
  5. 完成精靈,自動建立 Agent 作業,確保 Agent 服務啟動。

五、關鍵選項對照表

選項用途建議
COMPRESSION備份壓縮生產環境啟用
CHECKSUM頁面檢查碼驗證啟用
STATS = 10進度顯示間隔10% 或 5%
WITH REPLACE還原覆蓋現有資料庫還原至新名稱可不勾選
RECOVERY / NORECOVERY還原後狀態最後一組備份用 RECOVERY

六、常見錯誤速查

錯誤現象原因解決
還原失敗:檔案存取被拒服務帳號無資料夾權限授與讀寫權限
還原失敗:資料庫正在使用有作用中連線ALTER DATABASE SET SINGLE_USER WITH ROLLBACK IMMEDIATE
備份檔過大未啟用壓縮、日誌未截斷啟用壓縮、定期記錄備份
維護計畫不執行Agent 服務未啟動設為自動並啟動
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved