SQL Server数据库告警改进

考虑对生产环境所有SQL Server服务器开启数据库邮件功能,它是数据库自带的邮件发送功能,通过配置到邮件服务器的访问,及时接收SQL Server事件告警。

SQL Server警报是基于引擎的事件通知机制发送告警,当事件发生时出发告警通知。

现阶段,需要收集如下两类SQL Server事件告警:

  • Severity - 事件严重性级别13到25告警;
  • Error Number - 包括操作系统错误、IO错误、内存错误、AlwaysOn状态相关告警。

策略调整

我们考虑将这些需要监控的告警整合到应用程序日志,接入ELK日志分析系统。

我们了解到,在下列情况下,SQL Server 和 SQL Server 应用程序产生的错误/消息将发送到Windows 应用程序日志:

  • 严重级别为 19 或更高的 sys.messages 错误
  • 任何使用 WITH LOG 语法调用的 RAISERROR 语句
  • 所有使用 sp_altermessage 修改或创建的 sys.messages 错误
  • 所有使用 xp_logevent 记录的日志事件

    引用自 https://docs.microsoft.com/en-us/sql/ssms/agent/create-an-alert-using-severity-level“Severity levels from 19 through 25 send a SQL Server message to the Microsoft Windows application log and trigger an alert. Events with severity levels less than 19 will trigger alerts only if you have used sp_altermessage, RAISERROR WITH LOG, or xp_logevent to force them to be written to the Windows application log. ”

针对上文提到、我们需要监控的Severity和Error Number告警,我们需要做如下变更调整:

  • Severity - 经过讨论,不记录严重级别19以下的用户级别的错误,19级别及以上的Fatal Error默认记录到应用程序日志,我们不用做任何更改。
  • Error Number - 需要监控的错误,根据附件的查询结果,部分错误号的is_event_logged字段为0,表示没有记录到应用程序日志。可以通过上面的sp_altermessage修改该字段为1达到记录到应用程序日志的目的。
时间: 2024-11-11 16:25:51

SQL Server数据库告警改进的相关文章

SQL Server数据库配置改进

针对SQL Server数据库的配置,遵从最佳实践,有如下几项,看能否修改生产环境实例配置. 以下为调整方法和依据: 启动账号内存锁定 保证SQL Server提交内存不会被交换或空间被操作系统收缩. The SQL Server 64-bit version uses "locked pages" to prevent the process working set (committed memory) from being paged out or trimmed by the o

6. SQL Server数据库监控 - 如何告警

原文:6. SQL Server数据库监控 - 如何告警 常用的告警方式大致有:短信.邮件.应用程序 (beep提示,图标提示,升窗提示等),可是不能一直坐在电脑前看着应用程序,或者用脚本部署监控,根本没有程序界面,所以通常用短信.邮件两种方式告警. 一. 告警方式 1. 短信 用程序发短信的方式一般有这两种: (1) 硬件 需要1张SIM卡,1个SIM卡读卡设备 (比如:短信猫),然后把设备连接到电脑,应用程序根据设备的软件接口,传参并发送短信.记得把SIM卡设备放在信号好,无干扰的地方: 如

监控SQL Server数据库异常镜像状态发告警邮件

监控SQL Server数据库异常镜像状态发告警邮件 在部署了数据库镜像之后,我们需要监控参与镜像的主数据库和镜像数据库的状态,如果状态异常,发送告警邮件.那么这个脚本需要在主和镜像服务器上都运行. 目录视图sys.database_mirroring对SQL Server实例上的每个数据库都包含一行(包括系统数据库和未配置镜像的数据库),当然也包含所有镜像数据库的状态信息.我们可以查询该目录视图,对于每个异常状态的镜像数据库触发告警邮件.笔者的环境配置的是异步镜像,依赖于手动故障转移. 前提条

SQL Server数据库镜像关键性能计数器

SQL Server数据库镜像关键性能计数器 监视数据库镜像基本有以下5种方法: 1. 配置数据库镜像监视器.设置告警阈值. 2. 配置WMI EVENT ALERT,配置镜像状态修改后的动作或告警. 3. 使用系统监视器查看关键性能计数器. 4. 部署作业监控异常镜像状态,发送告警. 5. 使用sp_dbmmonitorresults获取镜像数据. 当然,使用扩展事件和SQL Server Profiler也能监控到数据库事件中的数据库镜像状态修改.这种工具主要用于跟踪,而非监控的常规手段.

SQL Server数据库镜像基于可用性组故障转移

SQL Server数据库镜像基于可用性组故障转移 微软从SQL Server 2005开始引入数据库镜像,很快成为一个流行的故障转移解决方案.数据库镜像的一个大的问题是故障转移是基于数据库级别的,因此,如果某个数据库故障,镜像只会针对这个数据库切换,但是,其他数据库都仍然在主服务器上.缺点是越来越多的应用程序是基于多个数据库来构建,所以,如果某一个数据库故障转移而其他数据库仍然在主服务器上,那应用程序将无法工作.当这种情况发生的时候,我如何知晓?并执行该应用程序调用的所有数据库一起故障转移呢?

转 : SQL Server数据库优化经验总结

优化数据库的注意事项: 1.关键字段建立索引. 2.使用存储过程,它使SQL变得更加灵活和高效. 3.备份数据库和清除垃圾数据. 4.SQL语句语法的优化.(可以用Sybase的SQL Expert,可惜我没找到unexpired的序列号) 5.清理删除日志. SQL语句优化的基本原则: 1.使用索引来更快地遍历表. 缺省情况下建立的索引是非群集索引,但有时它并不是最佳的.在非群集索引下,数据在物理上随机存放在数据页上.合理的索引设计要建立在对各种查询的 分析和预测上.一般来说:①.有大量重复值

2. SQL Server数据库状态监控 - 错误日志

无论是操作系统 (Unix 或者Windows),还是应用程序 (Web 服务,数据库系统等等) ,通常都有自身的日志机制,以便故障时追溯现场及原因.Windows Event Log和 SQL Server Error Log就是这样的日志, PS: SQL Server 中的错误日志 (Error Log) 类似于 Oracle中的alert 文件. 一. 错误日志简介 1. Windows事件日志与SQL Server 错误日志 Windows事件日志中,应用程序里的SQL Server和

5、SQL Server数据库

SQL Server数据库基础 一.安装SQL Server数据库 setup.exe->安装->全新SQL Server独立安装或向现有安装添加功能->输入序列号->下一步->默认实例->混合模式->输入sa密码->实例账号添加当前账号即可. 如果想要其他机器访问这台机器的sqlserver,需要使用windows防火墙中的入站规则,端口写1433. 二.SQL Server配置管理器 包含各个sql服务,连接数据库时,务必保证sql server服务已开

sql server数据库状态监控

sql server数据库监控 转自:https://www.cnblogs.com/seusoftware/category/500793.html 6. SQL Server数据库监控 - 如何告警 5. SQL Server数据库性能监控 - 当前请求 4. SQL Server数据库状态监控 - 作业状态 3. SQL Server数据库状态监控 - 可用空间 2. SQL Server数据库状态监控 - 错误日志 1. SQL Server服务器监控实现方法 0. SQL Server