Как восстановить счетчики производительности SQL Server 2008 R2?


11

Я использую SQL Server 2008 R2 Developer в Windows 7 x64 в качестве экземпляра по умолчанию. По какой-то причине счетчики производительности SQL Server, похоже, исчезли. SELECT * FROM sys.dm_os_performance_countersвозвращает ноль строк

Я пытался бежать lodctr /T:perf-MSSQLSERVERsqlctr.ini. Хотя он завершился без ошибок, он ничего не исправил, даже после перезапуска службы удаленного реестра. Фактически, счетчики теперь отсутствуют в perfmon. unlodctr MSSQLSERVERвсе еще говорит, что счетчики не установлены, но lodctr /Q:MSSQLSERVERговорит, что они присутствуют и включены. Обычные счетчики Windows и .NET работают нормально.

В журнале ошибок Windows я вижу ошибку 8317:

Не удается запросить значение «Первый счетчик», связанное с разделом реестра «HKLM \ SYSTEM \ CurrentControlSet \ Services \ MSSQLSERVER \ Performance». Счетчики производительности SQL Server отключены.

Я подозреваю, что проблема могла быть вызвана ошибкой установки SQL 2012 RC0. Любые предложения о том, как восстановить, кроме переустановки SQL Server 2008 R2?


Вы имеете в виду "Visual Studio 11" (не "2011"?)
ГБН

Да, VS 11. Проблема с вопросом о сбое сервера заключается в том, что ни один из опубликованных ответов не решил проблему. Я надеюсь, что пользователи, ориентированные на администраторов баз данных, смогут предоставить более полезную помощь.
RickNZ

Ответы:


4

Попробуйте lodctr /R, он перестроит все счетчики производительности из информации, хранящейся в реестре.


В моем случае пропало больше счетчиков, не только SQL Server. lodctr /Rсделал свое дело и восстановил их всех. Большое спасибо за трюк.
Эндрю

4

Прочитайте это:

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

Точные инструкции не на 100% верны. Вы должны сделать это, предполагая, что вы используете экземпляр по умолчанию:

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

Затем перезагрузите компьютер.


Я обнаружил, что путь к символьному файлу в моем perf-MSSQLSERVERsqlctr.ini указан неверно. Я исправил это, выполнил lodctr /T:perf-MSSQLSERVERsqlctr.ini, lodctr perf-MSSQLSERVERsqlctr.ini и перезапустил SQL Server.
Der_Meister


2

Похоже, что счетчики производительности для SQL Server отключены или записи реестра для счетчиков производительности повреждены.

lodctr /E:MSSQLSERVER перезагрузит параметры реестра счетчика производительности.


0

Если вы используете 32-разрядную версию SQL Server в 64-разрядной установке Windows, вам необходимо использовать 32-разрядную версию системного монитора для просмотра счетчиков, как описано в этом блоге MSDN . Сделайте это, используя любой из этих методов:

  1. Запустить perfmon.exeиз %windir%\SysWOW64папки
  2. Запустите команду mmc /32 perfmon.msc

Также убедитесь, что вы используете SQL Server с последним пакетом обновления и исправлениями. В статье 2708726 MSKB описана проблема, из-за которой DLL-файлы системного монитора не обновляются должным образом при применении обновлений к SQL Server 2008 R2 или SQL Server 2012.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.