it-swarm.com.de

SQL Server-Agent-Job Benachrichtigen Sie mehrere Operatoren bei einem Fehler

Ich habe ein Job-Setup in SQL Server 2008, an das eine Benachrichtigungs-E-Mail gesendet wird ein Operator, wenn der Job fehlschlägt. 

Frage: Kann eine Benachrichtigungs-E-Mail eingerichtet werden, die für diesen Job an mehrere Bediener gesendet wird?

Ich glaube, dass eine mögliche Problemumgehung darin besteht, viele Warnungen für die Datenbank für jeden angegebenen Schweregrad zu erstellen, aber ich hoffte, dass es einen präziseren Weg dafür gibt. Welche Schweregradfehler würden bei einem fehlgeschlagenen Job wahrscheinlich ausgelöst, wenn ich diesen Weg einschlagen würde? (Ich glaube nicht, dass ich alle 25 für so etwas brauchen würde) 

Kann dies mit dem Befehl sql durchgeführt werden, um weitere Operatoren hinzuzufügen, die bei einem Fehler benachrichtigt werden sollen? Über die Benutzeroberfläche können Sie nur einen einzelnen Operator auswählen.

27
Mike

Frage: Kann eine Benachrichtigungs-E-Mail eingerichtet werden, die für diesen Job an mehrere Bediener gesendet wird?

Ich glaube nicht, dass das möglich ist. 

Bei der Betrachtung der Struktur von [msdb].[dbo].[sysjobs] befinden sich die verschiedenen operator_id-Spalten in dieser Tabelle selbst, was die Vorstellung unterstützen würde, dass 1 zu viele nicht möglich ist.

Aber einige Alternativen

  1. Sie können einen neuen Operator mit der durch Doppelpunkt getrennten Liste der E-Mail-Adressen erstellen. Betrachtet man die Definition von sysoperators, ist dies gut für Zeichenfolgen, die in nvarchar(100) passen. 
  2. wenn Sie das übertreffen müssen, können Sie wahrscheinlich eine E-Mail-Verteilergruppe einrichten.
30
Martin Smith

Wenn die Absicht besteht, dass mehrere Personen in Ihrer Organisation benachrichtigt werden, wenn ein Job fehlschlägt, können Sie die E-Mail-Adresse des Betreibers so ändern, dass er mehrere Postfächer enthält, indem Sie jedes Postfach durch ein Semikolon voneinander trennen.

Ich gehe davon aus, dass Ihr angemeldeter Operator JobWatcher heißt:

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

Jetzt erhalten [email protected] und [email protected] E-Mails, wenn der Job fehlschlägt.

Die einfachste Methode, die ich verwende, um mehrere "OPERATORS" auf "JOB FAILURE" zu benachrichtigen, lautet:

Erstellen Sie in SSMS>SQL Server Agent>Operators eine neue OPERATOR oder EDIT, und fügen Sie zusätzliche E-Mail-Adressen hinzu, die durch ; im Feld "E-mail name:" getrennt sind.

20
Sagheer Ahmed

Am besten erstellen Sie eine Gruppe auf Ihrem Mail-Server, senden die Benachrichtigungen an die Gruppe und steuern dann die Anzahl der Empfänger vom Mail-Server.

11
Mackin

Daher habe ich dies als Problemumgehung erarbeitet, wenn mehrere Personen in Ihrer Organisation benachrichtigt werden sollten, wenn ein Job fehlschlägt, und eine andere Gruppe von mehreren Personen für den Erfolg.

Sie werden feststellen, dass die Schritte 1 bis 3 die normalen Aufgaben sind, für die der Zeitplanauftrag verwendet wird, wie Sie dies für Ihre Aufgabe tun würden. Es können beliebig viele Schritte vor diesen Schritten ausgeführt werden, aber der letzte Schritt (Schritt 3) des Vorgangs muss "On Success" und "On Failure" unterbrechen, um separate E-Mails zu erhalten. Außerdem müssen alle "On Failures" zu Ihrer "Failure-E-Mail" weitergeleitet werden. Die Failure-Gruppe erhält also E-Mails und der Job schlägt für die historischen Datensätze immer noch fehl.

1.1

Die Option zum Ändern der Richtung der Aktionen "Bei Erfolg" und "Bei Fehler" auf der Registerkarte "Erweitert" der Jobschritte wird angezeigt.

2

Fehler E-Mail-Schritt - Allgemeine Eigenschaft

3

Fehler E-Mail-Schritt -Advance-Eigenschaft

4

Erfolgs-E-Mail-Schritt - Allgemeines Eigentum

5

Erfolgs-E-Mail-Schritt -Advance-Eigenschaft

6

Für andere, die Hilfe brauchen. Mehrere Bediener mit unterschiedlichen Ergebnissen benachrichtigen

2
dbahiker

Bitte verwenden Sie das folgende Skript, um die Zeichenlänge der E-Mail-Adresse zu erhöhen USE mdsdb GO ALTER TABLE sysoperators ALTER column email_address NVARCHAR(2000);

0
JERRY