Aracılığıyla paylaş


SQL Server エージェントのジョブの結果をメール通知する方法

Microsoft SQL Server サポートチーム
佐藤美菜

SQL Server の標準機能で、メンテナンス プランや SQL Server エージェント ジョブを利用して、定期的にバックアップを取得したり、ジョブを実行できます。「ついでに、SQL Server の標準機能でその結果をメール通知したいけれど、標準機能でできる?」というご質問をいただきます。
ジョブ管理ツールがなくても、SQL Server の標準機能で行えるメール通知方法がありますので、今回は具体的な設定方法をご案内します。

※ SQL Server エージェントが提供されていない Express Edition では利用できません。その他のエディションでは利用可能です。

 

概要

メンテナンス プランや SQL Server エージェント ジョブの結果をメール通知するには以下の設定を行います。

  1. データベース メールの構成
  2. SQL Server エージェント のメール プロファイルの設定
  3. オペレータの作成
  4. ジョブ通知の設定

順番に設定する手順をご紹介します。
なお、通知されるメールの内容は決まっており、残念ながらカスタマイズできません。メールの文言を変更したいなどカスタマイズの要望がある場合は、サードパーティー製のツール等をお探しください。

 

1. データベース メールの構成

( 1 ) SQL Server Management Studio(SSMS) のオブジェクト エクスプローラーから、[管理] – [データベース メール] を選択して右クリックし、メニューより [データベース メールの構成] を選択します。
image

( 2 ) [データベース メール構成ウィザードへようこそ] の画面が表示された場合は、[次へ] をクリックします。[構成タスクの選択] にて、[次のタスクを実行してデータベース メールをセットアップする] を選択し、[次へ] をクリックします。
image

( 3 ) [新しいプロファイル] 画面で下記を設定します。
・[プロファイル名] に任意のプロファイル名を設定
・[SMTP アカウント] - [追加] を実行
image

( 4 ) [新しいデータベース メール アカウント] 画面で下記を設定します。
・[アカウント名] に任意のアカウント名を設定
・[電子メール アドレス] に任意のメールアドレスを設定
・[電子メールの返信] に任意のメールアドレスを設定
・[サーバー名] に SMTP サーバ名を設定
・[ポート番号] に SMTP サーバで使用しているポート番号を設定
・[SMTP 認証] のオプションで SMTP サーバで設定されている適切な認証モードを選択、設定
image

( 5 ) [次へ] でウィザードを進め設定を完了します。次に、データベース メールによるメールのテスト送信を行います。
・SQL Server Management Studio [管理] - [データベースメール] を右クリックし、メニューから [テスト電子メールの送信] を実行
・[データベース メール プロファイル] に上記 ( 3 ) で作成したプロファイルを選択
・[宛先] に送信先のメールアドレスを設定
・[テスト電子メールの送信] を実行
・[管理] - [データベース メール] - [データベース メール ログの表示] を実行しエラーがないことを確認
image

( 6 ) 宛先に設定したメールアドレスに、テストメールが送信されたことを確認します。

2. SQL Server エージェントのメール プロファイルの設定

※ SQL Server エージェント サービスが開始状態で実施します。

( 1 ) SQL Server Management Studio のオブジェクトエクスプローラから [SQL Server エージェント] を右クリックし、メニューから [プロパティ] を選択します。

( 2 ) [警告システム] ページを選択します。

( 3 ) メール セッション欄の [メール プロファイルを有効にする] にチェックを入れ、[メールシステム] にて [データベース メール] を選択し、[メール プロファイル] にて 1. の手順で作成した、メールプロファイルを選択します。
image

( 4 ) OK をクリックしてウインドウを閉じ、SQL Server エージェントサービスを再起動します。

3. オペレータの作成

( 1 )  SQL Server Management Studio のオブジェクトエクスプローラから [SQL Server エージェント] - [オペレーター ] を右クリックし、メニューから [新しいオペレーター] を選択します。

( 2 )  [名前] に任意の名前を入力し、[電子メール名] に、メールを送信する宛先のメールアドレスを入力します。
image

( 3 ) OK をクリックしてウインドウを閉じます。

4.  ジョブ通知の設定

( 1 ) SQL Server Management Studio のオブジェクトエクスプローラから [SQL Server エージェント] - [ジョブ] を展開し、ジョブ失敗時にメール通知を実施するジョブを右クリックし、メニューからプロパティを選択します。

( 2 ) [通知] ページを選択し、[ジョブ完了時に実行する操作] 欄の [電子メール] にチェックを入れ、プルダウンメニューから c) にて作成したオペレーター、送信のタイミングとして [ジョブ失敗時]/[ジョブ成功時]/[ジョブ完了時] を選択します。
image

( 3 ) OK をクリックし、ウインドウを閉じます。

 

設定は以上で完了です。

送付されるメールの内容は下記のような内容となります。

(ジョブ成功時メール例)

ジョブ実行:         ''TestMaintenancePlan.Subplan_1'' は 2016/05/23 の 16:59:05 に実行されました実行時間:             0 時間、0 分、14 秒状態:                    成功メッセージ:         ジョブは成功しました。 ジョブは ユーザー Domain\user01 によって起動されました。最終実行ステップはステップ 1 (Subplan_1) でした。.

(ジョブ失敗時メール例)

ジョブ実行:         ''TestMaintenancePlan.Subplan_1'' は 2016/05/23 の 16:55:26 に実行されました実行時間:             0 時間、0 分、7 秒状態:                    失敗メッセージ:         ジョブは失敗しました。 ジョブは ユーザー Domain\user01 によって起動されました。最終実行ステップはステップ 1 (Subplan_1) でした。.

 

[参考情報]

ジョブ応答の指定
https://technet.microsoft.com/ja-jp/library/ms175152.aspx

データベース メールを使用するように SQL Server エージェント メールを構成する
https://msdn.microsoft.com/ja-jp/library/ms186358.aspx