通知メールを送信するSQL Server 2008のジョブ設定があります 1 ジョブが失敗したときの演算子。
質問:その特定のジョブについて、複数のオペレーターに送信される通知メールをセットアップすることは可能ですか?
これに対する可能な回避策は、特定の重大度ごとにデータベースに大量のアラートを作成することであると考えていますが、これを行うためのより簡潔な方法があることを望んでいました。このルートに行くと、失敗したジョブからどのような重大度エラーがトリガーされる可能性がありますか? (私はそのような何かのために25個すべてを必要とするとは思わない)
これをsqlコマンドで実行して、失敗時に通知する演算子を追加できますか? UIを使用すると、単一の演算子のみを選択できます。
質問:その特定のジョブについて複数のオペレーターに送信される通知メールを設定することは可能ですか?
これが可能だとは思わない。
確かに_[msdb].[dbo].[sysjobs]
_の構造を見ると、さまざまな_operator_id
_列がこのテーブル自体にあり、1対多は不可能であるという考えをサポートします。
ただし、いくつかの選択肢
sysoperators
の定義を見ると、これはnvarchar(100)
に収まる文字列に適していますジョブが失敗した場合に組織内の複数のユーザーに通知する必要がある場合、各メールボックスをセミコロンで区切ることにより、オペレーターの電子メールアドレスを変更して複数のメールボックスを含めることができます。
私はあなたの通知を受けたオペレーターが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:"
で区切った追加のメールアドレスを追加します。
ベストプラクティスは、メールサーバー上にグループを作成し、そのグループに通知を送信してから、メールサーバーからの受信者の数を制御することです。
仕事が失敗した場合に組織内の複数の人に通知し、成功した場合は複数の人の別のグループに通知するという意図がある場合、これが回避策として思いつきました。
ステップ1〜3は、タスクで行うのと同じように、スケジュールジョブが使用する通常のタスクであることがわかります。これらのステップの前に必要な数のステップがありますが、プロセスの最後のステップ(ステップ3)は、「成功時」と「失敗時」を分割して個別の電子メールに入れる必要があります。また、以下で強調表示されているように、すべての「失敗時」は「失敗メール」に進む必要があります。したがって、失敗グループはそこに電子メールを受信し、履歴レコードのジョブは依然として失敗します。
ジョブステップの[詳細設定]タブで、[成功時のアクション]および[失敗時のアクション]の方向を変更するオプションが表示されます。
失敗メールステップ-一般プロパティ
失敗メールステップ-アドバンスプロパティ
成功メールステップ-一般プロパティ
成功メールステップ-アドバンスプロパティ
助けが必要な人のために。 結果が異なる複数の演算子に通知する
以下のスクリプトを使用して、メールアドレスの文字長を増やしてください。 USE mdsdb GO ALTER TABLE sysoperators ALTER column email_address NVARCHAR(2000);