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

SQL Server Agent 作業排程完整指南:建立、監控與歷史記錄管理

     編輯:關於SqlServer

建立定時作業完整步驟

在 SQL Server 企業管理器中,透過 管理 → SQL Server Agent → 作業 可建立定時執行預存程序或 T-SQL 陳述式的作業。

步驟 1:新建作業基本屬性

  • 名稱:自訂作業名稱
  • 啟用:勾選啟用
  • 類別:可選擇或使用預設「未分類 (本地)」
  • 擁有者:預設為登入 SQL Server 的使用者
  • 描述:詳細說明作業用途

建立作業分類:SQL Server Agent → 作業 → 右鍵 → 所有工作 → 新增/修改/刪除

步驟 2:定義作業步驟

  • 步驟名稱:自訂
  • 類型:Transact-SQL 指令碼 (TSQL)
  • 資料庫:指定操作目標資料庫
  • 命令:直接輸入 T-SQL 或載入 .sql 檔案;執行預存程序用 exec p_procedure_name v_param1, v_param2...

可新增多個步驟,並支援插入、編輯、刪除、調整順序。

步驟 3:設定排程

  • 名稱:自訂排程名稱
  • 啟用:勾選
  • 排程類型:週期性執行
  • 編輯排程時間表:設定具體頻率(每日、每週、每月等)

若暫時不需定時執行,可取消勾選「啟用」僅保存作業。

步驟 4:通知設定

預設使用「作業失敗時寫入 Windows 應用程式系統記錄」,一般無需修改。

作業執行關鍵前提條件

  • SQLSERVERAGENT 服務必須正常運行
  • 啟動 Agent 的 NT 登入帳戶必須與 SQL Server 資料庫服務帳戶一致

作業監控與管理

  • 右鍵作業 → 檢視歷程記錄:查看執行狀態、持續時間、錯誤訊息
  • 右鍵作業 → 啟動作業 / 停止作業:手動控制執行

歷史記錄保留策略配置

發現不同作業歷程記錄筆數不一?可透過以下設定依需求保留:

配置路徑

管理 → SQL Server Agent → 右鍵 → 內容 → 作業系統

兩大關鍵參數

參數預設值說明調整建議
作業歷程記錄記錄檔最大大小 (行數)1000整個記錄檔總行數上限作業多時調大,如 100000
每個作業歷程記錄最大行數100單一作業保留行數上限每天執行 2 次,保留 1 月設為 60

兩者有相互制約關係,依實際需求調整。

伺服器重新命名後作業錯誤 14274 解決方案

問題現象

伺服器改名後,原建立的作業出現錯誤:

錯誤 14274:無法新增、更新或刪除從 MSX 伺服器發起的作業 (或其步驟或排程)

根因分析

msdb..sysjobs 表的 originating_server 欄位仍存舊伺服器名稱。

解決步驟 (24x7 系統適用,無需重啟服務)

USE msdb
GO

-- 1. 查詢舊伺服器名稱的作業
SELECT * FROM sysjobs WHERE originating_server = '舊伺服器名稱'

-- 2. 更新 originating_server 為新伺服器名稱
UPDATE sysjobs 
SET originating_server = '新伺服器名稱' 
WHERE originating_server = '舊伺服器名稱'
GO

微軟官方文件建議改回舊名再改回新名,但 24x7 系統不可行。直接更新系統表經實測有效且風險較低(建議先備份 msdb)。

最佳實務總結

  • 作業步驟盡量模組化,單一職責原則
  • 關鍵作業設定失敗通知(Email/網路訊息)
  • 定期檢視歷程記錄,建立基準效能指標
  • 排程避開備份維護時段,減少資源爭用
  • 複雜作業考慮使用 SSIS 套件替代 T-SQL 步驟
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved