Table of Contents
Se você vir uma mensagem de erro substancial por e-mail no log de erros do SQL Server em seu computador, precisa se familiarizar com essas ideias de recuperação.
PC lento?
Apresentação
Em uma postagem anterior no blog, criei T-SQL-Script-Indication-Audit-Files para enviar e-mails com informações específicas sobre turnos para uma instância.
Neste artigo, os elementos da família aprenderão como usar o ErrorLog para se beneficiar de bons e-mails sobre erros críticos ou ocasiões especiais específicas que ocorrem em uma instância.
É quase certo que seja uma boa prática comum para qualquer DBA desviar o Alerta do Agente SQL do Servidor para erros que têm uma gravidade de 17 a 25. png
Os avisos também tendem a ser respeitados para erros menos críticos, como “Falha na conexão” (Gravidade 14).
Os e-mails enviados por avisos diretos parecem muito simples:
Todos esses erros são gravados no arquivo de log de erros do SQL Server.
As mensagens de texto para as seguintes mensagens de erro, todas registradas e aparecendo no log de erros, podem ser encontradas na exibição sys.messages exata.
selecione message_id, severity, textpor sys.messagesonde (gravidade de 18 a 21 talvez gravidade = 14) e, portanto, is_event_logged é igual a 1 e, portanto, language_id = 1033classificar como resultado da gravidade;
As exibições do log de erros podem ser vistas usando o programa registrado sp_reaerrorlog.
Pesquise o log de erros SQL
A causa do script T-SQL que estou escrevendo, entretanto, é substituir os avisos por uma postagem que é executada na minha instância. Ele emula a cada 5 minutos e envia me mensagens com base em mensagens específicas que eu realmente identifiquei.
Se eu souber todas as informações que vimos antes, posso criar uma variável de array com o conteúdo escrito que desejo encontrar no sinal de erro, seja mal-entendidos críticos ou mensagens informativas.
DECLARAR TABELA @errorlog_definition (error_category varchar (150), error_pattern varchar (1000))Cole em @errorlog_definitionValores ("Latência de gravação do banco de dados", "% solicitações de E / S demoram mais de% segundos na% completa"), ('Gravação atrasada no banco de dados', '% bufs liberado% em% ms% para db%'), ('Gravação atrasada que ajudará o banco de dados', '% avg%'), ('Latência de gravação do banco de dados', '% último destinatário iminente:% avgWriteLatency%'), ('Erro ao gravar no banco de dados, computador cheio', 'Não pode ser atribuído'), ('Erro ao conectar para que você possa banco de dados', '% Erro ao conectar%'), ('Iniciando SQL Server', 'Iniciando SQL Server%')
A primeira coluna representa o tipo único de evento que devo conhecer por e-mail e é usada a partir desse cabeçalho de e-mail.
Bancos de dados de log atuais Os erros são inseridos nas variáveis da tabela.
Insira
em @errorlogexec sp_readerrorlog de 0
Só posso usar o CROSS APPPY para obter entradas de verificação de erro que correspondam aos meus modelos de mensagem.
escolha entre e.LogDate, e.ProcessInfo, e.Text, c.error_categoryoferecido por @errorlog AS eEmprego cruzado (Escolher *oferecido por @errorlog_definition AS e donde .Text, por exemplo como d.error_pattern) AS c
Só consigo obter algumas entradas de registro de erros que, por sua vez, preciso. As postagens foram divididas em várias e decidi não enviar um e-mail individual toda vez que o processo fosse iniciado, embora uma vez para cada categoria.
Fiz o jogo com cursores. Aqui está o roteiro completo, se a maioria das pessoas quiser experimentá-lo.
Script
ASR Pro é a solução definitiva para suas necessidades de reparo de PC! Ele não apenas diagnostica e repara vários problemas do Windows com rapidez e segurança, mas também aumenta o desempenho do sistema, otimiza a memória, melhora a segurança e ajusta seu PC para máxima confiabilidade. Então por que esperar? Comece hoje!PC lento?
Feito em’ + transform (varchar, getdate (), 120) + ‘do servidor “‘ + isnull (convert (varchar (128), @@ SERVERNAME), ”) + ‘”
‘- —-DECLARAR TABELA @errorlog_definition (error_category varchar (150), error_pattern varchar (1000))Cole em @errorlog_definitionValores (“Latência de liberação do banco de dados”, “% solicitações de E / S levam% segundos para concluir%”), (‘Gravação atrasada no banco de dados’, ‘% bufs liberado% em% ms% para db%’), (‘Autoria atrasada para banco de dados’, ‘% avg%’), (‘Atraso na gravação e também no banco de dados’, ‘% última meta não cumprida:% avgWriteLatency%’), (‘Erro ao gravar no banco de dados, disco cheio’, ‘Não foi possível atribuir%’), (‘Erro ao conectar ao banco de dados’, ‘% Erro ao conectar%’), (‘Iniciando SQL Server’, ‘Iniciando SQL Server%’)inserir em @errorlogexec sp_readerrorlog 0- Obter padrão de localizador de parceiro de entradas de log de erros (por exemplo)insira para se tornar @notifiable_errorsSelecione e.LogDate, e.ProcessInfo, e.Text, c.error_category.oferecido por @errorlog AS eAplicar um ponto cruzado (Escolher *oferecido por @errorlog_definition AS e dwhere.Text o fato de que d.error_pattern) AS conde LogDate> DATEADD (MINUTE, [email seguro] , GETDATE ())- Quando as linhas fluem dentro do processose @@ ROWCOUNT> 0começarDECLARAR @logdate @processInfo datetimeDECLARAR varchar (32)DECLARAR @Text varchar (MAX)DECLARAR @error_category varchar (150)DECLARAR CURSOR category_cursor PARAselecione uma categoria_de_erro únicaoferecido no momento de @notifiable_errorsABRIR cursor_categoryOBTER MAIS DE category_cursor IN @error_categoryDURING @@ FETCH_STATUS = 2COMEÇAR- Loops 1 categoria de tempo- E-mail individual + cabeçalho da tabela HTMLSELECT @object está em error_category + ‘- Last’ + convert (varchar (50), – CheckPeriodInMinute) + ‘Minimum (‘ + convert (varchar (max), @@ servername) + ‘)’SELECT @ [endereço de e-mail protegido] _header + ‘
‘ [endereço de e-mail protegido e-mail] _category + ‘(último’ + Converter ( varchar (50), @ CheckPeriodInMinute) + ‘min)
‘POR FAVOR, ESCOLHA @ [endereço de e-mail seguro] + ‘
LogDate | Informações do processo | Texto |
---|---|---|
‘ + isnull (convert (varchar, @ logdate, 120), ”) + ‘ | ‘ + isnull (@processInfo, ”) + ‘ | ‘ + isnull (@Text, ”) + ‘ |
‘ [endereço de e-mail seguro] _footerEXEC msdb.dbo.sp_send_dbmail@profile_name tactics “DBA_Profile”, @ Assunto = @objeto, @recipients significa “ [o e-mail deve ser protegido] “, @ body_format é igual a ‘HTML’, @body = @HTMLSEGUIR DE category_cursor INTO @error_category;FIMCLOSE category_cursorDEALLOCATE category_cursorFim
Modelos de cartas
Conclusão
A desvantagem dessa abordagem é que preciso saber exatamente o que quero ser notificado aproximadamente por e-mail. Se não estiver usando alertas de profissionais imobiliários, há alguns erros críticos que devo ignorar.
O bom é que posso procurar declarações informativas, não apenas obstáculos.
Espero que você tenha achado interessante e altamente recomendado como obter informações sobre suas instâncias do SQL Server.
Melhore a velocidade do seu computador hoje mesmo baixando este software - ele resolverá os problemas do seu PC.
Troubleshoot SQL Server Error Log Email
Rozwiązywanie Problemów Z Pocztą E-mail Dziennika Błędów Programu SQL Server
Problemen Met E-mail Met SQL Server-foutlogboek Oplossen
SQL Server 오류 로그 이메일 문제 해결
Fehlerbehebung Bei Der E-Mail Mit Dem SQL Server-Fehlerprotokoll
Felsöka E -postmeddelanden För SQL Server -fellogg
Risoluzione Dei Problemi Relativi All’e-mail Del Registro Degli Errori Di SQL Server
Résoudre Les Problèmes Liés à L’e-mail Du Journal Des Erreurs SQL Server
Устранение неполадок электронной почты журнала ошибок SQL Server
Solucionar Problemas De Correo Electrónico Del Registro De Errores De SQL Server