Sql-Server-2016

即使未配置為發送通知,SQL 作業也會發送電子郵件

  • June 17, 2021

我正在使用此版本的 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. 執行它,看看你是否以某種方式從其他東西那裡得到了工作失敗的消息。如果你這樣做了,那麼你必須去尋找那東西是什麼。

引用自:https://dba.stackexchange.com/questions/294443