监视 SQL Server

监视 SQL Server

我正在管理一个非常重要的 SQL Server 2008 R2 数据库。我需要一个解决方案,当数据库服务器的性能变差时,通过电子邮件通知我。

我设想了以下场景:

  • 服务器处于离线状态 -> 发送邮件“服务器离线”
  • 执行标准测试查询所花的时间比昨天多了 2 倍 -> 电子邮件“服务器性能下降”
  • 没有打开任何连接 -> 电子邮件“服务器连接超载”
  • 过去 3 小时内平均 CPU 使用率超过 80% -> 电子邮件“服务器非常繁忙”
  • 没有可用磁盘空间 -> 邮件“服务器磁盘空间不足”

我考虑过性能监视器、SQL Server 活动监视器,并查看了网络上的所有其他解决方案,但它们都不像我希望的那样简单和用户友好。如果您除了上述建议之外没有其他建议,并且如果我必须实现这样的工具,我该怎么做?Windows 服务以一定间隔查询数据库,如果响应时间变差则发送电子邮件?

答案1

这里有几个效果很好的产品。不确定它们是否能满足您想要监控的 100% 情况(例如耗尽的连接池)。在这些情况下,您可能需要自己制作一些东西并将其添加到监控解决方案中,或者考虑使用多种产品。

编辑
回应你的评论(虽然我从未使用过它们)。一些免费工具包括

有很多这样的网站。我刚刚在 Google 上搜索了“免费 SQL Server 监控”,这些就是排名前几的。

如果以上方法或其他方法都不能满足您的要求,那么您需要编写一些脚本来提供所需的输出,并将它们设置在 SQL Agent 作业或计划任务中。Powershell 非常适合此用途,尤其是在使用SQL Server Powershell cmdlet

如果您有开发经验,您还可以编写一个应用程序(可能是 Windows 服务)来执行您的任务。.NET 有大量的类和 API,可让您获取所需的信息。您可以使用 SQL Server SMO 类在 .NET 应用程序中直接从 SQL Server 获取信息。

答案2

SCOM 很不错,而且显然有 SQL MP。我会检查一下。

http://technet.microsoft.com/en-us/library/dd767429.aspx

答案3

多年来,我使用过很多这样的工具。你需要关注的主要事情是你想从工具中获得什么。例如,如果你正在寻找基本的监控和警报功能,并且几乎所有配置都已为你配置好,那么几乎任何工具都可以很好地完成工作。我个人更喜欢 Red Gate 的 SQL Monitor,因为我为他们工作。我认为我们的界面更好,而且我们比一些竞争对手更快地让你上手。

也就是说,如果您需要监控数千台服务器的工具,您可能需要查看 Microsoft 的 SCOM。如果您正在寻找非常具体、详细的性能指标,但不太关心监控和警报,您可能需要查看 Confio Ignite。

您想要做的事情的细节决定了哪种工具更适合您。

答案4

洞察SolarWinds 中的功能服务器和应用程序监视器(SAM) 以简单、直观、易于使用的方式提供全面的 SQL 数据库服务器监控,可帮助任何人(从新手系统管理员到经验丰富的 DBA)识别其环境中常见和复杂的 SQL 问题。
此外,SAM 还可以显示:
-数据库状态
- 前 10 个最昂贵的查询
- 按活跃用户连接排名的前 10 个数据库
- 按碎片排名的前 10 个聚集索引
- SQL 存储指标
- SQL 服务器错误日志等等!

相关内容