Swi*_*ers 2 monitoring sql-server
我们有两台 MS SQL 服务器(一台 2000 年和一台 2005 年),它们在白天和晚上的不同时间运行许多作业。这些作业有许多步骤,这些步骤将从 Informix 数据库(我们的业务系统)中提取数据并更新表以供各种报告和生产系统使用。
我们在周末这些导入失败,导致许多报告系统提供错误的数据。
由于安全限制,我们无法从服务器发送电子邮件,那么我们如何有效地监控这些作业,而不必在企业管理器或 MS SQL Studio 中不断检查作业状态?是否可以在服务器上运行查询并找到各种作业的状态?
小智 12
有几种不同的方法可以监视 sql server 作业的输出。
选项 1:监控工具,例如 Sitesope、MOM/SCOM 或自定义 对于大多数生产实例,您希望拥有一个企业监控工具,用于扫描 OS 和 SQL 相关的错误。通常,您将 Sql 代理作业设置为在失败时写入 Windows 事件日志,并且您的监控工具会频繁读取 Windows 事件日志并根据您定义的条件向您发出警报。您可以购买 SiteScope 等监控系统,或创建自己的工具来查找这些错误。您还可以使用 Logparser 之类的工具来读取这些日志。
我首先提到这个选项,因为如果您的报告系统很关键,您可能希望长期投资于可靠的监控系统。短期内,如果您想使用 Windows 日志路线,您可以编写一些自定义脚本。
方案二:查询MSDB 所有的sql作业历史都存储在MSDB数据库中,确实可以查询。您可以从查询窗口或自定义工具执行此操作——例如,您可以创建一个 powershell 脚本,该脚本定期连接到您的每个服务器并查询 msdb 数据库以获取给定的条件和相应的警报。
我写了几个博客条目,其中包含用于查询 sql 作业历史记录的示例脚本。它们都不能完全满足您的要求,但它们会帮助您处理日期在 MSDB 中的存储方式,这可能有点棘手,因为它们不存储在日期时间字段中:http://thedbaknows.wordpress .com/category/sql-agent/
希望这可以帮助!