資料庫備份不只是「排程跑完」那麼簡單。你真的能安心入睡嗎?若答案是否定的,請繼續閱讀。本文整理十大關鍵議題,助您建立可靠、可驗證、可自動化的備份體系。
RAID 只能防禦實體磁碟故障,無法應對邏輯錯誤(如誤刪資料、截斷資料表、惡意破壞)。備份的本質是「時間旅行」:能將資料庫還原至任意時間點。 即便有 RAID、磁碟鏡像或叢集,仍須落實備份策略。
完整備份耗時、佔空間,無法頻繁執行,也無法還原至任意時間點。黃金組合:完整備份 + 交易記錄備份。 例如:每日完整備份 + 每 15–60 分鐘記錄備份。差異備份在高變更率環境下體積會逼近完整備份,反而失去優勢。
若備份與生產庫同一台伺服器、同一磁碟陣列,硬體災難發生時兩者同歸於盡。至少複製至另一台實體機器(甚至異地機房)。 廉價 NAS、次要伺服器、雲端儲存皆可。
不要依賴人工複製。使用 T-SQL 腳本(BACKUP DATABASE + xp_cmdshell/PowerShell/SSIS)在備份完成後自動傳送至備份伺服器,並記錄傳輸狀態。
「備份成功」不等於「能還原」。每週/每月必須在測試環境實際還原,驗證:
• 記錄鏈是否完整(無遺失 .trn 檔)
• 時間點還原是否正確
• 損毀頁面是否影響關鍵物件
若記錄備份頻率極高(如每 5 分鐘),手動還原成百上千個檔案不切實際。撰寫還原腳本(PowerShell / T-SQL 捲動還原),支援 NORECOVERY 串接,一鍵完成。
磁碟空間有限,舊備份必須清理。但清理前提是:新備份已通過 DBCC CHECKDB 驗證,且還原演練成功。建立保留原則(如:保留 7 天完整備份、30 天記錄備份),以 SQL Agent 作業自動清理,避免長假期間爆滿。
BACKUP DATABASE 預設不執行頁面校驗。若資料頁已損毀,備份照樣成功、不報錯。必須定期執行 DBCC CHECKDB(或 PHYSICAL_ONLY 加速),並在 DBCC 通過前嚴禁刪除舊備份。
SQL Server 維護計畫僅支援本機備份與 DBCC。跨機器複製、異地備份、還原驗證、自動化清理皆需自行擴充(PowerShell、SSIS、第三方工具)。
備份作業失敗、傳輸中斷、磁碟空間不足、記錄鏈斷裂——您多久能發現? 建立監控儀表板(SQL Agent 警示、自訂監控作業、第三方監控),關鍵指標:
• 最後成功備份時間
• 最後成功傳輸時間
• 記錄備份連續性檢查
• 可用磁碟空間
備份的價值不在「備份了」,而在「需要時還得回來」。從今天開始,把備份當作「可驗證的恢復能力」來經營。