最近發現我們有台 SQL Server 伺服器由 SQL Server Agent 所管理的其中一個 syspolicy_purge_history 作業發生執行失敗的問題,從記錄檔檢視器中得知是「無法連接到伺服器」的錯誤,進一步瞭解才得知原來這是在 SQL Server 叢集架構下才有可能會出現此問題。
我看到的錯誤訊息是:
以下列使用者的身分執行: MyAD\SQLServiceAccount。作業步驟在 PowerShell 指令碼的第 1 行收到錯誤。對應的行是 '(Get-Item SQLSERVER:\SQLPolicy\SQL1\DEFAULT).EraseSystemHealthPhantomRecords()'。請更正指令碼並將作業重新排程。PowerShell 傳回的錯誤資訊是: '無法連接到伺服器 。 建立連接至 SQL Server 時,發生網路相關或執行個體特定的錯誤。找不到或無法存取伺服器。確認執行個名稱是否正確,以及 SQL Server 是否設定為允許遠端連線。 (provider: 具名的管線提供者, error: 40 - 無法開啟至 SQL Server 的連接) '. 處理序結束碼 -1。. 步驟失敗。
圖示如下:
解決方法也很簡單,從錯誤訊息可以得知 PowerShell 指令碼在下指令時是對 SQL1 這台叢集節點進行連線,只要將其電腦名稱切換至 叢集電腦名稱(SQL2K8) 即可解決連線問題!
編輯第三個步驟:
修正「命令」將錯誤的電腦名稱修改成「叢集電腦名稱」即可!
相關連結