Этот монитор проверяет наличие длительных заданий агента SQL.
Обратите внимание, что служба агента SQL Server не поддерживается ни в одном из выпусков SQL Server Express; отсутствует подходящий объект для обнаружения. По умолчанию этот монитор отключен. Для его включения используйте переопределения.
Этот монитор проверяет наличие длительно выполняющихся заданий агента SQL. Если задание выполняется дольше настроенного порогового значения, появится предупреждение или оповещение об ошибке.
По умолчанию этот монитор не отслеживает задания с типом расписания "Запускать автоматически при запуске агента SQL Server", так как они часто выполняются до остановки агента SQL (то есть непрерывно) и такое поведение нормально для них. Обычно такие задания используются при репликации SQL Server. Но в некоторых случаях задания с типом расписания "Запускать автоматически при запуске агента SQL Server" могут выполняться относительно недолго. Чтобы отслеживать эти задания, переопределите параметр "Включенные непрерывно выполняющиеся задания" с помощью списка имен заданий через запятую. Имя задания в списке должно соответствовать требованиям одного из следующих классов идентификаторов:
1) Регулярные:
может содержать любые символы, кроме запятой (,) и двойных кавычек (");
не должно начинаться или заканчиваться пробелами.
2) Ограниченные:
может содержать любые символы и должно отделяться двойными кавычками;
двойные кавычки следует экранировать путем их удвоения.
Любое имя, принадлежащее какому-либо из приведенных выше классов, должно иметь длину от 1 до 128 символов без учета символов разделителей.
Неисправное состояние вызвано тем, что задание агента SQL Server выполнялось дольше заданного порога. Это может означать проблему с заданием.
Агент SQL Server отвечает за запуск задач SQL сервера по расписанию, в определенные моменты или интервалы, а также при обнаружении определенных условий, для которых администраторы определяют действия, например, предупреждать кого-то с помощью веб-страниц или по электронной почте, или выполнять задачи, которые будут устранять условия. Агент SQL Server также используется для запуска задач репликации, определенных администратором.
Чтобы определить задание, вызвавшее предупреждение или состояние ошибки, ознакомьтесь с данными контекста для изменения состояния или оповещения.
С помощью SQL Server Management Studio проверьте, какие задания выполняются. Если эти задания выполняются дольше необходимого, исследуйте их, чтобы узнать причину.
Используйте процедуру sp_help_jobactivity, чтобы просмотреть сведения о выполняющихся сейчас заданиях.
Другие способы, если ожидается длительное выполнение некоторых заданий агента:
Переопределите монитор, чтобы изменить пороговые значения для этого экземпляра SQL или всех экземпляров.
Отключение монитора для этого экземпляра SQL или для всех экземпляров
Имя | Описание | Значение по умолчанию |
Приоритет предупреждения | Определение приоритета оповещений. | Обычный |
Серьезность предупреждения | Определяет серьезность предупреждения. | MatchMonitorHealth |
Критическое пороговое значение (мин) | Монитор изменит свое состояние на критическое, если значение превысит указанное пороговое значение. Если значение находится между этим пороговым значением и пороговым значением предупреждения (включительно), то монитор будет находиться в состоянии предупреждения. | 120 |
Включено | Включает или отключает рабочий процесс. | Нет |
Создает предупреждения | Определяет, создается ли предупреждение рабочим процессом. | Да |
Включены непрерывно выполняемые задания | Некоторые задания агента SQL могут выполняться бесконечно (до остановки агента). Обычно для них задается тип расписания "Запускать автоматически при запуске агента SQL Server". Такие задания часто используются при репликации SQL Server. Эти задания формируют ложные оповещения, и по умолчанию монитор не учитывает их. Но возможны исключения, когда такие задания выполняются в течение короткого времени. Для отслеживания таких заданий определите список названий заданий, разделенных запятыми. |
|
Интервал (в секундах) | Повторяющийся интервал времени в секундах, в который следует запустить рабочий процесс. | 600 |
Время синхронизации | Время синхронизации указывается в 24-часовом формате и может быть опущено. |
|
Время ожидания (в секундах) | Указывает время, в течение которого рабочий процесс должен быть запущен, прежде чем он будет закрыт и отмечен как завершившийся сбоем. | 300 |
Время ожидания для подключения к базе данных (секунды) | Рабочий процесс завершится ошибкой и зарегистрирует событие, если он не сможет получить доступ к базе данных за указанный промежуток времени. | 15 |
Пороговое значение предупреждения (мин) | Пороговое значение предупреждения. Превышение этого порогового значения приведет к переключению монитора по крайней мере в состояние предупреждения. | 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>
<InstanceName>$Target/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/InstanceName$</InstanceName>
<ConnectionString>$Target/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/ConnectionString$</ConnectionString>
<Threshold1>60</Threshold1>
<Threshold2>120</Threshold2>
<IncludedJobs/>
<SqlTimeoutSeconds>15</SqlTimeoutSeconds>
<TimeoutSeconds>300</TimeoutSeconds>
<IntervalSeconds>600</IntervalSeconds>
<SyncTime/>
</Configuration>
</UnitMonitor>