Як відновити лічильники продуктивності SQL Server 2008 R2?


11

Я використовую розробник SQL Server 2008 R2 в Windows 7 x64, як екземпляр за замовчуванням. Чомусь лічильники продуктивності SQL Server, схоже, зникли. SELECT * FROM sys.dm_os_performance_countersповертає нульові ряди.

Я спробував бігти lodctr /T:perf-MSSQLSERVERsqlctr.ini. Хоча він завершився без помилок, він нічого не виправив, навіть після перезапуску служби віддаленого реєстру. Насправді лічильники зараз відсутні в парфмоні. 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"?)
gbn

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

Відповіді:


4

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


У моєму випадку бракувало більше лічильників, не тільки SQL Server. lodctr /Rзробив трюк і відновив їх усіх. Дуже дякую за трюк.
Endrju

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-бітну версію Performance Monitor, щоб переглянути лічильники, як пояснено в цьому блозі MSDN . Зробіть це, використовуючи будь-який із цих методів:

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

Також переконайтеся, що ви використовуєте SQL Server із останніми пакетами оновлення та виправленнями. Стаття 2708726 MSKB описує проблему, коли файли Performance Monitor .dll не оновлюються належним чином при застосуванні оновлень до SQL Server 2008 R2 або SQL Server 2012.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.