35

SQL Server 2008にジョブ設定があり、ジョブが失敗したときに1人のオペレーターに 通知メールを送信します。

質問:その特定の仕事のために複数のオペレーターに送信される通知メールを設定することは可能ですか?

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

これは、SQLコマンドを使用して、失敗時に通知する演算子を追加することで実行できますか?UIを介して、選択できるオペレーターは1つだけのようです。

4

6 に答える 6

40

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

これが可能だとは思いません。

確かに[msdb].[dbo].[sysjobs]、さまざまなoperator_id列の構造を見ると、このテーブル自体にあり、1 対多は不可能であるという考えが裏付けられます。

しかし、いくつかの代替案

  1. セミコロンで区切られた電子メール アドレスのリストを使用して、新しい演算子を作成できます。thisの定義を見ると、sysoperators収まる文字列に適していますnvarchar(100)
  2. それを超える必要がある場合は、おそらく Exchange などで電子メール配布グループを設定できます。
于 2011-09-15T13:47:57.210 に答える
32

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

通知されたオペレーターが JobWatcher と呼ばれていると仮定しています。

EXECUTE msdb.dbo.sp_update_operator
  @name = N'JobWatcher',
  @email_address = N'person1@company.org;person2@company.org';

これで、person1@company.org と person2@company.org は、ジョブが失敗したときにメールを受け取ります。

于 2012-09-20T15:59:47.557 に答える
13

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

于 2013-09-11T18:27:26.077 に答える
11

これは、ジョブが失敗した場合は組織内の複数の人に通知し、成功した場合は複数の人からなる別のグループに通知することを意図している場合の回避策として思いついたものです。

手順 1 ~ 3 は、タスクの場合と同様に、スケジュール ジョブが使用する通常のタスクであることがわかります。これらの前に必要な数のステップがありますが、プロセスの最後のステップ (ステップ 3) では、「成功時」と「失敗時」を分割して、別々のメールに移動する必要があります。また、以下で強調表示されているように、すべての「失敗時」は「失敗メール」に続く必要があります。そのため、Failure グループはそこに電子メールを受け取り、履歴レコードのジョブは引き続き失敗します。

1.1

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

2

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

3

失敗メール手順 - 事前プロパティ

4

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

5

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

6

助けが必要な人のために。複数のオペレーターに異なる結果を通知する

于 2016-07-09T21:33:03.163 に答える
5

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

于 2018-06-02T12:43:41.390 に答える