Atenção: por essa edição ser muito antiga não há arquivo PDF para download.
Os artigos dessa edição estão disponíveis somente através do formato HTML.

Clique aqui para ler todos os artigos desta edição 

Utilizando alertas na administração do SQL Server 2000

 

Leitura Obrigatória: SQL Magazine 24, Como enviar e-mails com anexos no MS-SQL Server sem o uso do SQL Mail.

 

Alertas são ações executadas pelo SQL Server 2000 a partir da ocorrência de eventos pré-determinados. Os eventos passiveis de monitoramento assim como as ações executadas após a ocorrência desses eventos são bastante abrangentes. Neste contexto, o objetivo dessa matéria é estudar esse eficiente mecanismo de administração.

Como funciona o disparo do alerta

O alerta é uma atividade coordenada pelo SQL Server Agent, e pode ser disparado a partir de uma condição de performance ou mensagem registrada no Application Log do Windows. O “disparo” do alerta pode ser uma notificação enviada na forma de e-mail, Net Send ou Pager, mas jobs também podem ser executados em conjunto ou de forma isolada com as notificações.

Quando o SQL Server 2000 identifica a existência de alerta para uma condição de performance, o contador definido no Alerta será periodicamente recalculado e confrontado com o limite cadastrado. Se criássemos um Alerta para informar o DBA sempre que o número de conexões estiver acima de 20, o contador de performance SQL Server: General Statistics\User Connections será recalculado em intervalos regulares e seu valor comparado com o limite cadastrado no Alerta. Se o limite for ultrapassado (número de conexões > 20), acontece o disparo do Alerta. A ação que sucede o disparo (envio de e-mail, Net Send e /ou execução de um job específico) irá depender do que foi cadastrado no Alerta. O SQL Server tem acesso aos contadores de performance através da tabela de sistema SysPerfInfo (ver Box 1).

Além de condições de performance, qualquer mensagem cadastrada na tabela de sistema master.dbo.SysMessages (ver Box 1) pode ser configurada para disparo de alertas. Para isso, basta fazer com que a “aparição” da mensagem seja “registrada” no Application Log do Windows.

Como direcionar mensagens para o Application Log do Windows

Vimos que alertas podem ser criados para condições de performance ou para mensagens registradas no Application Log do Windows. Agora a questão é: como registrar uma mensagem no Application Log do Windows a partir do SQL Server 2000?  Existem várias possibilidades:

·         Erros com grau de severidade igual ou superior a 19 (ver “Tabela de SysMessages” no Box 1) são registrados automaticamente no Application Log do Windows. Erros com esse nível de severidade são fatais e indicam falhas graves de integridade nos objetos do banco ou problemas de hardware;

·          Erros com grau de severidade inferior a 19 poderão ser registrados no Application Log se o parâmetro “WRITE TO LOG” for ativado para a mensagem. Se esse parâmetro estiver ativo na mensagem em questão, sempre que a mensagem ocorrer, acontecerá também seu registro no Application Log. A procedure SP_ALTERMESSAGE deve ser utilizada para essa finalidade. No exemplo a seguir o cadastro do erro relacionado a DeadLocks está sendo modifificado para efeito de log:

 

-- para registrar no Application Log erros de Deadlock (#1205)

exec sp_AlterMessage 1205, ‘with log’, ‘true’

 

·         Mensagens de erro cadastradas na tabela de sistema SysMessages através da procedure SP_ADDMESSAGE serão registradas no Application Log se o parâmetro @WITH LOG for igual a “WITH LOG” (ver Listagem 1).

 

Listagem 1. Cadastrando mensagem cuja execução será  logada no Application Log do Windows.

exec sp_AddMessage

  @msgnum      = 50002,

  @severity      = 1,

  @msgtext      = 'A mensagem 50002 será registrada no Application Log do Windows',

  @with_log     = 'true'

go

raiserror (50002,1,1)

 

-------------------------------------------------------------------------------------------

(1 row(s) affected)

 

Msg 50002, Level 1, State 50002

A mensagem 50002 sera registrada no Application Log do Windows

 

Para confirmar o registro da mensagem no Application Log do Windows, abra o Event Viewer em Settings\Control Panel\Component Services\Application, localizado no Menu Iniciar do Windows (ver Figura 1).

 

Figura 1. Visualizando mensagens no Event Viewer.

 

·         Mensagens evocados com o comando T-SQL RAISERROR serão escritas no Application Log se a cláusula WITH LOG fizer parte do comando:

 

raiserror ('Teste de envio de mensagem para o Application Log com RAISERROR',11,1) with log

 

Para maiores detalhes sobre o comando RAISERROR consulte o ...

Quer ler esse conteúdo completo? Tenha acesso completo