O monitor de atividades não pode executar consultas no servidor

13

Existe alguma correção para o funcionamento do monitor de atividade SSMS?

Problema:

O SQL Server Activity Monitor falha com uma caixa de diálogo de erro:

TÍTULO: Microsoft SQL Server Management Studio
O Activity Monitor não pode executar consultas no servidor [SERVIDOR]. O Monitor de Atividade para esta instância será colocado em um estado em pausa. Use o menu de contexto no painel de visão geral para retomar o Monitor de Atividade.

INFORMAÇÕES ADICIONAIS:
Não foi possível encontrar o ID do processo do SQL Server [PID] no servidor [SERVER] (Microsoft.SqlServer.Management.ResourceMonitoring)

Eu tenho esse problema no SQL Server 2008 R2 x64 Developer Edition, mas acho que ele é encontrado em todos os sistemas de 64 bits usando o SQL Server 2008, sob algumas condições ainda não identificadas.

Há um relatório de bug sobre isso no Microsoft Connect, mas ainda não foi resolvido.

mika
fonte
1
-1, vote para fechar. Ao ler três vezes, ainda não consigo ver uma única pergunta lá.
TomTom
Estou tendo o mesmo problema em x64 Win2008 com SQL Server 2008. gostaria de saber como corrigir isso também,
Renaud Bompuis

Respostas:

20

Verifique se existem contadores de desempenho do SQLServer no Monitor de Desempenho. Caso contrário, recrie manualmente todos os contadores de desempenho executando o lodctr /Rcomando com privilégios administrativos:

cd \windows\system32
lodctr /R
mika
fonte
Eu tentei, mas ainda não está funcionando
greg121
4

OK, acho que encontrei uma solução.

O problema parece estar na mistura de aplicativos de 32 bits e 64 bits que precisam se consultar.

Se você habilitar o serviço Host DLL de Contador de Desempenho no painel de controle Serviços, o Monitor de Atividade deverá funcionar agora.

Renaud Bompuis
fonte
1
Isso aponta para a direção certa, ou seja, contadores de desempenho. Consegui que o monitor de atividades funcionasse reconstruindo contadores de desempenho usando lodctr / R, mas o status do Host DLL de Contador de Desempenho (iniciado / manual / desativado) não importa no meu caso.
mika
2

No caso mais simples, tudo o que você precisa fazer é reiniciar o SSMS. Acabei de ter esse problema com o SSMS 2008 R2 em execução no servidor 2005 depois de perder a conexão de rede enquanto o Activity Monitor estava em execução. Eu tentei alguns truques antes de decidir reiniciar o SSMS e foi isso que ajudou.

Carlos
fonte
1

Se o SQL estiver em execução em um servidor ou cluster do Windows 2008 R2, acesse o aplicativo Monitor de Desempenho, expanda os Conjuntos de Coleta de Dados e selecione o Desempenho do Sistema, se a seta estiver verde na linha abaixo do menu, clique nele. Isso reiniciará os contadores. Você pode fazer o mesmo para o conjunto de coleta de diagnóstico do sistema.

Em seguida, basta atualizar ou abrir uma nova conexão com a instância SQL para a qual você deseja abrir o SSMS Activity Monitor, pois isso deve ter resolvido o seu problema.

Eu acabei de tropeçar nisso hoje. Obviamente, a mensagem de erro dizendo Usar o menu de contexto no painel de visão geral para retomar o Activity Monitor não me ajudou em nada.

Espero que isso ajude alguém.

user82106
fonte
1

Eu pensei em publicar minha experiência com esse problema.

Sintomas - O SQL Server 2008 R2, na máquina Dell, sofreu subitamente uma enorme degradação de desempenho. Os aplicativos do usuário ficaram muito lentos ao realizar consultas. O monitor de atividades seria iniciado - mas o erro de tempo limite do processo acima ocorreria se você tentasse abrir a lista de processos.

Os backups restaurados dos bancos de dados tiveram um bom desempenho em um segundo servidor com metade da memória. A restauração desses mesmos backups no servidor original não resolveu o problema.

Corri dbcc em todos os bancos de dados, reconstruí índices. Recriar forçado do arquivo de paginação do Windows. Tentei reiniciar o servidor SQL. Tentei reiniciar o servidor. Nada disso funcionou. Redefina os contadores de desempenho conforme descrito acima - isso melhorou o uso da CPU do servidor, mas não resolveu nenhum problema.

Nosso administrador de rede queria descartar problemas de hardware. Ele atualizou os drivers de dispositivo dos controladores RAID e depois desligou o servidor. Ele usou uma sequência de energia da Dell para limpar a memória, isso envolvia a desconexão da fonte de alimentação. Após reiniciar, o servidor teve um bom desempenho.

Acreditamos que o ciclo de energia resolveu o problema e que o problema subjacente estava na memória do hardware.

John
fonte
0

Eu estava recebendo a mesma mensagem de erro e visualizava os detalhes técnicos. Isso me levou ao Microsoft.SqlServer.Management.ResourceMonitoring.dll. Decompilei o método que estava lançando o erro e, após um pouco de rastreamento no código, encontrei uma área em que um PerformanceCounter no grupo "Process" estava tentando ser instanciado. Bem, eu entrei no Perfmon e esse grupo não estava lá. Outros balcões estavam funcionando, mas esse não estava lá. Parece que esse grupo foi desativado de alguma forma.

Como corrigi-lo: use regedit para encontrar HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ PerfProc \ Performance, onde há uma chave chamada Disable Performance Counters, exclua-a ou defina-a como 0 Você pode precisar reiniciar depois de alterar a chave.


fonte
0

Ainda não posso comentar, portanto, a nova resposta ...

Eu tentei a sugestão da EightVans primeiro

Como corrigi-lo: use regedit para encontrar HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ PerfProc \ Performance, onde há uma chave chamada Disable Performance Counters, exclua-a ou defina-a como 0 Você pode precisar reiniciar depois de alterar a chave.

E eu ainda experimentei o problema. Então tentei a sugestão de renaud:

Se você habilitar o serviço Host DLL de Contador de Desempenho no painel de controle Serviços, o Monitor de Atividade deverá funcionar agora.

E eu ainda experimentei o problema. Então tentei a sugestão de Mika:

Verifique se existem contadores de desempenho do SQLServer no Monitor de desempenho. Caso contrário, recrie manualmente todos os contadores de desempenho executando o comando lodctr / R com privilégios administrativos:

Agora o monitor de atividades está funcionando!

Ed Sykes
fonte
0

eu só faço

Sugestão da Oito Vans primeiro

Como corrigi-lo: use regedit para encontrar HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ PerfProc \ Performance, onde há uma chave chamada Disable Performance Counters, exclua-a ou defina-a como 0 Você pode precisar reiniciar depois de alterar a chave.

e sugestão de Mika:

Verifique se existem contadores de desempenho do SQLServer no Monitor de desempenho. Caso contrário, recrie manualmente todos os contadores de desempenho executando o comando lodctr / R com privilégios administrativos:

E o monitor de atividades agora está sendo executado no meu sistema!

Raul
fonte