SQL 代理作业,为什么作业历史记录显示即使作业已完成,某个步骤仍在运行

Jak*_*ake 7 sql-server sql-server-2008-r2 sql-server-agent

我有一个 sql 代理作业,它运行 Powershell 作为其第一步(总共有 3 个步骤)。

我已将此步骤设置为重试 2 次,重试间隔为 3 分钟。当我查看作业历史记录时,step_1 表明它仍在运行,并且已经完成。它在每次运行时(至少在去年)都这样做了。我在我的 powershell 中遗漏了什么吗?还是这与sql代理本身有关?

查询sysjobhistory表的详细信息(管道分隔):

Step_name|step_id|run_date|run_time|run_duration|run_status

(Job outcome)|0|2014/02/12|01:20:00|5|Succeded

Record volume space to file|1|2014/02/12|01:20:00|2|In Progress

Record volume space to file|1|2014/02/12|01:20:00|2|Succeded

Load Volume Space|2|2014/02/12|01:20:02|1|Succeded

Record database data file space|3|2014/02/12|01:20:03|2|Succeded
Run Code Online (Sandbox Code Playgroud)

步骤 1 运行以下 Powershell:

gwmi win32_volume | select name, capacity, freespace | Export-Csv c:\temp.tmp
Run Code Online (Sandbox Code Playgroud)

小智 1

关于嘿脚本专家!在 Technet 的博客中,Chad Miller 报告说,如果您将 Windows Powershell 命令作为 SQL 代理作业运行,并且尚未出现语法错误,则该命令会产生错误(例如,尝试从不可用的服务器获取操作系统信息)。SQL Server 代理作业将报告成功。请查看帖子中的提示#10,了解如何使用不同选项实现错误处理的说明,以便您可以让 SQL 代理在出错时继续运行或停止代理作业。报道中的“成功”实际上可能并未成功。

sql-server-powershell-scripter 的 10 个提示