SQL Server 2014“syspolicy_purge_history”作業不斷失敗
我正在使用 SQL Server 2014,作業“syspolicy_purge_history”在第 3 步“Erase Phantom System Health Records”中一直失敗,這讓我發瘋,因為我不知道是什麼導致了失敗。
這是命令:
if ('$(ESCAPE_SQUOTE(INST))' -eq 'MSSQLSERVER') {$a = '\DEFAULT'} ELSE {$a = ''}; (Get-Item SQLSERVER:\SQLPolicy\$(ESCAPE_NONE(SRVR))$a).EraseSystemHealthPhantomRecords()
我得到的錯誤資訊是:
以使用者身份執行:jonbrown。作業步驟在 PowerShell 腳本的第 2 行收到錯誤。對應的行是’(Get-Item SQLSERVER:\SQLPolicy\xyz\T$a).EraseSystemHealthPhantomRecords()’。更正腳本並重新安排作業。PowerShell返回的錯誤資訊是:‘Failed to connect to server 。建立與 SQL Server 的連接時發生與網路相關或特定於實例的錯誤。伺服器未找到或無法訪問。驗證實例名稱是否正確以及 SQL Server 是否配置為允許遠端連接。(提供者:SQL 網路介面,錯誤:26 - 錯誤定位伺服器/指定的實例)’。處理退出程式碼-1。步驟失敗。
您可以在 Windows Server PowerShell 路徑中嘗試此操作嗎?
PS C:\Windows\system32> Get-ExecutionPolicy -list Scope ExecutionPolicy -------- ------------------ MachinePolicy Undefined UserPolicy Undefined Process Undefined CurrentUser Undefined LocalMachine Restricted
..然後在 SQL Server 路徑中相同:
PS SQLSERVER:\> Get-ExecutionPolicy -list Scope ExecutionPolicy -------- ------------------ MachinePolicy Undefined UserPolicy Undefined Process RemoteSigned CurrentUser Undefined LocalMachine Restricted
如果執行策略設置為“Restricted”,請嘗試將其設置為“RemoteSigned”或“Unrestricted”。
Set-ExecutionPolicy -Scope LocalMachine -ExecutionPolicy Unrestricted
要麼
Set-ExecutionPolicy -Scope LocalMachine -ExecutionPolicy RemoteSigned
請注意,您需要在Windows PowerShell和SQL PowerShell控制台中設置此執行策略。
我知道這是我很久以前問的一個問題,問題已經解決。但是,我意識到它仍在查看中,所以我將說明我為解決問題所做的工作。
我打開 SQL 配置管理器並在我的實例名稱更新時添加了別名。之後連接成功並且作業完成且沒有錯誤。