Este monitor verifica os trabalhos de longa execução do SQL Agent.
Observe que o Serviço SQL Server Agent não é compatível com nenhuma edição do SQL Server Express; não há objeto descoberto adequado. Este monitor está desabilitado por padrão. Use substituições para habilitá-lo quando necessário.
Este monitor verifica os trabalhos de longa duração do SQL Agent. Um aviso ou alerta de erro será gerado se um trabalho estiver demorando mais que o limite configurado.
Por padrão, este monitor não monitora trabalhos com o tipo de agendamento "Iniciar automaticamente quando o SQL Server Agent for iniciado" porque normalmente eles são executados até o SQL Server parar (isto é, de maneira contínua) e esse comportamento é normal para eles. Geralmente, a Replicação do SQL Server usa esses trabalhos. No entanto, em alguns casos, os trabalhos com o tipo de agendamento "Iniciar automaticamente quando o SQL Server Agent for iniciado" podem ser executados por um intervalo de tempo relativamente curto. Para monitorar esses trabalhos, substitua o parâmetro "Trabalhos continuamente executados incluídos" por uma lista delimitada por vírgula dos nomes dos trabalhos. O nome do trabalho na lista deve atender aos requisitos de uma das classes de identificador a seguir:
1) Regular:
pode conter qualquer caractere, exceto o sinal de vírgula (,) e o sinal de aspas duplas (");
não deve iniciar nem terminar com caracteres de espaço em branco.
2) Delimitado:
pode conter quaisquer caracteres e deve ser delimitado por aspas duplas
as aspas duplas devem ser de escape ao duplicá-las
Qualquer nome que pertença a uma das classes acima deve ter de 1 a 128 caracteres, não incluindo os caracteres delimitadores.
Um estado não íntegro ocorre devido a um trabalho do SQL Server Agent que demorou mais do que o limite definido. Isso pode indicar um problema com o trabalho.
O SQL Server Agent é responsável pela execução de tarefas do SQL Server agendadas para ocorrer em horários ou intervalos específicos e pela detecção de condições específicas para as quais os administradores definiram uma ação, como alertar alguém por meio de páginas ou emails, ou uma tarefa que solucionará essas condições. O SQL Server Agent também é usado para executar tarefas de replicação definidas pelos administradores.
Para identificar o trabalho que provocou o aviso ou o estado de erro, examine os dados do contexto da alteração de estado ou do alerta.
Verifique o SQL Server Management Studio para identificar os trabalhos em execução. Se esses trabalhos estiverem demorando mais que o necessário, investigue-os para descobrir o motivo.
Use sp_help_jobactivity para obter informações sobre os trabalhos em execução no momento.
Como alternativa, se for esperada a execução de alguns trabalhos do agente por um longo tempo:
Substitua o monitor para alterar os limites dessa instância específica do SQL ou de todas as instâncias
Desabilite o monitor para essa instância de SQL específica ou para todas as instâncias
Nome | Descrição | Valor Padrão |
Prioridade do Alerta | Define a Prioridade do Alerta. | Normal |
Severidade do Alerta | Define a Severidade do Alerta. | MatchMonitorHealth |
Limite crítico (minutos) | O estado do monitor será alterado para Crítico se o valor exceder esse limite. Se estiver entre esse limite e o limite de aviso (inclusive), isso fará com que o monitor fique estado de aviso. | 120 |
Habilitado | Habilita ou desabilita o fluxo de trabalho. | Não |
Gera Alertas | Define se o fluxo de trabalho gera ou não um Alerta. | Sim |
Trabalhos executados continuamente incluídos | Alguns trabalhos do SQL Agent podem ser executados indefinidamente (até o agente ser interrompido). Eles normalmente têm agenda um tipo de agenda "Iniciar automaticamente quando o SQL Server Agent é iniciado". Por exemplo, a replicação do SQL Server geralmente usa esses trabalhos. Esses trabalhos levam a falsos alertas e por padrão a monitoração não os leva em conta. Mas podem haver exclusões quando esses trabalhos são executados por um curto período. Para monitorar esses trabalhos, deve ser definida uma lista com os nomes deles delimitados por vírgula. |
|
Intervalo (segundos) | O intervalo de tempo recorrente em segundos no qual executar o fluxo de trabalho. | 600 |
Tempo de Sincronização | O tempo de sincronização especificado usando um formato de 24 horas. Pode ser omitido. |
|
Tempo Limite (em segundos) | Especifica o tempo que o fluxo de trabalho pode para ser executado antes de ser fechado e marcado como falha. | 300 |
Tempo limite da conexão de banco de dados (segundos) | O fluxo de trabalho falhará e registrará um evento, se ele não conseguir acessar o banco de dados durante o período especificado. | 15 |
Limite de aviso (minutos) | Limite de aviso. Exceder esse limite resultará na alteração do estado do monitor, pelo menos para um estado de aviso. | 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>