Quantcast
Viewing all articles
Browse latest Browse all 2367

TIPS-調整 SQL Agent 作業記錄筆數限制

查詢 SQL Agent 排程執行問題時,發現一個狀況:使用 Log File Viewer 查詢作業記錄(Job History Log),大部分排程的執行歷程都是空的(如下圖),只有少數幾個排程有內容:

Image may be NSFW.
Clik here to view.

研究後學到一件事-SQL Agent Job History 有預設筆數限制,預設值為所有排程作業總共 1000 筆,每項排程作業最多 100 筆。在我們的排程作業中,有幾個排程每兩分鐘或五分鐘就執行一次,很快把 1000 筆配額用光光,因而產生作業記錄只剩下高頻率排程的記錄,超過一天的記錄全部被擠掉消失無蹤。

Image may be NSFW.
Clik here to view.

因此,當 SQL Agent 的排程數量多、步驟複雜或頻率較高,為避免出事無記錄可追,就應調整設定。查到一篇不錯的文章:Check your SQL Agent history settings before it’s too late!,其中有計算公式:

每項作業最大歷程記錄筆數 = 執行次數 * (最大步驟數 + 1)
歷程記錄資料量 = 記錄筆數 * 1.5KB

還有一種務實做法是把上限拉大或取消上限,實際跑一陣子再由 msdb.dbo.sysjobhistory 實測筆數大小,進而依保留期間決定上限及要準備空間,可以估算得更精確。

Image may be NSFW.
Clik here to view.

總之,使用 SQL Agent 排程記得事先規劃記錄空間,不要等遇到事故才發現行車記錄器記憶卡被蓋掉,可就欲哭無淚了。

【延伸閱讀】

Image may be NSFW.
Clik here to view.

Viewing all articles
Browse latest Browse all 2367

Trending Articles