Sql server 获取过去5个月内显示作业失败的日志

Sql server 获取过去5个月内显示作业失败的日志,sql-server,jobs,Sql Server,Jobs,我试图以日志文件或任何类型的数据的形式获取过去4-5个月失败作业的相关信息。作业在MSSQL服务器上运行,并且是sql作业 我的朋友告诉我,每次重新启动服务器时,服务器生成的日志文件都会被删除 有没有办法获得这些信息 服务器重新启动时,没有作业历史记录消失, 可能您被告知每次重新启动时都会初始化SQL Server错误日志, 但即使是以前的错误日志也不会消失。 在任何情况下,您都可以通过以下方式检查失败的作业: select j.name, j.description,

我试图以日志文件或任何类型的数据的形式获取过去4-5个月失败作业的相关信息。作业在MSSQL服务器上运行,并且是sql作业

我的朋友告诉我,每次重新启动服务器时,服务器生成的日志文件都会被删除


有没有办法获得这些信息

服务器重新启动时,没有作业历史记录消失, 可能您被告知每次重新启动时都会初始化SQL Server错误日志, 但即使是以前的错误日志也不会消失。 在任何情况下,您都可以通过以下方式检查失败的作业:

select j.name,
       j.description,
       h.*
from msdb.dbo.sysjobs j join msdb.dbo.sysjobhistory h 
        on j.job_id = h.job_id 
where h.run_status = 0 -- failed
order by h.run_date;

您可以选择“SQL Server代理属性历史记录”选项卡查看保留了多少历史记录行。

mysql或MSSQL Server?请不要使用不适用于您的问题的标记。我删除了数据库标签,因为不清楚您实际使用的是哪一个。请仅添加您实际使用的数据库的标记using@JensMSSQL服务器。@johncode正常。我想既然作业是SQL作业,那么我添加SQL是唯一正确的。我重新添加了sql server,因为作业所在的服务器是sql server。它只提供过去2天失败的作业。是否仍然可以获取早于此的失败作业。是否检查了sql server代理属性中作业历史记录项的限制?基于此限制,历史记录已被清除,现在您可以更改此限制以备将来使用,还可以在您感兴趣的时间段内恢复msdb数据库备份,并找到丢失的实体。是的,我已将其设置为删除代理历史记录。这就是为什么is感到惊讶的原因。您发现的是默认设置,如果任何其他DBA不知道是否需要清除作业历史记录,那么默认清除比不清除要好,有一天,如果有人有100个作业,并且每个作业每分钟或很快执行一次,那么msdb可能会爆炸,那么就没有办法从SQL server收集失败作业的数据了?