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

SQL Server 2012/2014/2016/2019 建立排程作業 (SQL Agent Job) 完整圖文教學

     編輯:關於SqlServer

前置條件

  • SQL Server Agent 服務已啟動 (服務名稱:SQLSERVERAGENT)。
  • 具備 sysadmin 固定伺服器角色權限。

步驟 1:開啟 SQL Server Management Studio (SSMS)

  1. 連線至目標執行個體。
  2. 物件總管中展開 SQL Server Agent → 以滑鼠右鍵點選 作業 → 選擇 新增作業...。

展開 SQL Server Agent 選擇新增作業

步驟 2:一般頁面 - 基本資訊

  • 名稱:輸入有意義的作業名稱,如 Daily_Backup_UserDBs。
  • 類別:預設 [Uncategorized (Local)],可依需求建立自訂類別。
  • 描述:簡述作業用途。
  • ✅ 已啟用:務必勾選,否則作業不會依排程執行。

作業一般頁面

步驟 3:步驟頁面 - 定義執行動作

  1. 點選 新增... 建立步驟。
  2. 步驟名稱:如 Execute_Backup_SP。
  3. 類型:選 Transact-SQL 指令碼 (T-SQL)。
  4. 資料庫:選擇目標資料庫 (如 master 或使用者資料庫)。
  5. 命令:輸入要執行的 T-SQL,呼叫預存程序請用 EXEC dbo.usp_BackupDatabases。

新增作業步驟

進階選項 (重要)

  • 成功時:預設 Go to the next step。
  • 失敗時:建議設為 Quit the job reporting failure。
  • 重試次數 / 重試間隔:針對暫時性錯誤 (如網路抖動) 設定重試,例如 3 次、每 5 分鐘。

步驟進階選項

驗證語法

點選 剖析 按鈕,出現「命令剖析成功」對話框即表示語法正確。

剖析成功

步驟 4:排程頁面 - 設定觸發時間

  1. 點選 新增... 建立排程。
  2. 名稱:如 Daily_0200。
  3. 排程類型:週期性 (最常用)。
  4. 頻率:每日、每週、每月 依需求選擇。
  5. 每日頻率:發生一次 於 02:00:00,或 每隔 n 小時 重複。
  6. 持續時間:設定生效起迄日期。

新增排程 - 頻率設定

新增排程 - 每日頻率

步驟 5:通知、目標、進階 (選填)

  • 通知:可設定作業完成/失敗時寄送 Email、寫入事件日誌、呼叫警示。
  • 目標:多伺服器管理環境下指定目標伺服器。

步驟 6:完成與驗證

  1. 點選 確定 儲存作業。
  2. 回到物件總管,展開 作業,確認新建作業出現在清單中。

作業清單

手動測試執行

  1. 以滑鼠右鍵點選作業 → 啟動作業於步驟...。
  2. 選擇起始步驟 → 確定。

啟動作業於步驟

執行中狀態

常見問題排查

現象可能原因解決方式
作業不依排程執行SQL Server Agent 服務未啟動啟動服務並設為自動
作業歷程記錄無紀錄「已啟用」未勾選編輯作業勾選「已啟用」
步驟執行失敗權限不足 / T-SQL 錯誤檢視作業歷程記錄 → 訊息詳細內容
跨資料庫操作失敗擁有權鏈斷裂使用 EXECUTE AS / 憑證簽署 / 跨資料庫擁有權鏈

最佳實務建議

  • **命名規範**:頻率_用途_對象,如 Daily_Backup_UserDBs、Hourly_IndexMaintenance。
  • **冪等性**:預存程序內部邏輯需可重複執行不產生副作用。
  • **錯誤處理**:步驟內使用 TRY...CATCH 並寫入自訂記錄表。
  • **清理歷程**:定期執行 sp_purge_jobhistory 避免 msdb 膨脹。
  • **監控告警**:搭配 sp_help_jobactivity 或第三方監控工具 (如 Zabbix, Prometheus) 監控作業成功率。

掌握排程作業建立流程,即可將備份、索引維護、資料同步、報表產出等例行性工作自動化,釋放 DBA 人力專注於核心優化。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved