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

syspolicy_purge_history SQL Server 代理作业可能会失败 SQL Server 2008 年

注意:这篇文章是由无人工介入的微软自动的机器翻译软件翻译完成。微软很高兴能同时提供给您由人工翻译的和由机器翻译的文章, 以使您能使用您的语言访问所有的知识库文章。然而由机器翻译的文章并不总是完美的。它可能存在词汇,语法或文法的问题,就像是一个外国人在说中文时总是可能犯这样的错误。虽然我们经常升级机器翻译软件以提高翻译质量,但是我们不保证机器翻译的正确度,也不对由于内容的误译或者客户对它的错误使用所引起的任何直接的, 或间接的可能的问题负责。

点击这里察看该文章的英文版: 955726
症状
在 Microsoft SQL Server 2008,群集实例上运行 syspolicy_purge_history 作业时,可能无法 syspolicy_purge_history SQL Server 代理作业。您可能会收到类似于在 syspolicy_purge_history 作业的历史记录日志文件以下内容的错误消息:
日期的 datetime
日志作业历史记录 (syspolicy_purge_history)

步骤 ID 3
服务器 SQLVirtualName \ instancename
作业名称 syspolicy_purge_history
步骤名称擦除幻像系统健康记录框中。
持续时间 00: 00: 33
Sql 严重级别为 0
Sql 邮件 ID 为 0
通过电子邮件发送的运算符
运算符网络发送
分页的运算符
重试尝试 0

消息
作为用户执行: user。作业脚本遇到了以下错误。这些错误未停止该脚本: 一个作业步骤收到 PowerShell 在脚本中的第 1 行处错误。在相应的行是 '(Get-Item SQLSERVER:\SQLPolicy\SQLVirtualName\instancename).EraseSystemHealthPhantomRecords()。

更正该脚本,然后再重新安排作业一次。PowerShell 所返回的错误信息是: SQL Server PowerShell 提供程序错误: 无法连接到 SQLVirtualName \ instancename。[未能连接到服务器 SQLVirtualName \ instancename--> 错误时,出现了建立到服务器的连接。

连接到 SQL Server 2005 时, 这种失败可能导致这一事实在默认设置下 SQL Server 不允许远程连接。(provider: Named Pipes Provider, error: 40-Could not open a connection to SQL Server)]未能连接到服务器 SQLVirtualName \ instancename。建立到服务器的连接时出错。连接到 SQL Server 2005 时, 这种失败可能导致这一事实在默认设置下 SQL Server 不允许远程连接。(提供程序: 命名错误上的管道提供程序: 40-无法打开到 SQL Server 连接) '

作业步骤 PowerShell 在脚本中收到第 1 行处出错。在相应的行是 '(Get-Item SQLSERVER:\SQLPolicy\SQLVirtualName\instancename).EraseSystemHealthPhantomRecords()。更正该脚本,然后再重新安排作业一次。PowerShell 所返回的错误信息是: 找不到路径 SQLSERVER:\SQLPolicy\ SQLVirtualName \ instancename ' 由于它不存在。作业步骤收到 PowerShell 在脚本中的第 1 行处错误。在相应的行是 '(Get-Item SQLSERVER:\SQLPolicy\SQLVirtualName\instancename).EraseSystemHealthPhantomRecords()。更正该脚本,然后再重新安排作业一次。PowerShell 所返回的错误信息是: 您不能对空值的表达式中调用方法。 '. 进程退出代码为-1。该步骤失败。
原因
如果 syspolicy_purge_history 作业使用此计算机的节点名称,而不是群集实例的虚拟服务器名称,则可能会出现此问题。
解决方案
若要解决此问题,使用下列方法之一。

方法 1: 编辑 syspolicy_purge_history 作业

编辑 syspolicy_purge_history 作业的第 3 步。若要这样做,请按照下列步骤操作:
  1. 启动 SQL Server 管理 Studio。
  2. 展开 SQL Server 代理,然后再展开 作业
  3. 用鼠标右键单击 syspolicy_purge_history,然后单击 属性
  4. 单击 步骤
  5. 单击 删除幻像系统健康记录,然后单击 编辑
  6. 命令 框中,可以通过使用群集实例的虚拟服务器名称替换计算机节点名称。
  7. 单击 确定,然后单击 关闭

方法 2: 重新创建 syspolicy_purge_history 作业

若要重新创建 syspolicy_purge_history 作业,运行下面的 TRANSACT-SQL 语句。
DECLARE @jobId uniqueidentifier-- Obtain the current job identifier that is associated with the PurgeHistorySELECT @jobId = CAST(current_value AS uniqueidentifier)FROM msdb.dbo.syspolicy_configuration_internalWHERE name = N'PurgeHistoryJobGuid'-- Delete the job identifier association in the syspolicy configurationDELETE FROM msdb.dbo.syspolicy_configuration_internalWHERE name = N'PurgeHistoryJobGuid'-- Delete the offending jobEXEC msdb.dbo.sp_delete_job @job_id = @jobId-- Re-create the job and its association in the syspolicy configuration tableEXEC msdb.dbo.sp_syspolicy_create_purge_job
更多信息
在 SQL Server 2008 设置,安装脚本将查询用作计算机名,数据库引擎。当安装脚本将查询用作计算机名时,尚不了解群集的数据库引擎。因此,数据库引擎返回计算机名称,而不是群集名称。
SQL Server 2008 工具 SQL2008RelNoteTools

Warning: This article has been translated automatically

属性

文章 ID:955726 - 上次审阅时间:03/19/2009 22:28:40 - 修订版本: 2.0

Microsoft SQL Server 2008 Standard, Microsoft SQL Server 2008 Enterprise, Microsoft SQL Server 2008 Workgroup, Microsoft SQL Server 2008 Developer

  • kbmt sql2008relnotetools sql2008relnote kberrmsg kbtshoot kbprb KB955726 KbMtzh
反馈