问题标签 [sql-agent]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
sql-server - 失败的 SQL 代理作业报告
我正在尝试编写一个 SQL Server 查询,该查询将返回最后 XX 分钟/天等的失败作业。
对于每个失败的作业,我基本上想要一个记录,并为每个步骤连接消息。我已经编写了以下查询,但是由于分组,我收到了整个作业的串联消息,而不仅仅是这个特定实例 - 我无法解决。任何援助将不胜感激 :)
configuration - 2012标准版无法启动代理服务,声称不支持版本
这开始是因为我试图确定为什么我没有收到来自 SQL Server 2012 标准版默认实例的电子邮件。代理作业一直运行良好,但最后一次尝试在服务器上发送电子邮件并成功是在 2016 年 2 月 2 日,下一次尝试的电子邮件是在 2016 年 3 月 8 日(该电子邮件以及所有后续电子邮件的 sent_account_id 和sent_status 为 0)。
我决定删除当前的电子邮件配置并在默认实例上从头开始重新配置,这需要重新启动代理服务,以便它能够通过电子邮件发送通知。重新启动代理服务不成功。SQLAGENT.OUT 显示:
倒数第三行最有意思:“安装此服务的 SQL Server 版本不支持 SQL Server Agent。” 据我所知,这台服务器上从未有过 Express Edition 实例。此服务器上有两个 Standard Edition 实例,它们都有相同的电子邮件问题,并且在任一实例中执行“SELECT @@VERSION”都会返回:
Microsoft SQL Server 2012 (SP3) (KB3072779) - 11.0.6020.0 (X64) 2015 年 10 月 20 日 15:36:27 版权所有 (c) Microsoft Corporation Standard Edition (64-bit) on Windows NT 6.1 (Build 7601: Service Pack 1) (管理程序)
该服务是在 2016 年 2 月 8 日安装 SP3 后新启动的,所以在那之后一定发生了一些变化,导致代理出现一些问题。我找到了另一台服务器(同一项目的测试实例)并发现了相同的问题,该问题在 2015 年 7 月 27 日到 2015 年 9 月 5 日之间的某个时间开始,并且在该范围内(或此后)没有应用 SQL Server 更新。
虽然解决电子邮件问题是让我走上这条道路的原因,但让代理再次运行是更高的优先级(并且可能会解决电子邮件问题)。
当它显然是标准版并且代理服务在服务重新启动前几分钟运行作业时,是什么可能导致代理混淆认为这是一个快速版实例?
我没有在此服务器上的第二个实例上重新启动代理服务,该服务器一直在成功运行作业(与默认实例上的服务一样,直到尝试重新启动服务)。
[添加] 尝试更改要由本地服务帐户运行的代理服务导致“系统找不到指定的文件。[0x80070002]”
我在 SQL 错误日志中发现了这一点:
在队列“msdb.dbo.ExternalMailQueue”上运行的激活过程“[dbo].[sp_sysmail_activate]”输出以下内容:“无法创建 DatabaseMail.exe 进程。执行 API 'CreateProcess' 失败,错误号为 2。
sql-server - 算术溢出错误将表达式转换为数据类型 nvarchar 错误 8115,直到 SQL 代理在早上运行
我有一个 SQL 代理作业,从上午 9 点到下午 6 点每 15 分钟运行一次。
如果有任何结果,我会通过电子邮件将它们发送给自己。由于某种未知的原因,在过去的两三周里,我无法在早上 9 点 15 分之前运行该查询,当时 SQL 代理开始工作并根据主题显示错误消息而失败。每次下一次尝试都很好,如果我尝试手动运行它只会在上午 9:15 或更早时失败。真的很困惑,不确定这里发生了什么。
datereq 字段是 datetime,db_name 是 nchar。它在它检查的第 11 个数据库上失败,但我检查了该表,它与其他表完全相同。
有任何想法吗?:)
sql-server - 使用 SSIS 包移动文件,由 SQL Server 代理作业调度
我开发了一个相当复杂的 SSIS 包。其中一部分将文件从“c:\Flags\”文件夹移动到“c:\Flags\Busy\”文件夹。
我将包部署在 SSIS 目录下。
当我右键单击并在我自己的凭据下手动启动任务时,它工作正常。(我是管理员)
当我使用 SQL Server 代理安排任务(每 30 分钟运行一次)时,它在文件移动的部分失败。默认情况下,SSIS 包在“SQL SERVER AGENT ACCOUNT”下运行。
有什么建议或指示我可以如何解决这个问题?(我确实谷歌了这个问题)
也许更改它运行的帐户(GUI 中没有选项)或以某种方式赋予“SQL SERVER AGENT ACCOUNT”移动文件的权限?
sql-server - 从 msdb.dbo.sysjobhistory 聚合数据
每次我运行代理作业时,它都会将一些数据放入日志。我可以像这样通过 T-SQL 访问这些数据SELECT * FROM msdb.dbo.sysjobhistory WHERE step_id = 0
:它将向我显示有关工作的摘要信息。
问题是,如果有一个步骤失败但“失败操作”是“转到下一步”run_status
将显示成功。
我尝试从其中汇总数据,step_id <> 0
但我不知道如何区分每次运行的作业。
你能帮我解决这个问题吗?最佳结果将是具有不同状态列表的附加列,这些状态列表出现在第一次查询显示的作业中。
我想要实现的是每天运行的工作(其中一些在一天中多次运行)的每日报告。
sql - 尝试运行 SSIS 包时出现 SQL 代理作业错误
我有一个 SSIS 包,当我在 VS 中运行时它运行良好。我已将protection level
. Dont Save Sensitive
我还授予了任何与 sql 代理作业帐户相关的文件相关权限。
我得到的错误是:
到目前为止,我的印象是我需要更改代码,但如果代码真的是一个问题,我的包首先不会运行,这显然不是这种情况。
我该如何解决这个问题?
wmi - WMI SQLSERVERAGENT_SQLAgentJobs 查询不返回某些 SQL 2016 可用性组实例的数据
SQL Server 代理具有用于监视作业的性能对象和计数器。使用 Windows 性能监视器应用程序,我总是可以看到数据:
但是当我尝试gwmi Win32_PerfFormattedData_SQLSERVERAGENT_SQLAgentJobs
在某些服务器上使用 PowerShell 时,没有返回任何实例。使用 WBEMTest 和 wmic.exe 进行测试时的结果相同。
当我运行时,typeperf -qx
我看到一堆 \SQLAgent:Jobs(_Total)* 指标,但是如何使用 WMI 查询从Win32_PerfFormattedData_SQLSERVERAGENT_SQLAgentJobs
orWin32_PerfRawData_SQLSERVERAGENT_SQLAgentJobs
类中获取结果?
更新:嗯...这可能只是查询 SQL Server 2016 CU1 或 SP1 CU2 可用性组实例时的问题,尽管它再次适用于某些服务器但不适用于其他服务器。应用更新后似乎停止工作,即使重新启动系统后,计数器也不会返回任何实例。我还不能在一个独立的实例上复制这个问题,因为它们总是返回预期的数据:
sql-server - SQL Server 2008 R2 SSIS 包未在代理内运行(执行进程任务)
我有几个 SSIS 包可以启动外部程序,例如 SFTP 的批处理程序或旧程序的 VB 脚本。这些在 BI 开发管理器中完美运行,但一旦它们被打包并发送到 MS Agent,它们似乎运行良好,没有错误,但系统似乎只是跳过了这些任务,它们似乎没有运行。
当代理按计划运行这些或手动触发时,都会发生这种情况
任何意见将是有益的。
sql-server - 由“EXECUTE master.dbo.xp_sqlagent_is_starting @retval OUTPUT”引起的 SSIS 错误
我有一个为 sql2012 开发的 ssis 包(和配置文件)来启动 sql 代理作业。整个包中使用了以下命令:
而且,当我以有权在步骤级别启动 sql 代理作业的用户身份执行它时,我收到以下错误消息。
代码:0xC0202009 来源:收集数据 OLE DB 源 [20]
描述:SSIS 错误代码 DTS_E_OLEDBERROR。发生 OLE DB 错误。错误代码:0x80004005。OLE DB 记录可用。来源:“Microsoft SQL Server Native Client 11.0” Hresult:0x80004005 描述:“无法确定元数据,因为过程“sp_is_sqlagent_starting”中的语句“EXECUTE master.dbo.xp_sqlagent_is_starting @retval OUTPUT”调用了扩展存储过程。”。
我试过以下方法:
- 有 DBA 授予了授权执行权限,
master.dbo.xp_sqlagent_is_starting
但这并没有解决它。以系统管理员身份执行包。这工作正常 - 已关闭并在用于 OLEDB 连接的包配置文件中选择了一个选项。这似乎没有影响所讨论的问题。
- 我所看到的每一个地方,问题似乎都与
openrowset
我没有在我的包中使用的问题有关。
有没有解决方案(除了以系统管理员身份执行)?
谢谢
visual-studio - SQL Server,新作业失败
我有 SQL Server 2012,我为表中的 upsert 数据创建了一个 SSIS 包,当我在 Visual Studio 2012 中执行它时它可以工作。
当我尝试创建一个新工作(这是我第一次这样做)并且我开始工作时它失败了,并且在工作的历史中我有以下错误:
以用户身份执行:NTCH01_SQLAgent2012。适用于 32 位的 Microsoft (R) SQL Server 执行包实用程序版本 11.0.5583.0 版权所有 (C) Microsoft Corporation。版权所有。
开始时间:16:21:24 错误:2016-08-24 16:21:24.85
代码:0xC0202009
源:将数据加载到临时表 OLE DB 目标 [132]
描述:SSIS 错误代码 DTS_E_OLEDBERROR。发生 OLE DB 错误。错误代码:0x80004005。
OLE DB 记录可用。来源:“Microsoft SQL Server Native Client 11.0” Hresult:0x80004005 描述:“转换规范的字符值无效”。
OLE DB 记录可用。来源:“Microsoft SQL Server Native Client 11.0” Hresult:0x80004005 描述:“转换规范的字符值无效”。
结束错误错误:2016-08-24 16:21:24.85
代码:0xC020901C
源:将数据加载到暂存表 OLE DB 目标 [132]说明:OLE DB 目标上的 OLE DB Destination.Inputs[OLE DB 目标输入].Columns[BANK_GUARANTEE_EXPIRY_DATE] 存在错误。
输入[OLE DB 目标输入]。返回的列状态为:“由于可能丢失数据,无法转换该值。”。
结束错误错误:2016-08-24 16:21:24.85
代码:0xC0209029
源:将数据加载到暂存表 OLE DB 目标 [132]
描述:SSIS 错误代码 DTS_E_INDUCEDTRANSFORMFAILUREONERROR。“OLE DB Destination.Inputs[OLE DB Destination Input]”失败,因为发生错误代码 0xC0209077,并且“OLE DB Destination.Inputs[OLE DB Destination Input]”上的错误行处置指定错误失败。指定组件的指定对象发生错误。
在此之前可能会发布错误消息,其中包含有关失败的更多信息。
结束错误错误:2016-08-24 16:21:24.85
代码:0xC0047022
来源:将数据加载到暂存表 SSIS.Pipeline
描述:SSIS 错误代码 DTS_E_PROCESSINPUTFAILED。
处理输入“OLE DB 目标输入”(145) 时,组件“OLE DB 目标”(132) 上的 ProcessInput 方法失败,错误代码为 0xC0209029。已识别的组件从 ProcessInput 方法返回错误。该错误是特定于组件的,但该错误是致命的,将导致数据流任务停止运行。
在此之前可能会发布错误消息,其中包含有关失败的更多信息。
结束错误DTExec:包执行返回 DTSER_FAILURE (1)。
开始时间:16:21:24 结束时间:16:21:24 经过时间:0.842 秒。
包执行失败。步骤失败。
我不明白错误的含义
请问你能帮帮我吗 ?