Compartilhar via


Alertas do SQL Server Agent

Aplica-se a:SQL Server

Importante

Na Instância Gerenciada de SQL do Azure, a maioria, mas não todos os recursos do SQL Server Agent estão atualmente suportados. Consulte diferenças de T-SQL entre a Instância Gerenciada de SQL do Azure e o SQL Server ou limitações de tarefas do SQL Agent na Instância Gerenciada de SQL para obter detalhes.

Os eventos gerados pelo SQL Server são inseridos no log de aplicativos do Windows. O SQL Server Agent lê o log do aplicativo e compara os eventos gravados lá com os alertas que você define.

Quando o SQL Server Agent encontra uma correspondência, ele dispara um alerta, que é uma resposta automatizada 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 do Windows Management Instrumentation (WMI).

Para definir um alerta, especifique:

  • O nome do alerta.
  • O evento ou condição de desempenho que aciona o alerta.
  • A ação a ser tomada pelo SQL Server Agent em resposta ao evento ou condição de desempenho.

Dar nome a um alerta

Todo alerta deve ter um nome. Os nomes de alerta devem ser exclusivos na instância do SQL Server e não podem ter mais de 128 caracteres.

Selecionar um tipo de evento

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

  • SQL Server eventos
  • SQL Server condições de desempenho
  • Eventos de Instrumentação de Gerenciamento do Windows (WMI)

O tipo do evento determina os parâmetros utilizados para especificar o evento preciso.

Especificar um evento do SQL Server

É possível especificar que um alerta ocorra em resposta a um ou mais eventos. Use os seguintes parâmetros para especificar os eventos que acionam um alerta:

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

  • Nível de gravidade: o SQL Server Agent aciona um alerta quando ocorre qualquer erro de gravidade específica. Por exemplo, você pode especificar um nível de severidade 15 como resposta a erros de sintaxe em instruções Transact-SQL.

  • Banco de dados: o SQL Server Agent aciona um alerta somente quando o evento ocorre em um banco de dados específico. Esta opção pode ser aplicada em conjunto com o número de erro ou o nível de severidade. Por exemplo, se uma instância do SQL Server contiver um banco de dados usado para produção e um banco de dados usado para relatórios, você poderá definir um alerta que responde a erros de sintaxe somente no banco de dados de produção.

  • Texto do evento: o SQL Server Agent aciona um alerta quando o evento especificado contém uma cadeia de caracteres de texto específica na mensagem de evento. Por exemplo, você pode definir um alerta como resposta a mensagens contendo o nome de uma tabela ou restrição em particular.

Selecionar uma condição de desempenho

É possível especificar que um alerta ocorra em resposta a uma condição de desempenho em particular. Neste caso, especifique o contador de desempenho a monitorar, o limite do alerta e o comportamento que o contador deve ter face ao alerta. Para definir uma condição de desempenho, é necessário definir os seguintes itens na página SQL Server Geral da caixa de diálogo Novo Alerta ou Propriedades do Alerta do Agent:

  • Objeto: o objeto é a área de desempenho a ser monitorada.

  • Contador: um contador é um atributo da área a ser monitorada.

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

  • Alertar se o contador e Valor

    O limite do alerta e o comportamento que o alerta produz. O limite é um número. O comportamento é um dos seguintes: cai abaixo, torna-se igual aou sobe acima de um número especificado como Valor. O Valor é um número que descreve o contador de condição de desempenho. Por exemplo, para definir que ocorra um alerta para o objeto de desempenho SQLServer:Locks quando Tempo de Espera de Bloqueio exceder 30 minutos, você deve escolher sobe acima e especificar 30 como valor.

    Como outro exemplo, você pode especificar que um alerta ocorre para o objeto de desempenho SQLServer:Transactions quando o espaço livre em tempdb cair abaixo de 1.000 KB. Para definir esse valor, vá para o 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 uma pequena demora (alguns segundos) entre o limite a ser atingido e a ocorrência do alerta de desempenho.

    Uma variável de log de eventos que armazena o nome do servidor limita-se a 32 caracteres. Portanto, se o tamanho combinado do nome do host e do nome da instância for maior que 32 caracteres, você poderá receber o seguinte erro:

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

Selecionar um evento WMI

É possível especificar que um alerta ocorra em resposta a um evento do WMI em particular. Para selecionar um evento WMI, é necessário definir os seguintes itens na página SQL Server Geral da caixa de diálogo Novo Alerta ou Propriedades do Alerta do Agent:

  • Namespace: o SQL Server Agent registra-se como um cliente WMI no namespace WMI fornecido para consultar eventos.

  • Consulta: o SQL Server Agent usa a instrução WQL (Linguagem de Consulta de Instrumentação de Gerenciamento do Windows) fornecida para identificar o evento específico.

Ação SQL Server Management Studio Transact-SQL
Criar um alerta com base em um número de mensagem Criar um alerta usando um número de erro sp_add_alert
Criar um alerta com base nos níveis de severidade Criar um alerta usando o nível de severidade sp_add_alert
Criar um alerta com base em um evento WMI Criar um alerta de evento WMI sp_add_alert
Definir a resposta a um alerta Definir a resposta a um alerta sp_add_notification
Criar uma mensagem de erro de evento definida pelo usuário sp_addmessage
Modificar uma mensagem de erro de evento definida pelo usuário sp_altermessage
Excluir uma mensagem de erro de evento definida pelo usuário sp_dropmessage
Desabilitar ou reativar um alerta Desabilitar ou reativar um alerta sp_update_alert