erro_sqlserver

Quem trabalha com o desenvolvimento de aplicações e a manutenção das mesmas sabe que é comum encontrarmos diversos tipos de erros (ou problemas, buchas, nabas, etc) e que é importante sabermos identificar qual é a fonte do problema, fornecer uma solução e tomar uma medida pró-ativa ( leia POG na medida do possível) para que o erro não volte a nos atormentar.

Esta semana vou falar um pouco sobre como gerenciar, identificar e ficar alerta sobre os erros no SQL Server.

O primeiro passo que devemos tomar é descobrir qual a origem do erro e delegar a respectiva responsabilidade para a área correta.

É importante descobrir se estamos com um erro de hardware ou rede nas nossas mão ou se é de uma parte específica de software, como o sistema operacional. Para o DBA é crucial que identifiquemos se o erro é proveniente da aplicação cliente, do mecanismo de acesso aos dados, dos dados que não estão de acordo com alguma regra (operacional) ou do banco de dados.

Descoberta qual é origem do erro devemos obter a maior quantidade de informações relevantes sobre a ocorrência. É muito difícil resolver um problema quando o usuário chega dizendo somente: “Deu pau!”. Quando isso acontece já peço para o usuários responder um questionário verbal com algumas perguntas do tipo:

O que foi afetado por este erro?
Quando, como, onde aconteceu o erro?
Cadê a descrição ou código do erro?
Este erro já aconteceu antes?
Alguma operação incomum foi efetuada antes do erro acontecer?

Isso já ajuda a obter algumas informações. Para recolher mais algumas informações técnicas podemos procurar observar os diferentes logs do sistema até o momento da ocorrência. O SQL Server possui um log de atividades do servidor que pode fornecer algumas informações relevantes. Para acessar este log vamos utilizar o Enterprise Manager, clicar na pasta Management do servidor escolhido e depois clicar no ícone SQL Server logs, como mostrado na figura abaixo:

Também podemos acessar estes logs através do utilitário de linha de comando chamado sqldiag.exe que irá gravar estes logs e outras informações em um arquivo texto.

Outros logs importantes são o Log do Aplicativo e Log do Sistema que podem ser vistos através do Event View (Visualizador de Evento) no painel de controle do Windows.

Um erro típico do SQL Server geralmente possui três partes:

1. A descrição do erro

Esta descrição na maioria das vezes é retornada para a aplicação cliente tratar e geralmente está em inglês. Na maioria dos casos esta descrição já nos permite ter uma boa idéia do que está acontecendo. Todas as mensagens de erros do SQL Server podem ser encontradas dentro da tabela de sistema chamada sysmessages que se encontra dentro do bando de dados master.

2. O código do erro

No SQL Server o código do erro é retornado jundo com a descrição do erro. O intervalo para os números de códigos de erros padrão vai de 1 até 21999. Com o número do erro em mãos podemos consultar o Books OnLine, ou outro local especilizado, para obter maiores informações. O número do último erro ocorrido é colocado na função global @@ERROR

3. Nível de seriedade do erro

Junto com a descrição do erro e o código do mesmo o SQL Server nos retorna um número que indica quão sério é o erro. A tabela abaixo mostra alguns níveis de seriedade e o seu significado

Nível de Seriedade Significado
10 Problemas simples, causandos por imput inválido ou errado do usuário
11 a 16 Erros um pouco mais complicados, mas podem ser corrigos pelo usuário sem maiores problemas.
17 Falta de recursos. Geralmente só a instrução é cancelada.
18 Erros em que a instrução enviada ao servidor é cancelada, mas a conexão do usuário com o SQL Server é mantida
19 Erro em algum tipo de recurso
20 a 25 Problemas de sistema em que a conexão do usuário é fechada e a integridade do banco de dados pode ter sido afetada

No SQL Server podemos criar um alerta para um determinado código de erro. Esta alerta fica esperando indefinidamente até que o erro cujo código foi configurado aconteça. E quando o erro acontecer o alerta pode iniciar um job que irá tomar algum tipo de providência. Na instalação do SQL Server 2005  já são criados 7 alertas de demonstração que somente funcionaram se o serviço SQL Server Agent estiver rodando.

~\\|//~
 -(o o)- RODRIGO SILVA
Anúncios

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s