sp_dbmmonitorchangealert (Transact-SQL)

适用于SQL Server

添加或更改指定镜像性能指标的警告阈值。

Transact-SQL 语法约定

sp_dbmmonitorchangealert
    [ @database_name = ] N'database_name'
    , [ @alert_id = ] alert_id
    , [ @threshold = ] threshold
    [ , [ @enabled = ] enabled ]
[ ; ]

参数

[ @database_name = ] N'database_name'

指定将要添加或更改其指定警告阈值的数据库。 @database_name为 sysname,无默认值。

[ @alert_id = ] alert_id

整数值,用于标识要添加或更改的警告。 @alert_id为 int,并且必须是以下值之一:

性能指标 警告阈值
1 最早的未发送事务 指定在主体服务器实例上生成警告之前,发送队列中可以累积的事务的分钟数。 此警告有助于衡量在时间方面数据丢失的可能性,并且它可能与高性能模式相关。 但是,当镜像因伙伴断开连接而暂停或挂起时,该警告也适用于高安全模式。
2 未发送日志 指定未发送日志达到多少 KB 后,在主体服务器实例上生成一个警告。 此警告有助于衡量在 KB 方面数据丢失的可能性,并且它可以与高性能模式相关。 但是,当镜像因伙伴断开连接而暂停或挂起时,该警告也适用于高安全模式。
3 未还原日志 指定未还原日志达到多少 KB 后,会在镜像服务器实例上生成一个警告。 此警告有助于测量 故障转移时间。 故障转移时间主要包括前镜像服务器需要在其重做队列中前滚剩余的任何日志的时间,以及短暂的额外时间。
4 镜像提交开销 指定在主体服务器上生成警告之前,每个事务可允许的平均延迟的毫秒数。 此延迟是主体服务器实例等待镜像服务器实例将事务日志记录写入重做队列时,所发生的开销量。 该值只适用于高安全模式。
5 保留期 用于控制数据库镜像状态表中的行保留多长时间的元数据。

有关与警告对应的事件 ID 的信息,请参阅对镜像性能指标使用警告阈值和警报(SQL Server)。

[ @threshold = ] 阈值

警告的阈值。 @threshold为 int,无默认值。 如果在更新镜像状态时返回大于此阈值的值,则会在 Windows 事件日志中输入项。 此值表示 KB、分钟或毫秒,具体取决于性能指标。

注意

若要查看当前值,请运行 sp_dbmmonitorresults 存储过程。

[ @enabled = ] enabled

指定是否启用警告。 @enabled,默认值为 1. 始终启用保持期。

  • 0 = 警告已禁用。
  • 1 = 已启用警告。

返回代码值

无。

结果集

无。

权限

需要 sysadmin 固定服务器角色的成员身份,或直接在此存储过程上执行权限。

示例

以下示例为 AdventureWorks2022 数据库的每个性能指标和保持期设置阈值。 下表显示该示例中使用的值。

alert_id 性能指标 警告阈值 已启用警告?
1 最早的未发送事务 30 分钟
2 未发送日志 10,000 KB
3 未还原日志 10,000 KB
4 镜像提交开销 1,000 毫秒
5 保留期 八小时
EXEC sp_dbmmonitorchangealert AdventureWorks2022, 1, 30, 1;
EXEC sp_dbmmonitorchangealert AdventureWorks2022, 2, 10000, 1;
EXEC sp_dbmmonitorchangealert AdventureWorks2022, 3, 10000, 1;
EXEC sp_dbmmonitorchangealert AdventureWorks2022, 4, 1000, 0;
EXEC sp_dbmmonitorchangealert AdventureWorks2022, 5, 8, 1;