こんにちは。SQL Server サポート チームです。
今回はパフォーマンス モニターで SQL Server のパフォーマンス カウンターが表示されず、設定できない場合の情報です。
SQL Server のパフォーマンス カウンターの採取設定を実行した際に、SQL Server のパフォーマンス カウンターが表示されず、設定できない場合があります。
この場合、以下の 対処 1 を実施することで SQL Server のパフォーマンス カウンターの設定ができるようになる可能性があります。
対処 1 では改善されない場合、対処 2 を実施することで、SQL Server のパフォーマンスカウンターの設定ができるようになる可能性があります。
対処 1
SQL Server のパフォーマンス ライブラリを再登録することで、SQL Server のパフォーマンス カウンターを設定できるようになる可能性があります。
手順
1) パフォーマンス モニターを起動している場合には終了します。
2) コマンドプロンプトを [管理者として実行] で起動し、下記 SQL Server の Binn フォルダに移動します。
以下は SQL Server 2014 の既定のインスタンスの例です。
SQL Server 2014 : C:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\Binn
使用しているバージョンやインスタンス名に合わせて MSSQL12.MSSQLSERVER の箇所を変更します。
例)
SQL Server 2016 :
C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\Binn
SQL Server 2017 :
C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\MSSQL\Binn
SQL Server 2019 :
C:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\Binn
3) 下記を実行して、SQL Server 関連のカウンターを削除します。
//既定のインスタンスの場合
unlodctr MSSQLServer
unlodctr SQLServerAgent
//名前付きインスタンスの場合
unlodctr MSSQL$<名前付きインスタンス名>
unlodctr SQLAgent$<名前付きインスタンス名>
4) 下記を実行して、SQL Server 関連のカウンターを再登録します。
//既定のインスタンスの場合
lodctr perf-MSSQLSERVERsqlctr.ini
lodctr perf-SQLSERVERAGENTsqlagtctr.ini
//名前付きインスタンスの場合
lodctr perf-MSSQL$<名前付きインスタンス名>sqlctr.ini
lodctr perf-SQLAgent$<名前付きインスタンス名>sqlagtctr.ini
5) パフォーマンス モニターを起動し、SQL Server 関連カウンターが採取可能であることを確認します。
6) 上記の 5) で状況が改善していない場合、OS を再起動することで、状況が改善するかご確認します。
対処 2
上記の 対処 1 を実行しても状況が改善しない場合、SQL Server のパフォーマンス カウンターでレジストリ登録されているカウンター用 dll の情報が、本来の dll の情報と異なっている可能性があります。
この場合、SQL Server のインストールされているフォルダーから dll を取得し、C:\Windows\System32 に配置し、その dll をもとにカウンターの再登録を行います。
以下の手順を実行することで、状況が改善するか確認します。
手順
1) パフォーマンス モニターを起動している場合には終了します。
2) エクスプローラーから、C:\Windows\System32 を開き、次のファイルを別フォルダーにコピーします。
万が一何か問題があった場合に、作業前の状態に戻せるようにするためのコピーです。特に問題がなければ、作業後このコピーは削除して問題ありません。
//既定のインスタンスの場合
perf-MSSQLSERVER-sqlctr<バージョン>.dll
perf-MSSQLXX.MSSQLSERVER-sqlagtctr.dll
※ MSSQLXX は MSSQL12 等の使用しているバージョンに置き換えます。
//名前付きインスタンスの場合
perf-MSSQL$<名前付きインスタンス名>-sqlctr<バージョン>.dll
perf-MSSQLXX.<名前付きインスタンス名>-sqlagtctr.dll
※ MSSQLXX は MSSQL12 等の使用しているバージョンに置き換えます。
MSSQLXX部分の例)
SQL Server 2014: MSSQL12
SQL Server 2016: MSSQL13
SQL Server 2017: MSSQL14
SQL Server 2019: MSSQL15
<バージョン>部分の例)
SQL Server 2014 SP2: 12.2.5000.0
SQL Server 2014 SP3 CU4: 12.3.6329.1
SQL Server 2016 SP2: 13.2.5026.0
SQL Server 2017 CU24: 14.0.3391.2
SQL Server 2019 CU11: 15.0.4138.2
3) コピー後、C:\Windows\System32 からこれらのファイルを削除します。
4) 以下のフォルダーから、以下の 2 つの dll ファイルを取得し、別フォルダーにコピーします。
C:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\Binn\DllTmp64
※ 使用しているバージョンやインスタンス名に合わせて MSSQL12.MSSQLSERVER の箇所を変更します。
コピーするファイル:
sqlctr120.dll
sqlagentctr120.dll
※ 使用しているバージョンによって、ファイル名の120の部分は異なります。
SQL Server 2014: 120
SQL Server 2016: 130
SQL Server 2017: 140
SQL Server 2019: 150
5) ファイルのコピー先フォルダーへ移動し、コピーしたファイルのファイル名を、上記の 2) の手順で
コピーしたファイル名と同じ名前に変更します。
//既定のインスタンスの場合
sqlctr120.dll ===> perf-MSSQLSERVER-sqlctr<バージョン>.dll
sqlagentctr120.dll ===> perf-MSSQLXX.MSSQLSERVER-sqlagtctr.dll
※ MSSQLXX は MSSQL12 等の使用しているバージョンに置き換えます。
//名前付きインスタンスの場合
sqlctr120.dll ===> perf-MSSQL$<名前付きインスタンス名>-sqlctr<バージョン>.dll
sqlagentctr120.dll ===> perf-MSSQLXX.<名前付きインスタンス名>-sqlagtctr.dll
※ MSSQLXX は MSSQL12 等の使用しているバージョンに置き換えます。
6) C:\Windows\System32 配下に、5) でファイル名を変更したファイルをコピーします。
7) 管理者として実行しているコマンドプロンプトから、unlodctr, lodctr コマンドで再登録します。
cd C:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\Binn
※ 使用しているバージョンやインスタンス名に合わせて MSSQL12.MSSQLSERVER の箇所を変更します。
例)
SQL Server 2016 :
C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\Binn
SQL Server 2017 :
C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\MSSQL\Binn
SQL Server 2019 :
C:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\Binn
//既定のインスタンスの場合
unlodctr MSSQLServer
unlodctr SQLServerAgent
lodctr perf-MSSQLSERVERsqlctr.ini
lodctr perf-SQLSERVERAGENTsqlagtctr.ini
//名前付きインスタンスの場合
unlodctr MSSQL$<名前付きインスタンス名>
unlodctr SQLAgent$<名前付きインスタンス名>
lodctr perf-MSSQL$<名前付きインスタンス名>sqlctr.ini
lodctr perf-SQLAgent$<名前付きインスタンス名>sqlagtctr.ini
8) パフォーマンス モニターを起動し、SQL Server 関連のカウンターが参照できるか確認します。
9) 上記の 8) で状況が改善していない場合、OS を再起動することで、状況が改善するかご確認します。