none
SQL Server のパフォーマンス カウンターが表示されず設定できない場合の対処方法 RRS feed

  • Question

  • こんにちは。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 を再起動することで、状況が改善するかご確認します。
    Tuesday, June 15, 2021 3:22 PM
    Owner