自動管理のコンポーネント

SQL Server エージェントでは、次のコンポーネントを使用して、実行するタスク、タスクを実行する時期、タスクの成功/失敗の報告方法を定義します。また、SQL Server エージェントにより、自動管理のためのセキュリティが確保されます。SQL Server エージェントのセキュリティの詳細については、「SQL Server エージェントのセキュリティ管理」を参照してください。

ジョブ

ジョブとは、SQL Server エージェントで実行される特定の一連の処理のことです。ジョブを使用して一度管理タスクを定義すると、そのタスクを何度も実行したり、それが正常に終了したかどうかを監視できます。ジョブは 1 つのローカル サーバーで実行することも、複数のリモート サーバーで実行することもできます。

重要な注意事項重要

SQL Server フェールオーバー クラスターのインスタンスでフェールオーバー イベントが発生したときに実行されていた SQL Server エージェント ジョブは、別のフェールオーバー クラスター ノードにフェールオーバーしても再開されません。また、Hyper-V ノードが一時停止したときに実行されていた SQL Server エージェント ジョブは、一時停止によって別のノードにフェールオーバーしても再開されません。ジョブの開始後、フェールオーバー イベントが原因でそのジョブが完了しなかった場合は、開始したことがログに記録されますが、完了か失敗かを示すログ エントリは追加されません。このようなシナリオの SQL Server エージェント ジョブは終了していないように見えます。

ジョブは、次のような方法で実行できます。

  • 1 つ以上のスケジュールに従って実行する。

  • 1 つ以上の警告に応答して実行する。

  • sp_start_job ストアド プロシージャの実行によって実行する。

ジョブ内の各処理をジョブ ステップといいます。たとえば、ジョブ ステップは、Transact-SQL ステートメントの実行、SSIS パッケージの実行、または Analysis Services サーバーへのコマンドの発行などで構成されます。ジョブ ステップはジョブの一部として管理されます。

各ジョブ ステップは、特定のセキュリティ コンテキストで実行されます。Transact-SQL を使用するジョブ ステップでは、EXECUTE AS ステートメントを使用して、ジョブ ステップにセキュリティ コンテキストを設定します。その他のジョブ ステップでは、プロキシ アカウントを使用して、ジョブ ステップにセキュリティ コンテキストを設定します。ジョブ ステップに対するセキュリティ コンテキストの設定の詳細については、「SQL Server エージェントのセキュリティ管理」を参照してください。

ジョブの詳細については、「ジョブの作成」を参照してください。

スケジュール

スケジュールでは、ジョブを実行する時期を指定します。複数のジョブを同じスケジュールで実行したり、1 つのジョブに複数のスケジュールを割り当てることができます。スケジュールでは、ジョブを実行する時期について次の条件を定義できます。

  • SQL Server エージェントが開始されるたびに、ジョブを実行する。

  • コンピューターの CPU 使用率がアイドルとして定義したレベルになったときに、ジョブを実行する。

  • 指定した日時に 1 回だけジョブを実行する。

  • スケジュールに従って定期的にジョブを実行する。

詳細については、「スケジュールの作成とジョブへのアタッチ」を参照してください。

警告

警告とは、特定のイベントに対する自動応答のことです。たとえば、ジョブが開始されたり、システム リソースが特定のしきい値に達したときなどがイベントと見なされます。警告では、それが発生する条件を定義します。

警告は、次のいずれかの条件に対して生成できます。

  • SQL Server のイベント

  • SQL Server のパフォーマンス状態

  • SQL Server エージェントが実行されているコンピューターで発生した Microsoft Windows Management Instrumentation (WMI) イベント

警告では、次のアクションを実行できます。

  • 1 人または複数のオペレーターへの通知

  • ジョブの実行

詳細については、「警告の定義」を参照してください。

オペレーター

オペレーターは、SQL Server の 1 つの以上のインスタンスについて、そのメンテナンスを担当する管理責任者の連絡先情報を定義します。一部の企業では、オペレーターの責任は 1 人に割り当てられます。サーバーを複数台使用している企業では、多数の担当者がオペレーターの責任を共有します。オペレーターにはセキュリティ情報を指定せず、セキュリティ プリンシパルを定義しません。

次の方法で、SQL Server からオペレーターに警告を通知できます。

  • 電子メール

  • 電子メール経由のポケットベル

  • net send

注意

net send を使用して通知を送信するには、SQL Server エージェントが置かれているコンピューターで Windows Messenger サービスを開始する必要があります。

重要な注意事項重要

今後のバージョンの Microsoft SQL Server では、SQL Server エージェントからポケットベル オプションと net send オプションが削除される予定です。新しい開発作業では、これらの機能の使用を避け、現在これらの機能を使用しているアプリケーションは修正するようにしてください。

電子メールまたはポケットベルを使用してオペレーターに通知を送信するには、データベース メールまたは SQL Mail を使用するように SQL Server エージェントを構成する必要があります。詳細については、「データベース メール」を参照してください。

オペレーターは、個人のグループを表す別名として定義できます。その場合、その別名のすべてのメンバーが同時に通知を受け取ることになります。詳細については、「オペレータの定義」を参照してください。