你目前正处于脱机状态,正在等待 Internet 重新连接

修复 ︰ SQL Server 代理作业失败,如果设置为"自动启动 SQL Server 代理启动时"在 SQL Server 2008 SP2,SQL Server 2008 SP3,SQL Server 2008 R2 SP1 或 SQL Server 2008 R2 SP2 中作业计划类型

重要说明:本文是由 Microsoft 机器翻译软件进行的翻译并可能由 Microsoft 社区通过社区翻译机构(CTF)技术进行后期编辑,或可能是由人工进行的翻译。Microsoft 同时向您提供机器翻译、人工翻译及社区后期编辑的文章,以便对我们知识库中的所有文章以多种语言提供访问。翻译的文章可能存在词汇、句法和/或语法方面的错误。Microsoft 对由于内容的误译或客户对内容的使用所导致的任何不准确、错误或损失不承担责任。

点击这里察看该文章的英文版: 2640027
Microsoft 将 Microsoft SQL Server 2008 SP2 修补程序分发作为一个可下载的文件。修补程序是累积性的因为每个新版本包含的所有修补程序和所有安全修复程序包含上一个 SQL Server 2008 sp2 修补都程序版本。
症状
请考虑以下情形:
  • 执行下列任一
    • 对于 Microsoft SQL Server 2008 Service Pack 2 (SP2) 或更高版本的累积更新包的安装累积更新 2
    • 升级到 SQL Server 2008 Service Pack 3 (SP3) 的 SQL Server 2008
    • 将 SQL Server 2008 R2 升级到 SQL Server 2008 R2 Service Pack 1 (SP1) 或更高版本的服务包
  • 对用户数据库,创建的 SQL Server 代理作业,并将设置为计划类型 SQL Server 代理启动时自动启动.
  • 在重新启动 SQL Server 服务。
在这种情况下,SQL Server 代理作业将失败。
原因
此问题是由于未完成的用户数据库恢复作业启动时。为 SQL Server 2008 SP2 安装累积更新 2 或 SQL Server 2008年升级到 SQL Server 2008 SP3 或 SQL Server 2008 R2 升级到 SQL Server 2008 R2 SP1 之后,SQL Server 代理启动 MSDB 数据库完成恢复之后。

注意:SQL Server 代理程序应开始后所有的数据库都已恢复。
解决方案

SQL Server 2008 R2 Service Pack 1

累积更新 9 中首次发布此问题的修补程序。有关如何获取此累积更新包的 SQL Server 2008 R2 Service Pack 1 的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章 ︰
2756574 对于 SQL Server 2008 R2 Service Pack 1 的累积更新包 9
注意:生成是累积性的因为每个新修补程序版本包含的所有修补程序和附带上一个 SQL Server 2008 R2 Service Pack 1 的所有安全修补程序的修补都程序版本。我们建议您考虑将应用包含此修复程序的最新的修补程序版本。有关详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
2567616 在 SQL Server 2008 R2 Service Pack 1 月发布之后发布的 SQL Server 2008 R2 生成

SQL Server 2008 Service Pack 3

此问题的修补程序首次发布的累积更新 7 为 SQL Server 2008 Service Pack 3。有关如何获取此累积更新包的更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章 ︰
2738350 SQL Server 2008 Service Pack 3 的累积更新包 7
注意:生成是累积性的因为每个新修补程序版本包含的所有修补程序和了上一个 SQL Server 2008 Service Pack 3 中包含的所有安全修补程序的修补都程序版本。我们建议您考虑将应用包含此修复程序的最新的修补程序版本。有关详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
2629969 在 SQL Server 2008 Service Pack 3 月发布之后发布的 SQL Server 2008年生成

SQL Server 2008 Service pack 2 的累积更新 8

此问题的修补程序首次发布的累积更新 8 为 SQL Server 2008 Service Pack 2。有关如何为 SQL Server 2008 Service Pack 2 中获取此累积更新包的更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章 ︰
2648096 对于 SQL Server 2008 Service Pack 2 的累积更新包 8
注意:生成是累积性的因为每个新修补程序版本包含的所有修补程序,包含上一个 SQL Server 2008 Service Pack 2 的所有安全修补程序的修补都程序版本。我们建议您考虑将应用包含此修复程序的最新的修补程序版本。有关详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
2402659 SQL Server 2008 Service Pack 2 发布后,SQL Server 2008 生成发布

SQL Server 2008 R2 Service Pack 2

此问题的修补程序首次发布累积更新 2 中的 SQL Server 2008 R2 Service Pack 2。有关如何获取此累积更新包的更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章 ︰
2740411 SQL Server 2008 R2 Service Pack 2 的累积更新包 2
注意:生成是累积性的因为每个新修补程序版本包含的所有修补程序和附带上一个 SQL Server 2008 R2 的所有安全修补程序的修补都程序版本。我们建议您考虑将应用包含此修复程序的最新的修补程序版本。有关详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
2730301 在SQL Server 2008 R2 Service Pack 2 发布后,SQL Server 2008 R2 生成发布

注册表项信息

重要:此部分、 方法或任务包含一些介绍如何修改注册表的步骤。但是,如果不正确地修改了注册表,可能会出现严重的问题。因此,请确保仔细按照下列步骤操作。为增加保护,对其进行修改之前备份注册表。然后,您可以在出现问题时还原注册表。有关如何备份和还原注册表的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
322756 如何在 Windows 中备份和还原注册表
应用此修补程序后,您必须首先重新启动受影响实例的 SQL Server 代理服务。该服务重新启动时创建一个新的RecoveredDatabasesForAgentStartup注册表项。此注册表项定义 SQL Server 代理程序是否等待恢复的用户数据库,SQL Server 代理作业开始之前完成。

让我们为您配置此注册表项,请转到"请为我修复它"一节。如果您想自行配置此注册表项,请转到"我自己修复此问题"一节。

请为我修复它



若要自动配置此注册表项,请单击修复 按钮或链接。然后单击运行 文件下载对话框中,并按照修复它向导中的步骤。




备注:
  • 运行此Fix it解决方案之前,必须安装 Microsoft 知识库 (KB) 文章 2648096 中介绍的修复程序。然后,您必须重新启动受影响的实例的 SQL Server 代理服务。
  • 此向导可能只提供英文版本。但是,自动修复也适用于其他语言版本的 Windows。
  • 如果您不是计算机上出现问题,将 Fix 它到闪存驱动器或 CD 的解决方案,然后在出现此问题的计算机上运行。

然后,转到"这问题解决了吗?"一节。



我自己修复此问题

若要配置RecoveredDatabasesForAgentStartup注册表项,请按照下列步骤操作 ︰
  1. 单击开始,单击运行,在打开框中,键入注册表编辑器,然后单击确定
  2. 找到并单击以下注册表子项:
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL10.instance\SQLServerAgent\
  3. 详细信息窗格中,用鼠标右键单击RecoveredDatabasesForAgentStartup,,然后单击修改
  4. 数据框中,键入 所有.

    注意:RecoveredDatabasesForAgentStartup注册表项的默认值是MSDB
  5. 退出注册表编辑器。
注意:如果将RecoveredDatabasesForAgentStartup注册表项的值设置为不MSDB所有的值,在 SQL Server 代理日志中记录一条警告消息,SQL Server 代理只能等待 MSDB 数据库。

这问题解决了吗?

  • 检查问题是否已修复。如果问题已修复,您已完成此部分。如果不修复该问题,则可以 与支持部门联系.
  • 非常感谢您的反馈意见。若要提供反馈或报告与该解决方案的任何问题,请留言上"请为我修复它"博客或给我们发送 电子邮件.
状态
Microsoft 已经确认这是"适用于"一节中列出的 Microsoft 产品中的问题。
替代方法
要变通解决此问题,请到检查是否处于联机状态的目标的数据库的 SQL Server 代理作业中添加步骤。这一步应该是第一步。

注意:您可以通过查询sys.databases系统表中的列状态检查数据库的状态。
fixit fix it fixme

警告:本文已自动翻译

属性

文章 ID:2640027 - 上次审阅时间:06/12/2016 11:23:00 - 修订版本: 6.0

Microsoft SQL Server 2008 Enterprise, Microsoft SQL Server 2008 Developer, Microsoft SQL Server 2008 Service Pack 2, Microsoft SQL Server 2008 Service Pack 3, Microsoft SQL Server 2008 Standard, Microsoft SQL Server 2008 R2 Service Pack 2

  • kbqfe kbfix kbexpertiseadvanced kbsurveynew kbfixme kbmsifixme kbmt KB2640027 KbMtzh
反馈
="https://c1.microsoft.com/c.gif?DI=4050&did=1&t=">tps://c1.microsoft.com/c.gif?DI=4050&did=1&t=">