Come ripristinare i contatori delle prestazioni di SQL Server 2008 R2?


11

Sto eseguendo SQL Server 2008 R2 Developer su Windows 7 x64, come istanza predefinita. Per qualche motivo, i contatori delle prestazioni di SQL Server sembrano essere scomparsi. SELECT * FROM sys.dm_os_performance_countersrestituisce zero righe.

Ho provato a correre lodctr /T:perf-MSSQLSERVERsqlctr.ini. Sebbene sia stato completato senza errori, non ha risolto nulla, anche dopo il riavvio del servizio Registro di sistema remoto. In effetti, i contatori ora mancano dal perfmon. unlodctr MSSQLSERVERdice ancora che i contatori non sono installati, ma lodctr /Q:MSSQLSERVERdice che sono presenti e abilitati. I normali contatori Windows e .NET funzionano correttamente.

Nel registro errori di Windows, viene visualizzato l'errore 8317:

Impossibile eseguire la query sul valore "Primo contatore" associato alla chiave di registro "HKLM \ SYSTEM \ CurrentControlSet \ Services \ MSSQLSERVER \ Performance". I contatori delle prestazioni di SQL Server sono disabilitati.

Ho il sospetto che il problema potrebbe essere stato innescato da un'installazione di SQL 2012 RC0 non riuscita. Qualche suggerimento su come ripristinare, a meno di reinstallare SQL Server 2008 R2?


Intendi "Visual Studio 11" (non "2011"?)
gbn

Sì, VS 11. Il problema con la domanda su serverfault è che nessuna delle risposte postate ha risolto il problema. Spero che gli utenti orientati al DBA possano essere in grado di fornire un aiuto più utile.
RickNZ,

Risposte:


4

Prova con lodctr /R, ricostruirà tutti i contatori delle prestazioni dalle informazioni memorizzate nel registro.


Nel mio caso mancavano più contatori, non solo quelli di SQL Server. lodctr /Rha fatto il trucco e li ha ripristinati tutti. Grazie mille per il trucco.
Endrju,

4

Leggi questo:

http://blogs.msdn.com/b/psssql/archive/2009/03/03/troubleshooting-sql-server-2005-2008-performance-counter-collection-problems.aspx

Le istruzioni esatte non sono corrette al 100%. Devi farlo, supponendo che tu stia utilizzando l'istanza predefinita:

unlodctr MSSQLSERVER
lodctr perf-MSSQLSERVERsqlperf.ini
lodctr /T:MSSQLSERVER

Quindi riavviare.


Ho scoperto che il percorso symbolfile nel mio perf-MSSQLSERVERsqlctr.ini era errato. L'ho corretto, eseguito lodctr / T:perf-MSSQLSERVERsqlctr.ini, lodctr perf-MSSQLSERVERsqlctr.ini e riavviato SQL Server.
Der_Meister,


2

Sembra che i contatori delle prestazioni per SQL Server siano DISABILITATI o che le voci di registro per i contatori delle prestazioni siano danneggiate.

lodctr /E:MSSQLSERVER ricaricherà le impostazioni del registro del contatore delle prestazioni.


0

Se si esegue una versione a 32 bit di SQL Server su un'installazione a 64 bit di Windows, è necessario utilizzare la versione a 32 bit di Performance Monitor per visualizzare i contatori come spiegato in questo blog MSDN . Fallo utilizzando uno di questi metodi:

  1. Esegui perfmon.exedalla %windir%\SysWOW64cartella
  2. Esegui il comando mmc /32 perfmon.msc

Inoltre, assicurarsi di eseguire SQL Server con il Service Pack e gli aggiornamenti rapidi più recenti. L'articolo 2708726 di MSKB descrive un problema in cui i file DLL di Performance Monitor non vengono aggiornati correttamente quando si applicano gli aggiornamenti a SQL Server 2008 R2 o SQL Server 2012.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.