Partilhar via


Alertas do SQL Server Agent

Aplica-se a:SQL Server

Importante

No Azure SQL Managed Instance, a maioria dos recursos do SQL Server Agent, mas não todos, são suportados no momento. Consulte Diferenças de T-SQL da Instância Gerenciada do Azure SQL em relação ao SQL Server ou as limitações de trabalho do SQL Agent na Instância Gerenciada do SQL para obter detalhes.

Os eventos gerados pelo SQL Server são introduzidos no registo de aplicações do Windows. O SQL Server Agent lê o registo da aplicação e compara os eventos escritos com alertas que define.

Quando o SQL Server Agent encontra uma coincidência, ele aciona um alerta, que é uma resposta automática a um evento. Além de monitorar eventos do SQL Server, o SQL Server Agent também pode monitorar condições de desempenho e eventos WMI (Instrumentação de Gerenciamento do Windows).

Para definir um alerta, especifique:

  • O nome do alerta.
  • O evento ou condição de desempenho que dispara o alerta.
  • A ação que o SQL Server Agent executa em resposta ao evento ou condição de desempenho.

Nomeie um alerta

Cada alerta deve ter um nome. Os nomes dos alertas devem ser únicos dentro da instância do SQL Server e não podem ter mais de 128 caracteres.

Selecione um tipo de evento

Um alerta responde a um evento de um tipo específico. Os alertas respondem aos seguintes tipos de eventos:

  • Eventos do SQL Server
  • Condições de desempenho do SQL Server
  • Eventos de Instrumentação de Gestão do Windows (WMI)

O tipo do evento determina os parâmetros que você usa para especificar o evento preciso.

Especificar um evento SQL Server

Você pode especificar um alerta para ocorrer em resposta a um ou mais eventos. Use os seguintes parâmetros para especificar os eventos que disparam um alerta:

  • Número de erro: O Agente SQL Server dispara um alerta quando ocorre um erro específico. Por exemplo, você pode especificar o número de erro 2571 para responder a tentativas não autorizadas de invocar DBCC (Database Console Commands).

  • Nível de gravidade: O Agente SQL Server emite um alerta quando ocorre qualquer erro da gravidade específica. Por exemplo, você pode especificar um nível de gravidade de 15 para responder a erros de sintaxe em instruções Transact-SQL.

  • Base de Dados: O Agente SQL Server emite um alerta apenas quando o evento ocorre numa determinada base de dados. Esta opção aplica-se além do número do erro ou do nível de gravidade. Por exemplo, se uma instância do SQL Server contiver uma base de dados usada para produção e uma base de dados usada para relatórios, pode definir um alerta que responde apenas a erros de sintaxe na base de dados de produção.

  • Texto do evento: O Agente SQL Server dispara um alerta quando o evento especificado contém uma cadeia de texto específica na mensagem do evento. Por exemplo, você pode definir um alerta que responda a mensagens que contenham o nome de uma tabela específica ou uma restrição específica.

Selecione uma condição de desempenho

Você pode especificar um alerta para ocorrer em resposta a uma condição de desempenho específica. Nesse caso, você especifica o contador de desempenho a ser monitorado, um limite para o alerta e o comportamento que o contador deve mostrar para que o alerta ocorra. Para definir uma condição de desempenho, você deve definir os seguintes itens na página Geral do SQL Server Agent da caixa de diálogo Novo Alerta ou Propriedades do Alerta :

  • Objeto: O objeto é a área de desempenho a monitorizar.

  • Contador: Um contador é um atributo da área a monitorizar.

  • Instância: A instância SQL Server define a instância específica (se existir) do atributo a ser monitorizado.

  • Alertar se o contador e Valor

    O limite para o alerta e o comportamento que produz o alerta. O limiar é um número. O comportamento é um dos seguintes: cai abaixo, torna-se igual a, ou sobe acima de um número especificado para Valor. O Valor é um número que descreve o contador de condição de desempenho. Por exemplo, para definir um alerta para ocorrer para o objeto de desempenho SQLServer:Locks quando o Tempo de Espera de Bloqueio exceder 30 minutos, escolherias ultrapassa e definirias 30 como o valor.

    Como outro exemplo, pode especificar que ocorre um alerta para o objeto de desempenho SQLServer:Transactions quando o espaço livre em tempdb cai abaixo dos 1.000 KB. Para definir este valor, vá ao contador Espaço livre em tempdb (KB); selecione fica abaixo e escolha um Valor de 1000.

    Os dados de desempenho são amostrados periodicamente, o que pode levar a um pequeno atraso (alguns segundos) entre o limite atingido e a ocorrência do alerta de desempenho.

    Uma variável de log de eventos que armazena o nome do servidor é limitada a 32 caracteres. Portanto, se o tamanho combinado do nome do seu host e do nome da instância for superior a 32 caracteres, pode aparecer o seguinte erro:

    Warning,[466] Failed to copy server name LONGNAMESQLSERV\LONGINSTANCENAME while generating performance counter alerts.
    

Selecione um evento WMI

Você pode especificar que um alerta ocorra em resposta a um evento WMI específico. Para selecionar um evento WMI, você deve definir o seguinte na página Geral do SQL Server Agent da caixa de diálogo Novo Alerta ou Propriedades do Alerta :

  • Namespace: O SQL Server Agent regista-se como cliente WMI no namespace WMI fornecido para consultar eventos.

  • Consulta: O SQL Server Agent utiliza a instrução Windows Management Instrumentation Query Language (WQL) fornecida para identificar o evento específico.

Ação SQL Server Management Studio Transact-SQL
Crie um alerta com base num número de mensagem Crie um alerta usando um número de erro sp_add_alert
Crie um alerta com base nos níveis de gravidade Crie um alerta usando o nível de gravidade sp_add_alert
Crie um alerta baseado num evento WMI Crie um alerta de evento WMI sp_add_alert
Defina a resposta a um alerta Defina a resposta a um alerta sp_add_notification
Criar uma mensagem de erro de evento definida pelo utilizador sp_addmessage
Modificar uma mensagem de erro de evento definida pelo utilizador sp_altermessage
Apagar uma mensagem de erro de evento definido pelo utilizador sp_dropmessage
Desativar ou reativar um alerta Desativar ou Reativar um Alerta sp_update_alert