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

SQL Server 自動備份無法刪除過期檔案的排查案例

     編輯:PHP 相關知識

資料庫維護計畫每天備份並嘗試刪除 5 天前的舊備份檔,但作業失敗,錯誤訊息指向 sqlmaint.exe。經排查發現,原因竟是其中一個目標資料庫處於「離線」狀態,導致備份與清理作業連鎖失敗。

錯誤現象

  • Windows 事件檢視器:SQL Server Scheduled Job 狀態「失敗」
  • SQL Server 錯誤日誌:sqlmaint.exe failed [SQLSTATE 42000]
  • 微軟 KB 文件(288577、303292)說明模糊,未直接點出根因

根因分析

維護計畫嘗試備份所有指定資料庫,但其中一個資料庫被設為 OFFLINE(離線)。SQL Server 無法備份離線資料庫,導致整個維護作業中止,連帶使「刪除過期備份」步驟也未執行。

解決方案

  1. 在 SSMS 中找到該離線資料庫
  2. 右鍵選擇「工作」→「上線」將其恢復上線狀態
  3. 重新執行維護計畫或等待下一排程自動執行

預防建議

  • 定期檢查維護計畫包含的資料庫狀態,確保皆為 ONLINE
  • 在維護計畫中啟用「忽略無法存取的資料庫」選項(若支援)
  • 設定作業失敗時發送郵件通知,縮短發現時間
  • 備份磁碟空間監控獨立於維護計畫,避免單點故障導致磁碟寫滿
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved