Nic*_*mas 15 monitoring sql-server
SQL Server 允许您将作业配置为在失败时发送电子邮件警报。这是监控您的工作的一种简单而有效的方法。但是,这些警报不包括任何细节——只是成功或失败的通知。
如果作业失败,典型的警报电子邮件将如下所示:
JOB RUN: 'DBA - Consistency Check Databases' was run on 8/14/2011 at 12:00:04 AM
DURATION: 0 hours, 0 minutes, 0 seconds
STATUS: Failed
MESSAGES: The job failed. The Job was invoked by Schedule 2 (Nightly Before
Backup 12AM). The last step to run was step 1 (Check Databases).
Run Code Online (Sandbox Code Playgroud)
要确定失败的原因,您必须导航到 SQL Server Management Studio 中的实例,找到作业并查看其执行历史记录。在大型环境中,必须不断地这样做可能会很痛苦。
理想的警报电子邮件应预先包含失败原因,并让您直接着手解决方案。
我熟悉这个问题的解决方案。有没有人有任何经验?它的缺点是:
spDBA_job_notification有没有人想出更好的解决方案?
小智 10
你可能会做的事情只是一个想法,把想法扔出去......
创建一个作业,定期检查 msdb 中的作业表,以查看是否有任何作业显示为失败,这可以通过良好的T-SQL 查询来完成。然后您可以进入 sysjobsteps 表并查看是否为作业设置了输出日志。让一个存储过程发送一封电子邮件,将该文件附加到它。您将能够准确地看到作业从开始到失败做了什么,而无需接触服务器。
然后也可以让 PowerShell 脚本检查事件日志中的错误。它允许您过滤相当多的内容以准确获取您正在寻找的消息类型。您可以将其设置为定期运行的 SQL 代理作业。然后在 PowerShell 脚本中使用电子邮件 cmdlet 发送消息(如果找到)。
这里的想法很牵强,只是我想到的一些。
| 归档时间: |
|
| 查看次数: |
16481 次 |
| 最近记录: |