創(chuàng)建一個(gè)警報(bào)。
sp_add_alert [ @name = ] 'name'
[ , [ @message_id = ] message_id ]
[ , [ @severity = ] severity ]
[ , [ @enabled = ] enabled ]
[ , [ @delay_between_responses = ] delay_between_responses ]
[ , [ @notification_message = ] 'notification_message' ]
[ , [ @include_event_description_in = ] include_event_description_in ]
[ , [ @database_name = ] 'database' ]
[ , [ @event_description_keyword = ] 'event_description_keyword_pattern' ]
[ , { [ @job_id = ] job_id | [ @job_name = ] 'job_name'
} ]
[ , [ @raise_snmp_trap = ] raise_snmp_trap ]
[ , [ @performance_condition = ] 'performance_condition' ]
[ , [ @category_name = ] 'category' ]
[ @name = ] 'name'
警報(bào)的名稱。此名稱出現(xiàn)在為響應(yīng)警報(bào)而發(fā)送的電子郵件或呼叫消息中。此名稱必須唯一,可以包含百分比字符 (%)。name 的數(shù)據(jù)類型為 sysname,沒有默認(rèn)設(shè)置。
[ @message_id = ] message_id
用于定義警報(bào)的消息錯(cuò)誤號(hào)。(通常與 sysmessages 表中的某個(gè)錯(cuò)誤號(hào)對(duì)應(yīng)。)message_id 的數(shù)據(jù)類型為 int,默認(rèn)設(shè)置為 0。如果使用 severity 定義警報(bào),則 message_id 必須為 0 或 NULL。
說明 只有寫入 Microsoft® Windows NT® 應(yīng)用程序日志的 sysmessages 錯(cuò)誤才能導(dǎo)致發(fā)送警報(bào)。
[ @severity = ] severity
用于定義警報(bào)的嚴(yán)重級(jí)別(從 1 到 25)。只要存儲(chǔ)于 sysmessages 表中的 Microsoft SQL Server™ 消息以指定嚴(yán)重度發(fā)送到 Microsoft Windows NT 應(yīng)用程序日志中,就會(huì)導(dǎo)致發(fā)送警報(bào)。Severity 的數(shù)據(jù)類型為 int,默認(rèn)設(shè)置為 0。如果 message_id 用于定義警報(bào),severity 必須為 0。
[ @enabled = ] enabled
表明警報(bào)的當(dāng)前狀態(tài)。enabled 的數(shù)據(jù)類型為 tinyint,默認(rèn)設(shè)置為 1(啟用)。如果為 0,則不啟用警報(bào),也不激發(fā)。
[ @delay_between_responses = ] delay_between_responses
警報(bào)響應(yīng)之間的等待間隔,以秒為單位。delay_between_responses 的數(shù)據(jù)類型為 int,默認(rèn)設(shè)置為 0,這意味著響應(yīng)之間不等待(每次出現(xiàn)警報(bào)都生成響應(yīng))。響應(yīng)可同時(shí)為下列兩種形式,或其中的一種:
例如,通過設(shè)置該值,當(dāng)警報(bào)在短時(shí)間內(nèi)重復(fù)產(chǎn)生時(shí),就有可能避免發(fā)送重復(fù)的電子郵件。
[ @notification_message = ] 'notification_message'
作為電子郵件、net send 或呼叫提示的一部分發(fā)送給操作員的可選附加消息。notification_message 的數(shù)據(jù)類型為 nvarchar(512),默認(rèn)設(shè)置為 NULL。指定 notification_message 有助于添加特殊說明,例如補(bǔ)救過程。
[ @include_event_description_in = ] include_event_description_in
表示 SQL Server 錯(cuò)誤描述是否應(yīng)包含在通知消息中。include_event_description_in 的數(shù)據(jù)類型為 tinyint,默認(rèn)設(shè)置為 5(電子郵件和 net send),并且,它可以使下面的一個(gè)或多個(gè)值與 OR 邏輯運(yùn)算符結(jié)合使用。
值 | 描述 |
---|---|
0(默認(rèn)值) | 無 |
1 | 電子郵件 |
2 | 呼叫程序 |
4 | net send |
[ @database_name = ] 'database'
必須在其中出現(xiàn)錯(cuò)誤才能激發(fā)警報(bào)的數(shù)據(jù)庫。如果沒提供database,則無論何處發(fā)生錯(cuò)誤,警報(bào)都要啟動(dòng)。database 的數(shù)據(jù)類型為 sysname,默認(rèn)設(shè)置為 NULL。
[ @event_description_keyword = ] 'event_description_keyword_pattern'
字符序列,對(duì) SQL Server 錯(cuò)誤的描述必須與此類似。可使用 Transact-SQL LIKE 表達(dá)式模式匹配字符。event_description_keyword_pattern 的數(shù)據(jù)類型為 nvarchar(100),默認(rèn)設(shè)置為 NULL。該參數(shù)在篩選對(duì)象名稱(例如,%customer_table%)時(shí)很有用。
[ @job_id = ] job_id
響應(yīng)該警報(bào)運(yùn)行的作業(yè)的作業(yè)標(biāo)識(shí)號(hào)。job_id 的數(shù)據(jù)類型為 uniqueidentifier,默認(rèn)設(shè)置為 NULL。
[ @job_name = ] 'job_name'
響應(yīng)該警報(bào)所執(zhí)行的作業(yè)名稱。job_name 的數(shù)據(jù)類型為 sysname,默認(rèn)設(shè)置為 NULL。
說明 必須指定 job_id 或 job_name,但不能兩個(gè)都指定。
[ @raise_snmp_trap = ] raise_snmp_trap
SQL Server 7.0 版中沒有實(shí)現(xiàn)。
[ @performance_condition = ] 'performance_condition'
以格式 'item comparator value' 表達(dá)的一個(gè)值。performance_condition 的數(shù)據(jù)類型為 nvarchar(512),默認(rèn)設(shè)置為 NULL,由下列元素組成。
格式元素 | 描述 |
---|---|
Item | 性能對(duì)象,性能計(jì)數(shù)器或計(jì)數(shù)器的命名實(shí)例 |
Comparator | 下列運(yùn)算符之一:>、< 或 = |
Value | 計(jì)數(shù)器的數(shù)值 |
說明 性能條件警報(bào)只供最前面的 99 個(gè)數(shù)據(jù)庫使用。接在最前面的 99 個(gè)數(shù)據(jù)庫之后創(chuàng)建的任何數(shù)據(jù)庫都不會(huì)包括在 sysperfinfo 系統(tǒng)表中,并且,使用 sp_add_alert 過程會(huì)返回一個(gè)錯(cuò)誤。
[ @category_name = ] 'category'
警報(bào)分類的名稱。category 的數(shù)據(jù)類型為 sysname,默認(rèn)設(shè)置為 NULL。
0(成功)或 1(失敗)
無
sp_add_alert 必須從 msdb 數(shù)據(jù)庫運(yùn)行。
在下列情況下,SQL Server 和 SQL Server 應(yīng)用程序產(chǎn)生的錯(cuò)誤/消息被發(fā)送到 Windows NT 應(yīng)用程序日志,因此能產(chǎn)生警報(bào):
SQL Server 企業(yè)管理器提供了一種易用的圖形界面來管理整個(gè)警報(bào)系統(tǒng),這也是配置基本結(jié)構(gòu)的推薦方式。
如果一個(gè)警報(bào)沒有正常工作,請(qǐng)檢查:
只有 sysadmin 固定服務(wù)器角色的成員才能執(zhí)行 sp_add_alert。
下面的示例添加一個(gè)警報(bào)(測(cè)試警報(bào)),該警報(bào)在啟動(dòng)時(shí)喚醒調(diào)用備份客戶數(shù)據(jù)庫作業(yè)。
說明 此示例假設(shè)消息 55001 和備份用戶數(shù)據(jù)庫作業(yè)已經(jīng)存在。示例只是出于說明性目的而顯示。
USE msdb
EXEC sp_add_alert @name = 'Test Alert', @message_id = 55001,
@severity = 0,
@notification_message = 'Error 55001 has occurred. The database will
be backed up...',
@job_name = 'Back up the Customer Database'
相關(guān)文章