SQL Server 2008:镜像:数据库级阈值警报

SQL Server 2008:镜像:数据库级阈值警报

我迄今为止完成的测试似乎表明,需要为<all databases>数据库名称而不是单个命名数据库定义以下阈值警报:

  • 未发送日志阈值(错误消息 32042)
  • 最早未发送交易阈值(错误消息 32040)
  • 未恢复的日志阈值(错误消息 32043)
  • 镜像提交开销阈值(错误消息 32044)

这与微软提供的文档形成了对比:

我已确认错误编号 32040、32042、32043 和 32044 已写入 SQL Server 日志,如下所示sp_altermessage

/* Unsent Log Threshold (http://msdn.microsoft.com/en-us/library/aa337325.aspx) */
sp_altermessage 32042, 'WITH_LOG', TRUE

如果你成功了,请描述一下你采取的行动导致单个数据库出现阈值警报

谢谢。

答案1

根据您的列表,我假设当您选择所有数据库时会触发警报,但选择特定数据库时不会触发警报。

数据库监控SQL Agent作业的流程如下:

  1. 定期执行 sys.dbmonitorupdate(例如每分钟一次)。此调用执行以下操作:
  2. 从 sys.dm_os_performance_counters 中检索值
  3. 插入 msdb.dbo.dbm_monitor_data
  4. 当达到阈值时,会出现错误
  5. 至于警报,它可能不会触发,因为 sp_dbmmonitorupdate 处于 msdb 上下文中。因此,您不会针对单个数据库触发警报,但会针对所有数据库触发警报。

我不知道这是普遍现象还是后来被修复了 - 但我确实看到了这种情况。因此,如果这描述了您的情况并且不想使用“所有数据库” - 那么您需要编写自己的检测程序和作业来解决这个问题(也可能有其他解决方案 - 但您没有选择更改上述系统存储过程并仍然保持支持)。

相关内容