问题标签 [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.

0 投票
1 回答
3258 浏览

sql-server - SQL 代理作业依赖调度

我试图在 SQL 代理中解决以下场景。

Job 2 需要在凌晨 1 点开始,但依赖于 Job 1。

我一直在试图弄清楚是否有办法安排特定步骤?这样,我可以让第 2 步依赖于第 1 步,而不是让第 2 步工作,并将其安排在以后的时间。

或者,我知道我可以建立一个表来确定依赖关系。类似于SQL Server 代理作业依赖。但是,我希望让它足够智能,如果 Job 1 尚未在预定时间完成,Job 2 将尝试在稍后的时间间隔再次运行。

0 投票
2 回答
128 浏览

sql-server - T-SQL sp_send_dbmail 结果不一致

我在几台服务器(都在同一个域中)上设置了一份工作。作业通过 发送电子邮件sp_send_dbmail,电子邮件的主题应类似于以下格式:

因此,作为一个潜在的示例(显然将 0 替换为运行 SQL 的服务器的实际 IP 地址):

DBmail 已配置,我创建了备份作业。发送电子邮件的 T-SQL 作业步骤具有以下脚本:

5 台服务器中的每台都具有完全相同的作业定义 - 我有 1 个作业的源代码控制定义,用于在每台服务器上创建作业。

每周工作时,他们中的大多数人都会启动一封带有预期主题的电子邮件。但是,每隔几周,就会收到一封带有主题SQL Server Message的电子邮件,这是在未指定主题时发生的情况。每次发生这种情况时,它都可能在五台服务器中的任何一台上。我不确定发生了什么,因为它每次执行时都应该有一个主题。

编辑: 这是因为 @ipAddress 变量为空。不知道为什么

虽然会返回 null ......

0 投票
3 回答
3127 浏览

sql-server - SSISDB 事务日志备份

我有几个 SSIS 包作业正在运行,几个月前,由于 SSISDB 数据库的大小,我的磁盘已满。

我注意到cleanup_server_retention_window设置为 365 天,我将其更改为 1 天。(它是一个开发服务器,在这一点上我真的不在乎历史)。

显然,(大)问题是现在事务日志增长得很快。

为了防止这种情况,我开始每周执行一次完整备份,每天执行一次事务日志备份,并且现在控制数据库的大小。

但是,一些更有经验的人告诉我,这不是解决这个问题的最佳方法,但我看不出有任何问题。

我想知道是否有更好的解决方案。

0 投票
1 回答
3323 浏览

sql-server - 即使我在脚本中禁用了计划,SQL Server 代理作业仍在运行

我需要禁用服务器上运行的所有作业。我运行了以下代码:

当我从 SQL 代理 GUI 或通过 SQL 检查给定作业及其相关计划时,我可以看到计划被禁用。但是,这些作业仍在运行,如果我检查 msdb.dbo.sysjobschedules,我可以看到未来的下一次运行日期。

我在网上看到的唯一事情表明有一个后台线程需要刷新才能接受此更改?这样做,我需要运行 sp_sqlagent_refresh_job (没有帮助),或者重新启动服务器。

我可以重新启动服务器,但我很好奇是否有其他人看到过这种行为,知道原因,知道如何以另一种方式修复它。

0 投票
1 回答
434 浏览

sql - 在 SQL 代理中运行 SSIS 包错误

我在 SSDT 和 Success 中运行我的 SSIS 包,但是当我使用 SQL 代理运行包时出现错误。

错误信息如下

你能帮助我吗 ?或者是否有任何解决方案来设置执行包的时间表?

谢谢

0 投票
1 回答
229 浏览

sql - 非个人用户组的 SQL Server 2012 凭据

我可以在 SQL Server 2012 中为组创建凭据吗?不是个人用户。

我试图让一组用户访问使用 SQL Server 代理执行 SSIS 包。这需要凭证上的代理帐户。

我不想为每个用户创建一个凭证,我只想创建一个凭证。我不知道该组的密码,是否存在 DBA 可能知道的密码?

0 投票
2 回答
1583 浏览

sql-server - 使用 SSIS 包访问数据库的 SQL 代理作业失败

我有一个运行脚本任务的 SSIS 包(主要是,还有一些其他的东西)。脚本任务使用 OleDB 连接连接到 Access 数据库。这是 Microsoft Jet 4.0 连接。我已经安装了驱动程序。但它不会通过代理帐户在 SQL 代理中运行。它将直接从 Visual Studio 和包商店正常运行。事实上,当我以代理绑定的特殊帐户登录时,它在这两个地方都运行良好。但是当我通过 SQL Server 代理运行时,我得到了可怕的“未指定错误”OleDbException。

脚本任务的相关代码:

通过 SQL 代理作业历史记录的错误消息:

我已经确定的一些事情:

  • Access 驱动程序已安装并在 SQL 代理所在的服务器上运行。我通过在 VS 中将包作为我的帐户和代理的帐户运行来验证这一点,没有任何问题。
  • 代理帐户有权访问相关文件。同样,通过以代理帐户登录服务器进行验证。该文件位于网络共享上,但路径被指定为 UNC 路径。
  • 代理帐户有权访问属于此操作的其他数据库,以排除任何其他潜在的错误来源。
  • 从包商店(通过 SSMS)运行包,因为我的帐户和代理的帐户都有效。我在数据库服务器上这样做以确保。

在我在互联网上看到的其他问题中,这通常是驱动程序的问题。在这种情况下,我不确定它是怎么回事。

我很乐意提供更多信息来帮助其他诊断。我自己完全不确定为什么这不起作用。

0 投票
1 回答
35 浏览

tsql - 从 SSIS 包中安排单个包

我有一个 SQL 作业代理,它有两个作业步骤:PackageA 和 PackageB。PackageB 跟在 PackageA 之后,但 PackageB 绝不应该在 06:00 到 18:00 之间运行。不幸的是,PackageA 有时需要很长时间,导致 PackageB 在 6:00 到 18:00 之间运行。在 PackageB 中,我有一个约束 + 表达式来检查时间是否在 06:00 和 18:00 之间。如果是这样,PackageB 很好地退出并向操作员发送电子邮件,提醒他/她重新安排 PackageB。但是,如果我可以自行重新安排包裹,事情会好得多。

PackageB 中的逻辑:

如果找到的值是 <6 或 >18,则执行“正常”过程或启动“发送电子邮件”并退出。我想要的是在发送电子邮件后添加一个命令,该命令将安排 PackageB 在当天晚上 19​​:00 运行一次。理想情况下,该过程将检查是否有仅运行 packageB 的作业并安排在当晚 19:00 运行一次,如果没有运行 PackageB 的现有作业,则应创建它。

我的感觉是使用 TSQL 应该是可行的。除了使用 TSQL 之外,还有什么建议或有更好的方法吗?

感谢您和我一起思考!

0 投票
1 回答
883 浏览

sql-server - 如何实现sql代理中每一步的失败通知

如何实现sql代理中每一步的失败通知。或者只能在作业级别实现作业通知

0 投票
0 回答
310 浏览

c# - 由 SQL 代理执行的 C# 控制台应用程序

我正在尝试运行使用 EPPLUS 将 Oracle 表移动到 excel 文档的 .cs(控制台应用程序)。我正在使用 SQL 代理来安排此过程,但刚刚收到一个错误

消息以用户身份执行:WIN2016-SFD-02\SYSTEM。未处理的异常:System.IO.FileNotFoundException:无法加载文件或程序集“EPPlus,版本=4.1.0.0,文化=中性,PublicKeyToken=ea159fdaa78159a1”或其依赖项之一。该系统找不到指定的文件。在 OracletoExcel.Program.Main(String[] args)。进程退出代码 -532462766。步骤失败。

有任何想法吗?谢谢