none
ログリーダー エージェントのMax Worker Threadの変更 RRS feed

  • 質問

  • 現在Windows 2003 server R2 SP2 Standard edition(32bit)上でSQL Server2005 SP3 Standard edition を動かしています。

    このSQL Serverはトランザクションレプリケーションのディストレビュータサーバとしてのみ使用しております。

    現在レプリケーションしているDB数は60程度ですがあと20以上は設定する予定です。

    現在パブリケーションを設定すると毎回「ログリーダーエージェント ワーカー スレッドを待機しています」となり、ジョブを停止してからステップで開始すると実行状態になります。これを行ってからサブスクライバの設定を行っています。

    調べたところ「http://support.microsoft.com/kb/306457/ja」のページを見つけました。が、レジストリにSQLServerAgentが見当たりませんでした。このページにはSQLのバージョンが書いてありませんでしたが2005ではないのでしょうか。

    2005 SP3の場合はどのようにしてログ リーダーエージェントのMax_worker_threadsを増やしたらいいのでしょうか。

    MS SQL Serverにはあまり詳しくはなくレプリケーションそのものも手さぐりでやっとセッティングできるようになりました。出来るだけ具体的な方法をご教授頂ければ幸いです。

    よろしくお願いいたします。

    2013年5月25日 2:45

回答

  • 一般的な max worker thread とは別なのですね。

    KB の情報ですと、SQL Server 2005 以降は、msdb データベースの syssubsystems で制御されているように見受けられます。
    http://msdn.microsoft.com/ja-jp/library/ms174368(v=sql.90).aspx

    このテーブルの情報ですが更新可能でしたので、SubSystem が LogReader となっている行の max_worker_threads を更新してみて調整可能かを確認されてみてはいかがでしょうか。
    # 設定変更後は SQL Server Agent サービスの再起動が必要になるかと。


    2013年5月27日 4:31
    モデレータ

すべての返信

  • 技術情報を確認させていただいたところ、いくつかのパスの情報がMssql7となっていましたので SQL Server 7.0 の情報なのかもしれません。

    SQL Server 2005 であれば、max worker thread は SQL Server Management Studio から変更することができますのでこちらの値を調整されてみてはいかがでしょう。
    http://msdn.microsoft.com/ja-jp/library/ms187024(v=sql.90).aspx

    ご参考になれば幸いです。

    2013年5月26日 11:37
    モデレータ
  • Masayuki.Ozawa様

    ご回答ありがとうございます。

    SQL Server Management Studioにおいて、プロパティのプロセッサからワーカスレッド最大数は設定しているのですが症状が変わらず、ここでのワーカスレッド数はSQL Serverの処理(なんと表現していいのかわかりませんが)数であって、エージェントのジョブに関しては別の設定があるのではないかと勝手に考えていましたが違うのでしょうか?

    SQL Server Management Studioのワーカスレッドを設定してもログリーダーエージェントは相変わらず待機状態になります。

    が、その他の処理が待機中になることはないのでエージェント毎のMax値があるのではないかと考えておりました。

    エージェント毎の最大値はSQL 2005にはないのでしょうか。

    2013年5月27日 2:50
  • 一般的な max worker thread とは別なのですね。

    KB の情報ですと、SQL Server 2005 以降は、msdb データベースの syssubsystems で制御されているように見受けられます。
    http://msdn.microsoft.com/ja-jp/library/ms174368(v=sql.90).aspx

    このテーブルの情報ですが更新可能でしたので、SubSystem が LogReader となっている行の max_worker_threads を更新してみて調整可能かを確認されてみてはいかがでしょうか。
    # 設定変更後は SQL Server Agent サービスの再起動が必要になるかと。


    2013年5月27日 4:31
    モデレータ
  • Masayuki.Ozawa様

    ご回答ありがとうございました。

    ご教授頂きました方法でmax_worker_threadsの値を変更したところ

    ワーカースレッドの待機状態が解消いたしました。

    default値は50のようです。

    負荷等を監視しながら徐々に様子を見ながらあげていこうと思います。

    誠にありがとうございました。

    2013年5月27日 5:05