syspolicy_purge_history SQL Server 代理程式工作可能會在 SQL Server 2008 中失敗

重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。

按一下這裡查看此文章的英文版本:955726
徵狀
在 Microsoft SQL Server 2008 中當您在叢集的執行個體上執行 syspolicy_purge_history 工作時,可能會失敗 syspolicy_purge_history SQL Server 代理程式工作。您可能會收到 syspolicy_purge_history 工作歷程記錄檔中類似下列的錯誤訊息:
日期 datetime
記錄檔作業歷程記錄 (syspolicy_purge_history)

步驟識別碼 3
伺服器 SQLVirtualName \ instancename
工作名稱 syspolicy_purge_history
步驟名稱清除虛設系統健全狀況記錄。
持續時間 00: 00: 33
Sql 嚴重性 0
Sql 郵件識別碼為 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 並不允許遠端連線。(提供者: 具名管道 Provider 錯誤: 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 所傳回的錯誤資訊是: ' 您不能在 Null 值的運算式上呼叫方法。 '. 處理序結束碼為-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

警告:本文為自動翻譯

內容

文章識別碼: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
意見反應