SQL Server エージェントのマスタ ジョブを作成する方法 (Transact-SQL)
更新 : 2005 年 12 月 5 日
このトピックでは、ストアド プロシージャを使用して Microsoft SQL Server エージェントのマスタ ジョブを作成する方法について説明します。
SQL Server エージェント用に使用される Windows アカウントがマルチサーバー環境に与える影響については、「マルチサーバー環境の作成」を参照してください。
SQL Server エージェントのマスタ ジョブを作成するには
sp_add_job を実行して、ジョブを作成します。
sp_add_jobstep を実行して、1 つ以上のジョブ ステップを作成します。
sp_add_schedule を実行して、スケジュールを作成します。
sp_attach_schedule を実行して、スケジュールをジョブにアタッチします。
sp_add_jobserver を実行して、ジョブが実行される対象サーバーを指定します。
SQL Server エージェントのマスタ ジョブの変更は、関係するすべての対象サーバーに伝達する必要があります。sp_add_jobserver が呼び出されるまで対象サーバーはジョブをダウンロードしないので、Microsoft では、sp_add_jobserver を実行する前に、特定のジョブのすべてのジョブ ステップとジョブ スケジュールを完了しておくことをお勧めしています。この順序に従わなかった場合は、後で sp_post_msx_operation を呼び出して、変更されたジョブを対象サーバーが再びダウンロードするように要求する必要があります。
セキュリティ
プロキシに関連付けられているステップを持つ分散ジョブは、対象サーバーのプロキシ アカウントのコンテキストで実行されます。次の条件を満たしていることを確認してください。満たしていないと、プロキシに関連付けられているジョブ ステップがマスタ サーバーから対象サーバーにダウンロードされません。
- レジストリ サブキー \HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\<instance_name>\SQL Server Agent\AllowDownloadedJobsToMatchProxyName (REG_DWORD) が 1 (true) に設定されていること。既定では、この値は 0 (false) に設定されます。
- ジョブ ステップを実行するマスタ サーバー プロキシ アカウントと同じ名前を持つ対象サーバーにプロキシ アカウントが存在すること。
マスタ サーバーから対象サーバーにプロキシ アカウントをダウンロード中に、これらのアカウントを使用するジョブ ステップが失敗した場合は、msdb データベースの sysdownloadlist テーブルの error_message 列を参照して、以下のエラー メッセージの有無を確認します。
- "ジョブ ステップではプロキシ アカウントが必要ですが、対象サーバーで一致するプロキシが無効です。"
このエラーを解決するには、AllowDownloadedJobsToMatchProxyName レジストリ サブキーを 1 に設定します。 - "プロキシ アカウントが見つかりませんでした。"
このエラーを解決するには、対象サーバー上にプロキシ アカウントが存在し、ジョブ ステップを実行するマスタ サーバー プロキシ アカウントと同じ名前が付けられているかどうかを確認します。
参照
その他の技術情報
システム ストアド プロシージャ (Transact-SQL)
sp_add_job (Transact-SQL)
sp_add_jobstep (Transact-SQL)
sp_add_schedule (Transact-SQL)
sp_attach_schedule (Transact-SQL)
sp_add_jobserver (Transact-SQL)
sp_post_msx_operation (Transact-SQL)
sp_msx_get_account (Transact-SQL)
sp_msx_set_account (Transact-SQL)