デフォルトのインスタンスとして、Windows 7 x64でSQL Server 2008 R2 Developerを実行しています。何らかの理由で、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'に関連付けられた値 'First Counter'をクエリできません。 SQL Serverパフォーマンスカウンターが無効になっています。
SQL 2012 RC0のインストールが失敗したために問題が引き起こされたのではないかと思います。 SQL Server 2008 R2を再インストールする以外に、回復方法に関する提案はありますか?
lodctr /R
を試すと、レジストリに保存されている情報からすべてのパフォーマンスカウンターが再構築されます。
これを読む:
正確な指示は100%正確ではありません。デフォルトのインスタンスを使用していると仮定して、これを行う必要があります。
unlodctr MSSQLSERVER
lodctr perf-MSSQLSERVERsqlperf.ini
lodctr /T:MSSQLSERVER
その後、再起動します。
パフォーマンスカウンターの欠落は繰り返し発生する問題です。
いくつかの既知のソリューションがここにリストされています: http://blogs.msdn.com/b/varund/archive/2010/06/25/sql-server-missing-performance-counters-a-consolidated-list-of -known-issues.aspx
SQL Serverのパフォーマンスカウンターが無効になっているか、パフォーマンスカウンターのレジストリエントリが破損しているようです。
lodctr /E:MSSQLSERVER
は、パフォーマンスカウンターのレジストリ設定を再読み込みします。
Windowsの64ビットインストールで32ビットバージョンのSQL Serverを実行している場合は、32ビットバージョンのパフォーマンスモニターを使用して、カウンターを表示する必要があります このMSDNブログ 。次のいずれかの方法を使用してください。
perfmon.exe
フォルダから%windir%\SysWOW64
を実行しますmmc /32 perfmon.msc
を実行しますまた、SQL Serverが最新のサービスパックとホットフィックスで実行されていることを確認してください。 MSKB記事2708726 は、SQL Server 2008 R2またはSQL Server 2012に更新を適用すると、パフォーマンスモニターの.dllファイルが正しく更新されない問題について説明しています。