Úloha syspolicy_purge_history SQL Server Agent může selhat v SQL Server 2008

Příznaky

V Microsoft SQL Server 2008 může selhat úlohu syspolicy_purge_history SQL Server Agent při spuštění úlohy syspolicy_purge_history seskupený instance. Může se zobrazit chybová zpráva podobná následující v souboru protokolu historie úloha syspolicy_purge_history :
Datum Datumačas
Historie úlohy protokolu (syspolicy_purge_history)



ID kroku 3

Server SQLVirtualName\Název_instance
Název úlohy syspolicy_purge_history

Krok název mazání fantom systém zdravotní záznamy.

Doba trvání 00:00:33

Závažnost SQL 0

ID zprávy SQL 0

Operátor odeslány e-mailem

Provozovatel sítě odeslána

Operátor stránkovaného fondu

Opakování pokusu o 0



Zpráva

Provedeny jako uživatel: user. Úlohy skriptu došlo k následujícím chybám. Tyto chyby neukončovat skript: Úloha kroku zobrazila chyba na řádku 1 ve skriptu PowerShell. Odpovídající řádek je "(položka Get SQLSERVER:\SQLPolicy\SQLVirtualName\Název_instance). EraseSystemHealthPhantomRecords()'.



Opravte skript a změnit plán úlohy. Informace o chybě vrácené PowerShell: "Chyba zprostředkovatele SQL Server PowerShell: Nelze se připojit k"SQLVirtualName\Název_instance". [Nepodařilo se připojit k serveru SQLVirtualName\Název_instance.--> došlo k chybě při navazování připojení k serveru.



Při připojování k serveru SQL Server 2005, tato chyba může být způsobeno tím, že ve výchozím nastavení SQL Server neumožňuje vzdálené připojení. (Zprostředkovatel: pojmenované kanály zprostředkovatele, chyba: 40 - nelze otevřít připojení k serveru SQL Server)] Nepodařilo se připojit k serveru SQLVirtualName\Název_instance. Při navazování připojení k serveru došlo k chybě. Při připojování k serveru SQL Server 2005, tato chyba může být způsobeno tím, že ve výchozím nastavení SQL Server neumožňuje vzdálené připojení. (Zprostředkovatel: pojmenované kanály zprostředkovatele, chyba: 40 - nelze otevřít připojení k serveru SQL Server) '



Krok úlohy zobrazila chyba na řádku 1 ve skriptu PowerShell. Odpovídající řádek je "(položka Get SQLSERVER:\SQLPolicy\SQLVirtualName\Název_instance). EraseSystemHealthPhantomRecords()'. Opravte skript a změnit plán úlohy. Informace o chybě vrácené PowerShell: "nelze nalézt cestu ' SQLSERVER:\SQLPolicy\SQLVirtualName\Název_instance" vzhledem k tomu, že neexistuje. "Úloha kroku zobrazila chyba na řádku 1 ve skriptu PowerShell. Odpovídající řádek je "(položka Get SQLSERVER:\SQLPolicy\SQLVirtualName\Název_instance). EraseSystemHealthPhantomRecords()'. Opravte skript a změnit plán úlohy. Informace o chybě vrácené PowerShell: "nelze volat metody ve výrazu s hodnotou null. '. Kód ukončení procesu -1. V kroku se nezdařilo.

Příčina

Tomuto problému může dojít, pokud úloha syspolicy_purge_history používá název uzlu počítače namísto název virtuálního serveru pro instanci clusteru.

Řešení

Chcete-li vyřešit tento problém, použijte jednu z následujících metod.

Metoda 1: Upravit úlohu syspolicy_purge_history

Upravte krok 3 úlohy syspolicy_purge_history . Chcete-li to provést, postupujte takto:
  1. Spustíte SQL Server Management Studio.
  2. Rozbalte položku SQL Server Agenta rozbalte úlohy.
  3. Syspolicy_purge_historyklepněte pravým tlačítkem myši a potom klepněte na příkaz Vlastnosti.
  4. Klepněte na tlačítko kroky.
  5. Klepněte na tlačítko Vymazat fiktivní systém zdravotní záznamya potom klepněte na tlačítko Upravit.
  6. V poli příkaz nahraďte název uzlu počítače pomocí názvu virtuálního serveru pro instanci clusteru.
  7. Klepněte na tlačítko OK a potom klepněte na tlačítko Zavřít.

Metoda 2: Znovu vytvořit úlohu syspolicy_purge_history

Chcete-li znovu vytvořit úlohu syspolicy_purge_history , spusťte následující příkaz Transact-SQL.
DECLARE @jobId uniqueidentifier
-- Obtain the current job identifier that is associated with the PurgeHistory
SELECT @jobId = CAST(current_value AS uniqueidentifier)
FROM msdb.dbo.syspolicy_configuration_internal
WHERE name = N'PurgeHistoryJobGuid'

-- Delete the job identifier association in the syspolicy configuration

DELETE FROM msdb.dbo.syspolicy_configuration_internal
WHERE name = N'PurgeHistoryJobGuid'

-- Delete the offending job
EXEC msdb.dbo.sp_delete_job @job_id = @jobId

-- Re-create the job and its association in the syspolicy configuration table
EXEC msdb.dbo.sp_syspolicy_create_purge_job

Další informace

V nastavení SQL Server 2008 instalační skript dotazu databázový stroj pro název počítače. Instalační skript dotazu pro název počítače, databázový stroj není vědoma clusteru. Databázový stroj tedy vrátí název počítače místo názvu clusteru.
Vlastnosti

ID článku: 955726 - Poslední kontrola: 14. 1. 2017 - Revize: 1

Váš názor