資料庫維護計畫每天備份並嘗試刪除 5 天前的舊備份檔,但作業失敗,錯誤訊息指向 sqlmaint.exe。經排查發現,原因竟是其中一個目標資料庫處於「離線」狀態,導致備份與清理作業連鎖失敗。
錯誤現象
- Windows 事件檢視器:SQL Server Scheduled Job 狀態「失敗」
- SQL Server 錯誤日誌:
sqlmaint.exe failed [SQLSTATE 42000]
- 微軟 KB 文件(288577、303292)說明模糊,未直接點出根因
根因分析
維護計畫嘗試備份所有指定資料庫,但其中一個資料庫被設為 OFFLINE(離線)。SQL Server 無法備份離線資料庫,導致整個維護作業中止,連帶使「刪除過期備份」步驟也未執行。
解決方案
- 在 SSMS 中找到該離線資料庫
- 右鍵選擇「工作」→「上線」將其恢復上線狀態
- 重新執行維護計畫或等待下一排程自動執行
預防建議
- 定期檢查維護計畫包含的資料庫狀態,確保皆為 ONLINE
- 在維護計畫中啟用「忽略無法存取的資料庫」選項(若支援)
- 設定作業失敗時發送郵件通知,縮短發現時間
- 備份磁碟空間監控獨立於維護計畫,避免單點故障導致磁碟寫滿