Dieser Monitor sucht nach SQL-Agent-Aufträgen mit langer Ausführungszeit.
Beachten Sie, dass der SQL Server-Agent-Dienst von keiner Edition von SQL Server Express unterstützt wird; es ist kein geeignetes Ermittlungsobjekt vorhanden. Dieser Monitor ist standardmäßig deaktiviert. Verwenden Sie bei Bedarf Außerkraftsetzungen, um ihn zu aktivieren.
Dieser Monitor sucht nach SQL-Agent-Aufträgen mit langer Ausführungszeit. Wenn die Ausführungszeit eines Auftrags den konfigurierten Schwellenwert überschreitet, wird eine Warnung oder Fehlermeldung ausgelöst.
Standardmäßig überwacht dieser Monitor keine Aufträge mit Zeitplantyp "Automatisch starten, wenn der SQL Server-Agent startet", weil diese häufig so lange ausgeführt werden, bis der SQL-Agent beendet wird (d. h. kontinuierlich) und dieses Verhalten normal für diese Aufträge ist. Die SQL Server-Replikation verwendet in der Regel solche Aufträge. In einigen Fällen werden Aufträge mit Zeitplantyp "Automatisch starten, wenn der SQL Server-Agent startet" aber nur für einen relativ kurzen Zeitraum ausgeführt. Um diese Aufträge zu überwachen, setzen Sie einfach den Parameter "Kontinuierlich ausgeführte Aufträge eingeschlossen" mit einer durch Trennzeichen getrennten Liste mit den Namen dieser Aufträge außer Kraft. Die Auftragsnamen müssen die Anforderungen einer der folgenden Bezeichnerklassen erfüllen:
1) Regulär:
kann beliebige Zeichen außer Komma (,) und doppelten Anführungszeichen (") enthalten;
Darf nicht mit einem Leerzeichen beginnen oder auf ein Leerzeichen enden
2) Begrenzt:
kann beliebige Zeichen enthalten und sollte durch doppelte Anführungszeichen getrennt werden
Doppelte gerade Anführungszeichen oben müssen verdoppelt und so als Escapezeichen verwendet werden
Die Namen von Datenbanken, die einer der oben aufgeführten Klassen angehören, dürfen zwischen 1 und 128 Zeichen umfassen, Trennzeichen nicht eingeschlossen.
Ein fehlerhafter Status wird verursacht, wenn die Ausführungsdauer eines SQL Server-Agent-Auftrags den definierten Schwellenwert überschreitet. Dies kann auf ein Problem mit dem Auftrag hinweisen.
Der SQL Server-Agent ist für das Ausführen von SQL Server-Tasks verantwortlich, die so geplant sind, dass sie zu bestimmten Zeiten oder in bestimmten Intervallen auftreten und bestimmte Bedingungen erkennen, für die Administratoren eine Aktion definiert haben, z. B. Warnungen über Pager oder E-Mail oder ein Task, der die Bedingungen angeht. Der SQL Server-Agent wird auch zum Ausführen von Replikationstasks verwendet, die von Administratoren definiert wurden.
Um zu ermitteln, welcher Auftrag die Warnung oder den Fehler verursacht hat, überprüfen Sie die Kontextdaten der Statusänderung oder Warnung.
Überprüfen Sie in SQL Server Management Studio, welche Aufträge aktuell ausgeführt werden. Wenn diese Aufträge länger ausgeführt werden als nötig, untersuchen Sie die möglichen Ursachen.
Verwenden Sie "sp_help_jobactivity", um Informationen über aktuell ausgeführte Aufträge anzuzeigen.
Sollte eine längere Ausführungsdauer für bestimmte Aufträge erwartet werden, haben Sie folgende Möglichkeiten:
Setzen Sie den Monitor außer Kraft, um die Schwellenwerte für diese SQL Server-Instanz oder alle Instanzen zu ändern.
Den Monitor für diese SQL-Instanz oder alle Instanzen deaktivieren
Name | Beschreibung | Standardwert |
Warnungspriorität | Definiert die Warnungspriorität. | Normal |
Warnungsschweregrad | Definiert den Warnungsschweregrad. | MatchMonitorHealth |
Kritischer Schwellenwert (Minuten) | Der Monitor ändert seinen Status zu "Kritisch", wenn der Wert diesen Schwellenwert überschreitet. Bei Werten zwischen diesem Schwellenwert und dem Warnungsschwellenwert (einschließlich) befindet sich der Monitor im Status "Warnung". | 120 |
Aktiviert | Aktiviert oder deaktiviert den Workflow. | Nein |
Generiert Warnungen | Definiert, ob der Workflow eine Warnung generiert. | Ja |
Enthaltene fortlaufend ausgeführte Aufträge | Einige SQL-Agent-Aufträge können unendlich ausgeführt werden (bis der Agent beendet wird). Sie weisen in der Regel den Zeitplantyp "Automatisch starten, wenn der SQL Server-Agent startet" auf. Die SQL Server-Replikation verwendet beispielsweise häufig solche Aufträge. Diese Aufträge führen zu Fehlalarmen und werden vom Monitor standardmäßig nicht einbezogen. Es kann jedoch Ausschlüsse geben, wenn solche Aufträge für kurze Zeit ausgeführt werden. Um solche Aufträge zu überwachen, sollten Sie eine durch Komma getrennte Liste der Namen der betreffenden Aufträge definieren. |
|
Intervall (Sekunden) | Gibt das Wiederholungsintervall in Sekunden für die Ausführung des Workflows an. | 600 |
Synchronisierungszeit | Die Synchronisierungszeit, angegeben im 24-Stunden-Format. Dieser Wert kann ausgelassen werden. |
|
Timeout (Sekunden) | Gibt die Zeit an, zu der der Workflow ausgeführt werden dann, bevor er geschlossen und als fehlerhaft markiert wird. | 300 |
Timeout für Datenbankverbindung (Sekunden) | Es tritt ein Fehler beim Workflow auf, und ein Ereignis wird registriert, wenn der Workflow nicht innerhalb des angegebenen Zeitraums auf die Datenbank zugreifen kann. | 15 |
Warnschwellenwert (Minuten) | Warnschwellenwert. Das Überschreiten dieses Schwellenwerts führt dazu, dass der Monitor mindestens in einen Warnstatus wechselt. | 60 |
Target | Microsoft.SQLServer.Linux.Agent | ||
Parent Monitor | System.Health.PerformanceState | ||
Category | PerformanceHealth | ||
Enabled | False | ||
Alert Generate | True | ||
Alert Severity | MatchMonitorHealth | ||
Alert Priority | Normal | ||
Alert Auto Resolve | True | ||
Monitor Type | Microsoft.SQLServer.Linux.MonitorType.Agent.LongRunningJobs | ||
Remotable | True | ||
Accessibility | Public | ||
Alert Message |
| ||
RunAs | Default |
<UnitMonitor ID="Microsoft.SQLServer.Linux.Monitor.Agent.LongRunningJobs" Accessibility="Public" Enabled="false" Target="SqlDiscL!Microsoft.SQLServer.Linux.Agent" ParentMonitorID="Health!System.Health.PerformanceState" Remotable="true" Priority="Normal" TypeID="Microsoft.SQLServer.Linux.MonitorType.Agent.LongRunningJobs" ConfirmDelivery="false">
<Category>PerformanceHealth</Category>
<AlertSettings AlertMessage="Microsoft.SQLServer.Linux.Monitor.Agent.LongRunningJobs.AlertMessage">
<AlertOnState>Warning</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>MatchMonitorHealth</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Target/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/MachineName$</AlertParameter1>
<AlertParameter2>$Target/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/InstanceName$</AlertParameter2>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState ID="UnderThreshold1" MonitorTypeStateID="UnderThreshold1" HealthState="Success"/>
<OperationalState ID="OverThreshold1UnderThreshold2" MonitorTypeStateID="OverThreshold1UnderThreshold2" HealthState="Warning"/>
<OperationalState ID="OverThreshold2" MonitorTypeStateID="OverThreshold2" HealthState="Error"/>
</OperationalStates>
<Configuration>
<MachineName>$Target/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/MachineName$</MachineName>
<NetbiosComputerName>$Target/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/NetbiosComputerName$</NetbiosComputerName>
<InstanceName>$Target/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/InstanceName$</InstanceName>
<ConnectionString>$Target/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/ConnectionString$</ConnectionString>
<InstanceVersion>$Target/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/Version$</InstanceVersion>
<InstanceEdition>$Target/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/Edition$</InstanceEdition>
<Threshold1>60</Threshold1>
<Threshold2>120</Threshold2>
<IncludedJobs/>
<SqlTimeoutSeconds>15</SqlTimeoutSeconds>
<TimeoutSeconds>300</TimeoutSeconds>
<IntervalSeconds>600</IntervalSeconds>
<SyncTime/>
</Configuration>
</UnitMonitor>