web-dev-qa-db-ja.com

SQL Serverエージェントジョブ失敗時に複数のオペレーターに通知

通知メールを送信するSQL Server 2008のジョブ設定があります 1 ジョブが失敗したときの演算子。

質問:その特定のジョブについて、複数のオペレーターに送信される通知メールをセットアップすることは可能ですか?

これに対する可能な回避策は、特定の重大度ごとにデータベースに大量のアラートを作成することであると考えていますが、これを行うためのより簡潔な方法があることを望んでいました。このルートに行くと、失敗したジョブからどのような重大度エラーがトリガーされる可能性がありますか? (私はそのような何かのために25個すべてを必要とするとは思わない)

これをsqlコマンドで実行して、失敗時に通知する演算子を追加できますか? UIを使用すると、単一の演算子のみを選択できます。

29
Mike

質問:その特定のジョブについて複数のオペレーターに送信される通知メールを設定することは可能ですか?

これが可能だとは思わない。

確かに_[msdb].[dbo].[sysjobs]_の構造を見ると、さまざまな_operator_id_列がこのテーブル自体にあり、1対多は不可能であるという考えをサポートします。

ただし、いくつかの選択肢

  1. 電子メールアドレスのセミコロン区切りリストを使用して、新しい演算子を作成できます。 sysoperatorsの定義を見ると、これはnvarchar(100)に収まる文字列に適しています
  2. それを超える必要がある場合は、おそらく交換などでメール配布グループを設定できます。
31
Martin Smith

ジョブが失敗した場合に組織内の複数のユーザーに通知する必要がある場合、各メールボックスをセミコロンで区切ることにより、オペレーターの電子メールアドレスを変更して複数のメールボックスを含めることができます。

私はあなたの通知を受けたオペレーターがJobWatcherと呼ばれると仮定しています:

EXECUTE msdb.dbo.sp_update_operator
  @name = N'JobWatcher',
  @email_address = N'[email protected];[email protected]';

これで、person1 @ company.orgと[email protected]は、ジョブが失敗するとメールを受信します。

"OPERATORS"で複数の"JOB FAILURE"に通知するために使用する最も簡単な方法は次のとおりです。

SSMS>SQL Server Agent>Operatorsに新しいOPERATORまたはEDITを作成し、;ボックスで"E-mail name:"で区切った追加のメールアドレスを追加します。

23
Sagheer Ahmed

ベストプラクティスは、メールサーバー上にグループを作成し、そのグループに通知を送信してから、メールサーバーからの受信者の数を制御することです。

11
Mackin

仕事が失敗した場合に組織内の複数の人に通知し、成功した場合は複数の人の別のグループに通知するという意図がある場合、これが回避策として思いつきました。

ステップ1〜3は、タスクで行うのと同じように、スケジュールジョブが使用する通常のタスクであることがわかります。これらのステップの前に必要な数のステップがありますが、プロセスの最後のステップ(ステップ3)は、「成功時」と「失敗時」を分割して個別の電子メールに入れる必要があります。また、以下で強調表示されているように、すべての「失敗時」は「失敗メール」に進む必要があります。したがって、失敗グループはそこに電子メールを受信し、履歴レコードのジョブは依然として失敗します。

1.1

ジョブステップの[詳細設定]タブで、[成功時のアクション]および[失敗時のアクション]の方向を変更するオプションが表示されます。

2

失敗メールステップ-一般プロパティ

3

失敗メールステップ-アドバンスプロパティ

4

成功メールステップ-一般プロパティ

5

成功メールステップ-アドバンスプロパティ

6

助けが必要な人のために。 結果が異なる複数の演算子に通知する

4
dbahiker

以下のスクリプトを使用して、メールアドレスの文字長を増やしてください。 USE mdsdb GO ALTER TABLE sysoperators ALTER column email_address NVARCHAR(2000);

1
JERRY