2012年1月27日金曜日

SMTPを使用してSQL Serverで自動化されたジョブの電子メール通知の送信

あなたのデータベースサーバ上で実行しているバックアップジョブを自動化したら、時々あなたは彼らも実行されていることを忘れる。その後、彼らが正常に実行されているかどうかを確認することを忘れないし、データベースのクラッシュuntil実現せず、現在のバックアップを持っていないので、それを復元することはできません。

それはあなたがあなたのコーヒーをすすりながら、あなたが作業しているふりをしているときに、毎朝ジョブのステータスを確認できるよう、電子メール通知が入ってくる場所です。

SQL Serverは、電子メールを送信するの組み込みメソッドを提供しますが、残念ながらそれはあなたがOutlookと必ずしも電子メールを送信するために理想的な方法ではないサーバー上にインストールされているプロファイルを持っている必要があります。ありがたいことに、SMTP経由でメールを送信できるようにするサーバー上のストアドプロシージャをインストールする必要が別の方法が、あります。

ここsp_SQLNotifyストアドプロシージャをダウンロード.

あなたのSMTPサーバのIPアドレスを入れて、ストアドプロシージャの1行を編集したいと思うでしょう。

EXEC @ HR = sp_OASetPropertyの呼び出し@ iMsg、"Configuration.fields("http://schemas.microsoft.com/cdo/configuration/smtpserver")。値'、'10 .1.1.10"

マスターデータベースにストアドプロシージャをインストールするので、簡単に必要な箇所から使用することができます。

SQL Serverエージェントジョブのリストを開き、そしてあなたのために通知を作成しようとしているジョブのプロパティを選択します。

[ステップ]タブをクリックすると、次のような画面が表示されます。

新しいジョブステップを作成するには、Newボタンをクリック。我々は、成功した場合に電子メール通知を送信するには、この手順を使用します。

ステップ名:電子メール通知成功

下図のようにコマンドウィンドウにこのSQLを入力してください。ご使用の環境に合わせて、電子メールアドレスやメッセージの件名をカスタマイズしたくなるでしょう。

execのmaster.dbo.sp_SQLNotify"server@localserver.com'、'admin@localserver.com"、"バックアップジョブの成功は"、"バックアップジョブが正常に完了しました"

[OK]をクリックし、別のステップを作成するには、もう一度[新規作成]ボタンをクリックします。これは、障害の通知のステップになります。

ステップ名:電子メール通知の失敗

SQL:

execのmaster.dbo.sp_SQLNotify"server@localserver.com'、'admin@localserver.com"、"バックアップジョブの失敗は、"バックアップジョブが失敗しました"

今のアイデアは、アイテムが特定のワークフローに従うようにすることです。最初のステップ1で[編集]をクリックし、次に示すようにプロパティを設定します。

私たちが言っていることが、成功に、成功のステップに行くことです、そして失敗した場合に、故障のステップに進みます。かなりシンプルなもの。

今第二段階、"電子メール通知の成功"というラベルを編集し、そしてここに見られるようにプロパティを設定します。

我々は、通知のジョブが成功した場合、その後ちょうどステップ3を実行せずにジョブを終了することを言っている。我々はこれを指定しない場合、我々は2つ​​の電子メール、首尾良くと失敗と1つを得ることになります。

今第三段階、"電子メール通知の失敗"というラベルを編集し、そしてここに見られるようにプロパティを設定します。

今すぐあなたの仕事の手順は次のようになります。

これで、成功または失敗のいずれかの受信トレイに電子メール通知が必要です。

注:この記事で使用するストアドプロシージャが検出されました here、元のソースではないかもしれないことが。

ここsp_SQLNotifyストアドプロシージャをダウンロード.

0 件のコメント:

コメントを投稿