¿Cómo revivir los contadores de rendimiento de SQL Server 2008 R2?

11

Estoy ejecutando SQL Server 2008 R2 Developer en Windows 7 x64, como la instancia predeterminada. Por alguna razón, los contadores de rendimiento de SQL Server parecen haber desaparecido. SELECT * FROM sys.dm_os_performance_countersdevuelve cero filas.

Intenté correr lodctr /T:perf-MSSQLSERVERsqlctr.ini. Aunque se completó sin errores, no solucionó nada, incluso después de reiniciar el servicio de Registro remoto. De hecho, los contadores ahora faltan en perfmon. unlodctr MSSQLSERVERTodavía dice que los contadores no están instalados, pero lodctr /Q:MSSQLSERVERdice que están presentes y habilitados. Los contadores normales de Windows y .NET funcionan bien.

En el registro de errores de Windows, veo el error 8317:

No se puede consultar el valor 'Primer contador' asociado con la clave de registro 'HKLM \ SYSTEM \ CurrentControlSet \ Services \ MSSQLSERVER \ Performance'. Los contadores de rendimiento de SQL Server están deshabilitados.

Sospecho que el problema puede haber sido provocado por una instalación de SQL 2012 RC0 que falló. ¿Alguna sugerencia sobre cómo recuperarse, salvo reinstalar SQL Server 2008 R2?

RickNZ
fuente
Te refieres a "Visual Studio 11" (¿no "2011"?)
gbn
Sí, VS 11. El problema con la pregunta sobre serverfault es que ninguna de las respuestas publicadas resolvió el problema. Espero que los usuarios orientados a DBA puedan proporcionar ayuda más útil.
RickNZ

Respuestas:

4

Pruébelo lodctr /R, reconstruirá todos los contadores de rendimiento a partir de la información almacenada en el registro.


fuente
En mi caso, faltaban más contadores, no solo SQL Server. lodctr /Rhizo el truco y los restauró a todos. Muchas gracias por el truco.
Endrju
4

Lee esto:

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

Las instrucciones exactas no son 100% correctas. Debe hacer esto, suponiendo que está utilizando la instancia predeterminada:

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

Luego reiniciar.


fuente
Encontré que la ruta del archivo de símbolos en mi perf-MSSQLSERVERsqlctr.ini era incorrecta. Lo arreglé, ejecuté lodctr /T:perf-MSSQLSERVERsqlctr.ini, lodctr perf-MSSQLSERVERsqlctr.ini y reinicié SQL Server.
Der_Meister
2

Parece que los contadores de rendimiento para SQL Server están DESACTIVADOS o las entradas del registro para los contadores de rendimiento están dañadas.

lodctr /E:MSSQLSERVER volverá a cargar la configuración de registro del contador de rendimiento.

RAVJEET SINGH
fuente
0

Si está ejecutando una versión de 32 bits de SQL Server en una instalación de Windows de 64 bits, debe usar la versión de 32 bits de Monitor de rendimiento para ver los contadores como se explica en este blog de MSDN . Hazlo usando cualquiera de estos métodos:

  1. Ejecutar perfmon.exedesde la %windir%\SysWOW64carpeta
  2. Ejecuta el comando mmc /32 perfmon.msc

Además, asegúrese de ejecutar SQL Server con el último Service Pack y revisiones. El artículo 2708726 de MSKB describe un problema en el que los archivos .dll de Performance Monitor no se actualizan correctamente al aplicar actualizaciones a SQL Server 2008 R2 o SQL Server 2012.

Yo digo reinstalar a Mónica
fuente