Sql-Server-2016
即使未配置為發送通知,SQL 作業也會發送電子郵件
我正在使用此版本的 SQL Server。
Microsoft SQL Server 2016 (SP2-CU12) (KB4536648) - 13.0.5698.0 (X64) Feb 15 2020 01:47:30 Copyright (c) Microsoft Corporation Standard Edition (64-bit) on Windows Server 2012 R2 Standard 6.3 <X64> (Build 9600: )
這聽起來可能違反直覺,但我希望我的一些工作在失敗時不要發送電子郵件。
我有一個非常繁忙的伺服器,當它們與其他程序陷入僵局時,一些作業會失敗。我對此很好,只要大部分時間工作都能成功。
我收到了太多關於工作失敗的電子郵件,所以我給自己做了一份報告,告訴我昨天失敗的工作,以及它們失敗的次數。
SET QUOTED_IDENTIFIER ON; declare @Today date, @Yesterday varchar(8) select @Today = GETDATE() select @Yesterday = REPLACE(CONVERT(VARCHAR(10),DATEADD(day, -1, @Today),121),'-','') ;With failedJobs as ( select job_id, step_id, COUNT(*) as Occurrences from msdb.dbo.sysjobhistory where run_date>=@Yesterday and run_status=0 group by job_id, step_id ) SELECT j.name,fj.Occurrences,MAX(fj.step_id) as LastSteap from msdb.dbo.sysjobs j join failedJobs fj on fj.job_id=j.job_id group by j.name, fj.Occurrences
我的問題是,即使我取消選中 SSMS 中的通知,當工作死鎖時我仍然會收到電子郵件。
知道我需要禁用什麼嗎?我需要禁用故障安全操作員嗎?如果可能的話,我想避免這種情況。
與本文類似,您可能為錯誤 1205(死鎖)設置了單獨的警報。展開 SQL Server Agent 下的 alert 文件夾,看看有沒有。
如果不是,並且您實際上收到有關所有作業失敗的消息(如果具體死鎖,則不清楚問題),您可以通過創建一個新作業*_Test*來測試這一點,它只是做一些旨在失敗的事情,比如
SELECT 1/0
. 執行它,看看你是否以某種方式從其他東西那裡得到了工作失敗的消息。如果你這樣做了,那麼你必須去尋找那東西是什麼。