次の方法で共有


ポーリングサーバー

適用対象:SQL Server

大事な

Azure SQL Managed Instance では、SQL Server エージェントのほとんどの機能が現在サポートされているわけではありません。 詳細については、Azure SQL Managed Instance T-SQL と SQL Server の違いに関するページ、または「SQL Managed Instance 内での SQL Agent ジョブの制限事項」を参照してください。

マルチサーバー管理が実装されると、ターゲット サーバーは定期的にマスター サーバーに接続して、実行されたジョブに関する情報をアップロードし、新しいジョブをダウンロードします。 マスター サーバーに接続するプロセスは、サーバー ポーリング と呼ばれ、 定期的な ポーリング間隔で実行されます。

ポーリング間隔

ポーリング間隔 (既定では 1 分) は、ターゲット サーバーがマスター サーバーに接続して命令をダウンロードし、ジョブの実行結果をアップロードする頻度を制御します。

ターゲット サーバーは、マスター サーバーをポーリングするときに、dbo.sysdownloadlist データベースの msdb テーブルからターゲット サーバーに割り当てられた操作を読み取ります。 これらの操作は、マルチサーバー ジョブとターゲット サーバーの動作のさまざまな側面を制御します。 操作の例としては、ジョブの削除、ジョブの挿入、ジョブの開始、ターゲット サーバーのポーリング間隔の更新などがあります。

操作は、次のいずれかの方法で dbo.sysdownloadlist テーブルにポストされます。

  • dbo.sp_post_msx_operation ストアド プロシージャを使用して明示的に指定します。

  • 他のジョブ ストアド プロシージャを使用して暗黙的に。

ジョブ ストアド プロシージャを使用してマルチサーバー ジョブ のスケジュールまたはジョブ ステップを変更する場合、または SQL 分散管理オブジェクト (SQL-DMO) を使用してマルチサーバー ジョブを制御する場合は、マルチサーバー ジョブの手順またはスケジュールを変更した後で次のコマンドを発行します。

EXECUTE msdb.dbo.sp_post_msx_operation 'INSERT', 'JOB', '<job id>'  

このコマンドを実行すると、ターゲット サーバーが現在のジョブ定義と同期されます。

次の項目を使用する場合、操作を明示的にポストする必要はありません。

  • マルチサーバー ジョブを制御する Microsoft SQL Server Management Studio。

  • ジョブ スケジュールまたはジョブ ステップを変更しないジョブ ストアド プロシージャ。

ターゲット サーバーにマスター サーバーのポーリングを強制する

関連項目