最近突然發(fā)現(xiàn)我們部署在數(shù)據(jù)庫上面的告警(Alert),當錯誤日志里面出現(xiàn)錯誤時,并不是每個錯誤日志都會發(fā)送郵件出來。如下所示,設(shè)置了告警“SQL Server Severity Event 14”
USE [msdb]
GO
IF NOT EXISTS(SELECT 1 FROM msdb.dbo.syscategories WHERE NAME='DBA_MONITORING' AND category_class=2)
BEGIN
EXEC msdb.dbo.sp_add_category
@class=N'ALERT',
@type=N'NONE',
@name=N'DBA_MONITORING' ;
END
GO
IF EXISTS(SELECT name FROM msdb.dbo.sysalerts WHERE name= N'SQL Server Severity Event 14')
EXEC msdb.dbo.sp_delete_alert @name=N'SQL Server Severity Event 14'
GO
EXEC msdb.dbo.sp_add_alert @name=N'SQL Server Severity Event 14',
@message_id=0,
@severity=14,
@enabled=1,
@delay_between_responses=60,
@include_event_description_in=1,
@category_name=N'DBA_MONITORING',
@job_id=N'00000000-0000-0000-0000-000000000000'
GO
EXEC msdb.dbo.sp_add_notification @alert_name=N'SQL Server Severity Event 14', @operator_name=N'YourSQLDba_Operator', @notification_method = 1
GO
然后我嘗試用sa登錄(sa已經(jīng)被禁用)了三次,但是我只收到了一封郵件。特意查看了一下sp_add_alert的官方文檔,才知道出現(xiàn)這個原因,是因為參數(shù)@delay_between_responses的值設(shè)置緣故,通過設(shè)置該值,可以防止在在短時間內(nèi)重復發(fā)送一些不需要的電子郵件。如上所示,一分鐘內(nèi),即使錯誤日志里面出現(xiàn)了大量類似的錯誤,也只會發(fā)送一封告警郵件。其實只是為了減少發(fā)送告警的頻率,如果你想當錯誤日志里出現(xiàn)這個級別的告警時,都必須發(fā)送告警郵件,可以將其值設(shè)置為0。但是有時候,如果設(shè)置為0,你會收到鋪天蓋地的郵件。其實這個小問題,只是因為以前沒有特意留意這個參數(shù)而已。存粹屬于沒有徹底了解這些功能罷了。
警報響應(yīng)之間的等待時間 (以秒為單位)。delay_between_responsesis int, 默認值為 0, 這意味著在響應(yīng)之間沒有等待 (每次出現(xiàn)警報都會生成響應(yīng))。響應(yīng)可以是在以下兩種形式中的一個, 或者都是:
通過電子郵件或?qū)ず魴C發(fā)送的一個或多個通知。
要執(zhí)行的作業(yè)。
通過設(shè)置此值, 可以防止例如, 在短時間內(nèi)重復發(fā)生警報時發(fā)送不需要的電子郵件。
參考資料:
https://docs.microsoft.com/zh-cn/sql/relational-databases/system-stored-procedures/sp-add-alert-transact-sql
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
您可能感興趣的文章:- 安裝SQL server 2005 出現(xiàn)警告 32位ASP.NET已經(jīng)注冊,需要注冊64位的解決方法
- Sql server 2005安裝時ASP.Net版本注冊要求警告的解決方法
- SQLSERVERAGENT警告:事件 ID: 312
- 安裝SqlServer2005時版本變更檢查 (警告)
- win2008下安裝SQL SERVER 2005出現(xiàn)IIS功能要求 警告解決方案
- SQL Server 版本變更檢查 警告