更新时间:2024-09-06 GMT+08:00
分享

创建警报

操作场景

使用存储过程创建一个警报。

前提条件

成功连接RDS for SQL Server实例。通过SQL Server客户端连接目标实例,具体操作请参见通过公网连接RDS for SQL Server实例

操作步骤

执行以下命令,创建一个警报

EXEC [msdb].[dbo].[rds_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',

@wmi_namespace='wmi_namespace',

@wmi_query='wmi_query';

表1 参数说明

参数

说明

'name'

警报名称。该名称显示在为响应警报而发送的电子邮件或寻呼消息中。它必须唯一,并且可以包含百分号( % )字符。名称为sysname,无默认值。

message_id

定义警报的消息错误号。(它通常与sysmessages表中的错误号相对应。)“message_id”的值为“int”,默认值为0。如果使用严重性来定义警报,则“message_id”必须为“0”“NULL”

severity

定义警报的严重级别(从1到25)。 如果sysmessages表中存储的任何SQL Server消息都发送到带有指定严重性的Microsoft Windows应用程序日志,则会导致发送警报。严重性为int,默认值为0。如果使用message_id来定义警报,则严重性必须为0。

enabled

指示警报的当前状态。enabled为tinyint,默认值为1(已启用)。如果为0,则不启用警报,也不触发警报。

delay_between_responses

警报响应之间的等待时间(以秒为单位)。“delay_between_responses”的值为“int”,默认值为0,这意味着响应之间不等待(每次出现警报时都生成响应)。响应可以为下面的一种或两种形式:

  • 通过电子邮件或寻呼发送的一个或多个通知。
  • 要执行的作业。

例如,当警报在短时间内重复产生时,通过设置该值就有可能避免发送重复的电子邮件。

'notification_message'

作为电子邮件、net send或寻呼通知的一部分发送给操作员的可选附加消息。“notification_message”值为“nvarchar(512)”,默认值为NULL。指定notification_message可用于添加特别注释,如补救过程。

include_event_description_in

include_event_description_in是否应将SQL Server错误的说明作为通知消息的一部分包括在内。include_event_description_in为tinyint,默认值为5(电子邮件和网络发送),并且可以将这些值中的一个或多个与or逻辑运算符组合在一起。

'database'

必须发生错误才能触发警报的数据库。如果未提供数据库,则会触发警报,而不考虑错误发生的位置。数据库为sysname。不允许用方括号 ([ ]) 将名称括起来。默认值为NULL。

'event_description_keyword_pattern'

SQL Server错误说明所需的字符序列。可以使用 Transact-SQL LIKE表达式模式匹配字符。“event_description_keyword_pattern”的值为“nvarchar(100)” ,默认值为NULL。 此参数适用于筛选对象名称(例如,% customer_table% )。

job_id

为了响应此警报而运行的作业的标识号。“job_id”的值为“uniqueidentifier”,默认值为NULL。

'job_name'

为响应此警报而执行的作业的名称。“job_name”的值为“sysname”,默认值为NULL。

raise_snmp_trap

在版本7.0 SQL Server中未实现。“raise_snmp_trap”的值为“tinyint”,默认值为0。

'performance_condition'

以 "itemcomparatorvalue" 格式表示的值。performance_condition的默认值为nvarchar(512),默认值为NULL,其中包含这些元素。

  • 格式元素为项,表示性能对象、性能计数器或计数器的命名实例。
  • 格式元素为Comparator,表示以下运算符之一: >、< 或 =。
  • 格式元素为Value,表示计数器的数值。

'category'

警报类别的名称。category的类型为sysname,默认值为NULL。

'wmi_namespace'

要查询事件的WMI命名空间。wmi_namespace的值为sysname,默认值为NULL。只支持本地服务器上的命名空间。

'wmi_query'

指定警报的WMI事件的查询。wmi_query的值为nvarchar(512),默认值为NULL。

执行成功后,系统将会如下提示:

Commands completed successfully.

示例

回显如下:

相关文档