Como reviver os contadores de desempenho do SQL Server 2008 R2?

11

Estou executando o SQL Server 2008 R2 Developer no Windows 7 x64, como a instância padrão. Por alguma razão, os contadores de desempenho do SQL Server parecem ter desaparecido. SELECT * FROM sys.dm_os_performance_countersretorna zero linhas.

Eu tentei correr lodctr /T:perf-MSSQLSERVERsqlctr.ini. Embora tenha sido concluído sem erros, não corrigiu nada, mesmo após reiniciar o serviço Registro Remoto. De fato, os contadores agora estão faltando no perfmon. unlodctr MSSQLSERVERainda diz que os contadores não estão instalados, mas lodctr /Q:MSSQLSERVERdiz que estão presentes e habilitados. Os contadores regulares do Windows e .NET estão funcionando bem.

No log de erros do Windows, estou vendo o erro 8317:

Não é possível consultar o valor 'Primeiro Contador' associado à chave do Registro 'HKLM \ SYSTEM \ CurrentControlSet \ Services \ MSSQLSERVER \ Performance'. Os contadores de desempenho do SQL Server estão desabilitados.

Eu suspeito que o problema pode ter sido desencadeado por uma instalação do SQL 2012 RC0 que falhou. Alguma sugestão de como recuperar, exceto a reinstalação do SQL Server 2008 R2?

RickNZ
fonte
Você quer dizer "Visual Studio 11" (não "2011"?)
gbn em 23/02/12
Sim, VS 11. O problema com a pergunta sobre falha do servidor é que nenhuma das respostas postadas resolveu o problema. Espero que os usuários orientados ao DBA possam fornecer ajuda mais útil.
RickNZ 23/02

Respostas:

4

Experimente lodctr /R, ele reconstruirá todos os contadores de desempenho a partir de informações armazenadas no registro.


fonte
No meu caso, faltavam mais contadores, não apenas os do SQL Server. lodctr /Rfez o truque e restaurou todos eles. Muito obrigado pelo truque.
Endrju 13/09
4

Leia isto:

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

As instruções exatas não estão 100% corretas. Você precisa fazer isso, supondo que você esteja usando a instância padrão:

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

Então reinicie.


fonte
Eu descobri que o caminho simbólico no meu perf-MSSQLSERVERsqlctr.ini estava incorreto. Corrigi-o, executei lodctr /T:perf-MSSQLSERVERsqlctr.ini, lodctr perf-MSSQLSERVERsqlctr.ini e reiniciei o SQL Server.
Der_Meister 2/15
2

Parece que os contadores de desempenho do SQL Server estão desabilitados ou as entradas do Registro dos contadores de desempenho estão corrompidas.

lodctr /E:MSSQLSERVER recarregará as configurações de registro do contador de desempenho.

RAVJEET SINGH
fonte
0

Se você estiver executando uma versão de 32 bits do SQL Server em uma instalação de 64 bits do Windows, precisará usar a versão de 32 bits do Monitor de Desempenho para exibir os contadores, conforme explicado neste Blog do MSDN . Faça isso usando um destes métodos:

  1. Executar a perfmon.exepartir da %windir%\SysWOW64pasta
  2. Execute o comando mmc /32 perfmon.msc

Além disso, verifique se você está executando o SQL Server com o Service Pack e os hotfixes mais recentes. O artigo 2708726 do MSKB descreve um problema em que os arquivos .dll do Monitor de desempenho não são atualizados corretamente ao aplicar as atualizações ao SQL Server 2008 R2 ou SQL Server 2012.

Eu digo Restabelecer Monica
fonte