修改维护计划时,SQL Server 代理新添加的作业步骤被删除
Posted
技术标签:
【中文标题】修改维护计划时,SQL Server 代理新添加的作业步骤被删除【英文标题】:SQL Server Agent newly added job steps get deleted when modifying maint plan 【发布时间】:2019-01-04 18:50:26 【问题描述】:SQL Server 2014 Management Studio 中的场景:
-
创建维护计划(管理 -> 维护计划 -> 维护计划向导(即 TestBackup)
在 SQL Server 作业下,右键单击 TestBackup 作业
添加一些新步骤(属性 -> 步骤 -> 新建)并保存
在维护计划下,右键单击 TestBackup,进行更改并保存
现在,如果您返回 SQL Server Jobs 下的 TestBackup 作业,则创建的新步骤不再存在!
【问题讨论】:
也许在没有维护计划包装的情况下创建作业?或者在不同的工作中完成这些额外的任务。这可能就像对象资源管理器没有刷新或旧版本的 SSMS 中的错误一样简单,但是... 这样的事情是我不使用维护计划的原因:/ Like it will change ownership too。如果我没记错的话,保存主要计划会完全覆盖工作。我会找到相关的文档。 我试图做的是运行这项工作。如果成功,执行一些sql。如果不成功,请执行其他一些 sql。看起来很容易,直到你回去调整维护计划。 egads。TestBackup
工作是某种内置工作吗?也许维护计划工具会删除并重建它。听起来更像是 DBA 问题而不是开发人员问题。
我明白你的意思,记住那些是后端的 SSIS 包,所以这并不奇怪。但是,您可以查看Ola's scripts...他们做了一个 TON :) 并且可以帮助您一起放弃维护计划。
【参考方案1】:
评论太长了
许多人建议您不应通过设计人员以外的任何其他方式编辑维护计划。这包括编辑由作为维护计划核心的 SSIS 包创建的“作业”或子计划。 Brad McGehee(SQL Server MVP、MCITP、MCSE+I、MCSD 和 MCT)在他的书 Brad's Sure Guide to SQL Server Maintenance Plans 中谈到了这一点,特别是从第 74 页开始。这是一段摘录:
p.264-265 在本书中,我偶尔会提到 您应该使用维护计划设计器来修改的事实 使用维护计划向导创建的维护计划。这是 因为维护计划向导无法修改 维护计划创建后,因此唯一的更改方法 安全地使用维护计划设计器。维护计划, 使用维护计划向导或维护 计划设计器,在“幕后”实现为单个 SQL 服务器集成服务 (SSIS) 包,使用一个或多个执行 SQL Server 代理作业。虽然可以手动修改 维护计划通过修改其 SQL Server 代理作业,它不是 推荐,因为很有可能会破坏计划。 相反,请始终使用 维护计划设计师
其他人报告了ownership of their subplans changed(被覆盖)的类似问题。同样,一位用户reported the same behavior you have witnessed 通过直接编辑子计划。他通过在Execute SQL Server Agent Job Task
的维护计划中添加一个步骤来避免这种情况,该步骤使用他的自定义步骤启动了一项工作。请注意,这与 Brad 和其他人的建议一致,即仅通过维护计划设计器编辑这些任务。
您还会注意到,如果您编辑您的维护计划,并且没有更改任何内容(但可能是对总体计划的描述)然后保存它,那么您的子计划上的修改时间是不相关的 的变化,将同时反映这一点。意思是,它也被改变了。同样,删除维护计划删除它绑定的代理作业。
【讨论】:
感谢您的详细回复。非常感谢! 没有汗水@FatFingers,一定要看看 Ola 的脚本。他们太棒了,他不断更新。以上是关于修改维护计划时,SQL Server 代理新添加的作业步骤被删除的主要内容,如果未能解决你的问题,请参考以下文章