{"id":6982,"date":"2017-05-01T15:01:09","date_gmt":"2017-05-01T18:01:09","guid":{"rendered":"http:\/\/www.fabriciolima.net\/?p=6982"},"modified":"2019-09-22T21:35:47","modified_gmt":"2019-09-23T00:35:47","slug":"criando-um-e-mail-de-checklist-diario-no-sql-server","status":"publish","type":"post","link":"https:\/\/fabriciolima.net\/blog\/2017\/05\/01\/criando-um-e-mail-de-checklist-diario-no-sql-server\/","title":{"rendered":"Criando um E-mail de CheckList Di\u00e1rio no SQL Server"},"content":{"rendered":"<p><strong>Update dia 22\/09\/2019:<\/strong> Veja nesse post uma nova vers\u00e3o para a cria\u00e7\u00e3o desse Checklist para seu BD SQL Server junto com outros 40 alertas:<\/p>\n<p><a href=\"http:\/\/www.fabriciolima.net\/blog\/2019\/09\/22\/passo-a-passo-de-como-criar-40-alertas-para-monitorar-seu-sql-server\/\" target=\"_blank\" rel=\"noopener\">http:\/\/www.fabriciolima.net\/blog\/2019\/09\/22\/passo-a-passo-de-como-criar-40-alertas-para-monitorar-seu-sql-server\/<\/a><\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-2976 aligncenter\" src=\"https:\/\/www.fabriciolima.net\/blog\/wp-content\/uploads\/2014\/01\/checklist.jpg\" alt=\"checklist\" width=\"278\" height=\"185\" srcset=\"https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2014\/01\/checklist.jpg 1697w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2014\/01\/checklist-300x200.jpg 300w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2014\/01\/checklist-1024x682.jpg 1024w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2014\/01\/checklist-768x512.jpg 768w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2014\/01\/checklist-600x400.jpg 600w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2014\/01\/checklist-1536x1024.jpg 1536w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2014\/01\/checklist-700x467.jpg 700w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2014\/01\/checklist-410x273.jpg 410w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2014\/01\/checklist-100x67.jpg 100w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2014\/01\/checklist-275x183.jpg 275w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2014\/01\/checklist-20x13.jpg 20w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2014\/01\/checklist-272x182.jpg 272w\" sizes=\"auto, (max-width: 278px) 100vw, 278px\" \/><\/p>\n<p>Ol\u00e1 Pessoal,<\/p>\n<p>No dia <strong>07\/03\/2010<\/strong> eu fiz meu primeiro post para esse blog: <a href=\"https:\/\/www.fabriciolima.net\/blog\/2010\/03\/07\/apresentacao\/\" target=\"_blank\" rel=\"noopener noreferrer\">Apresenta\u00e7\u00e3o<\/a><\/p>\n<p>Contudo, foi no dia <strong>24\/03\/2010<\/strong> que eu comecei a ficar conhecido no mundo SQL Server. O meu post <a href=\"https:\/\/www.fabriciolima.net\/blog\/2010\/03\/24\/criando-um-checklist-automatico-do-banco-de-dados\/\" target=\"_blank\" rel=\"noopener noreferrer\">Criando um CheckList Autom\u00e1tico do Banco de Dados<\/a> bombou!!! Recebi muitos acessos, coment\u00e1rios e a partir disso conheci muitas pessoas novas da comunidade SQL aumentando bastante meu networking.<\/p>\n<p>Hoje, 7 anos depois, esse CheckList em Excel j\u00e1 foi substitu\u00eddo por um Checklist em HTML que vem no corpo do e-mail, conforme esse exemplo abaixo:<\/p>\n<p><a href=\"https:\/\/www.fabriciolima.net\/blog\/wp-content\/uploads\/2017\/05\/Exemplo-E-mail-com-o-CheckList-do-Banco-de-Dados-Blog.pdf\" target=\"_blank\" rel=\"noopener noreferrer\">Exemplo E-mail com o CheckList do Banco de Dados<\/a><\/p>\n<p>Eu implanto esse Checklist em todos os clientes que sou respons\u00e1vel pelo SQL Server e tamb\u00e9m ministrei at\u00e9 <strong>outubro-2016<\/strong> um workshop\u00a0pago (3 horas) de como implantar esse Checklist.<\/p>\n<p><strong>A\u00ed que vem a boa not\u00edcia<\/strong>, <strong>agora<\/strong> que j\u00e1 se passaram\u00a06 meses do meu \u00faltimo workshop pago de como implantar esse CheckList, conforme prometido,\u00a0<strong>estou compartilhando ele gr\u00e1tis com voc\u00eas<\/strong>.<\/p>\n<p>Certamente ele tem muita coisa que pode ser melhorada e conto com voc\u00eas para dar esse feedback e evoluirmos o CheckList.<\/p>\n<p>Quem j\u00e1 tem esse meu CheckList (alunos ou clientes) tamb\u00e9m ser\u00e3o beneficiados, \u00a0pois estou liberando com algumas melhorias desde o \u00faltimo treinamento em Outubro.<\/p>\n<p>Vamos ao que interessa&#8230;<\/p>\n<h6>Porque criar um Checklist de monitoramento do Banco de Dados?<\/h6>\n<p>Essa \u00e9 uma maneira simples e r\u00e1pida de fazer uma checagem em v\u00e1rios itens do seu banco de dados. Com isso, voc\u00ea ganha um bom tempo e n\u00e3o precisa conferir essas informa\u00e7\u00f5es manualmente, como eu fazia no inicio da carreira sem o Checklist.<\/p>\n<p>Antes de voc\u00ea sair de casa, voc\u00ea j\u00e1 tem o Checklist ali no seu e-mail. Pode olhar no celular e j\u00e1 tomar alguma a\u00e7\u00e3o caso seja algo importante.<\/p>\n<h6>O que ser\u00e1 monitorado com o Checklist<\/h6>\n<p>Vamos monitorar esses itens abaixo no CheckList:<\/p>\n<p>1) Disponibilidade do SQL Server<br \/>\n2) Espa\u00e7o em disco<br \/>\n3) Informa\u00e7\u00f5es dos Arquivos .MDF<br \/>\n4) Informa\u00e7\u00f5es dos Arquivos .LDF<br \/>\n5) Crescimento das Bases<br \/>\n6) Crescimento das Tabelas<br \/>\n7) Utiliza\u00e7\u00e3o Disco Writes<br \/>\n8) Utiliza\u00e7\u00e3o Disco Reads<br \/>\n9) Bases sem Backup nas \u00faltimas 16 horas<br \/>\n10) Backup FULL e Diferencial<br \/>\n11) Queries em Execu\u00e7\u00e3o a mais de 2 horas<br \/>\n12) Jobs em Execu\u00e7\u00e3o<br \/>\n13) Jobs Alterados<br \/>\n14) Jobs que Falharam<br \/>\n15) Jobs Demorados<br \/>\n16) Queries Demoradas Dia Anterior<br \/>\n17) Queries Demoradas \u2013 \u00daltimos 10 dias<br \/>\n18) Contadores<br \/>\n19) Conex\u00f5es Abertas por Usu\u00e1rios<br \/>\n20) Fragmenta\u00e7\u00e3o dos \u00cdndices<br \/>\n21) WAITS Stats Dia Anterior<br \/>\n22) Alertas Sem CLEAR<br \/>\n23) Alertas do Dia Anterior<br \/>\n24) Login Failed<br \/>\n25) Error Log do SQL Server<\/p>\n<p>&nbsp;<\/p>\n<h6>Pr\u00e9-Requisitos<\/h6>\n<p>Para configurar o envio desse CheckList, temos alguns pr\u00e9-requisitos:<\/p>\n<ul>\n<li>Configurar o SQL Server para enviar e-mail (claro)<\/li>\n<li>Usu\u00e1rio do SQL com acesso para criar e excluir um arquivo em uma pasta no servidor (isso ser\u00e1 necess\u00e1rio na rotina que monitora queries lentas)<\/li>\n<li>Criar uma database para logar informa\u00e7\u00f5es\n<ul>\n<li>Utilizo uma database com nome <b>\u201cTraces\u201d <\/b>nos Scripts. Se quiser usar uma base com outro nome, boa sorte no replace de todos os scripts.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h6><\/h6>\n<h6>Rotinas para logar informa\u00e7\u00f5es do BD<\/h6>\n<p>Algumas das informa\u00e7\u00f5es que s\u00e3o enviadas no CheckList s\u00e3o coletadas na hora da execu\u00e7\u00e3o diretamente do SQL Server. Contudo, algumas informa\u00e7\u00f5es temos que criar um hist\u00f3rico delas para poder enviar no CheckList.<\/p>\n<p>Dessa forma, as rotinas abaixo precisam ser criadas para que o CheckList envie as informa\u00e7\u00f5es:<\/p>\n<p><strong>1) Server Side Trace guardando as queries que demoram mais de X segundos<\/strong><\/p>\n<p>Essa rotina j\u00e1 tinha no meu Blog:<\/p>\n<ul>\n<li style=\"padding-left: 30px;\"><a href=\"https:\/\/www.fabriciolima.net\/blog\/2010\/06\/05\/passo-a-passo-para-encontrar-as-querys-mais-demoradas-do-banco-de-dados-parte-1\/\" target=\"_blank\" rel=\"noopener noreferrer\">Passo a passo para encontrar as querys mais demoradas do Banco de Dados \u2013 Parte 1<\/a><\/li>\n<li style=\"padding-left: 30px;\"><a href=\"https:\/\/www.fabriciolima.net\/blog\/2010\/06\/05\/passo-a-passo-para-encontrar-as-querys-mais-demoradas-do-banco-de-dados-parte-2\/\" target=\"_blank\" rel=\"noopener noreferrer\">Passo a passo para encontrar as querys mais demoradas do Banco de Dados \u2013 Parte 2<\/a><\/li>\n<\/ul>\n<p style=\"padding-left: 30px;\">Esse trace fica habilitado 24 horas nos meus clientes.<\/p>\n<p style=\"padding-left: 30px;\">O ponto importante aqui \u00e9 que cada ambiente tem sua particularidade. Eu monitoro queries que demoram mais de 3 segundos em um ambiente, 5 segundos em outro ambiente e 10 segundos em outro ambiente. Ent\u00e3o voc\u00ea deve adaptar essa rotina a sua realidade. N\u00e3o deixe logar muita informa\u00e7\u00e3o (sugest\u00e3o de 3 \u00e0 5 mil queries por dia no m\u00e1ximo).<\/p>\n<p style=\"padding-left: 30px;\">Teste o procedimento em homologa\u00e7\u00e3o antes de colocar em produ\u00e7\u00e3o.<\/p>\n<p><strong>2) Rotina para guardar o tamanho das tabela<\/strong><\/p>\n<ul>\n<li><a href=\"https:\/\/www.fabriciolima.net\/blog\/2016\/04\/27\/queries-do-dia-a-dia-monitorando-o-crescimento-de-tabelas-e-bases-no-sql-server\/\" target=\"_blank\" rel=\"noopener noreferrer\">Queries do Dia a Dia \u2013 Monitorando o Crescimento de Tabelas e Bases no SQL Server<\/a><\/li>\n<\/ul>\n<p><strong>3) Rotina para guardar o log de contadores<\/strong><\/p>\n<ul>\n<li><a href=\"https:\/\/www.fabriciolima.net\/blog\/2016\/06\/22\/queries-do-dia-a-dia-monitorando-contadores-de-forma-simples-via-dmv\/\" target=\"_blank\" rel=\"noopener noreferrer\">Queries do Dia a Dia \u2013 Monitorando Contadores de forma simples via DMV<\/a><\/li>\n<\/ul>\n<p><strong>4) Rotina para guardar a fragmenta\u00e7\u00e3o dos \u00edndices<\/strong><\/p>\n<ul>\n<li><a href=\"https:\/\/www.fabriciolima.net\/blog\/2011\/02\/16\/monitorando-a-fragmentacao-dos-indices\/\" target=\"_blank\" rel=\"noopener noreferrer\">Monitorando a fragmenta\u00e7\u00e3o dos \u00edndices<\/a><\/li>\n<\/ul>\n<p><strong>5) Rotina para guardar os Waits Stats<\/strong><\/p>\n<p style=\"padding-left: 30px;\">Ainda n\u00e3o tinha publicado uma rotina dessa no meu Blog.<\/p>\n<p><strong>6) Rotina para guardar\u00a0informa\u00e7\u00f5es de Leitura e Escrita dos arquivos de dados e log.<\/strong><\/p>\n<p style=\"padding-left: 30px;\">Ainda n\u00e3o tinha publicado uma rotina dessa no meu Blog.<\/p>\n<h6>Scripts e informa\u00e7\u00f5es para implanta\u00e7\u00e3o<\/h6>\n<p>Segue abaixo os Scripts que ser\u00e3o utilizados para criar todo esse CheckList:<\/p>\n<ul>\n<li><a href=\"https:\/\/www.fabriciolima.net\/blog\/wp-content\/uploads\/2017\/05\/1-Passo-a-Passo-Cria\u00e7\u00e3o-do-CheckList.txt\" target=\"_blank\" rel=\"noopener noreferrer\">1 &#8211; Passo a Passo &#8211; Cria\u00e7\u00e3o do CheckList<\/a><\/li>\n<li><a href=\"https:\/\/www.fabriciolima.net\/blog\/wp-content\/uploads\/2017\/05\/2-PreRequisito-QueriesDemoradas.txt\" target=\"_blank\" rel=\"noopener noreferrer\">2 &#8211; PreRequisito &#8211; QueriesDemoradas<\/a><\/li>\n<li><a href=\"https:\/\/www.fabriciolima.net\/blog\/wp-content\/uploads\/2017\/05\/3-PreRequisito-Demais-Rotinas.txt\" target=\"_blank\" rel=\"noopener noreferrer\">3 &#8211; PreRequisito &#8211; DemaisRotinas<\/a><\/li>\n<li><a href=\"https:\/\/www.fabriciolima.net\/blog\/wp-content\/uploads\/2017\/10\/ALERTAS-2-Cria\u00e7\u00e3o-da-Tabela-de-Controle-dos-Alertas-1.txt\">4 &#8211; Cria\u00e7\u00e3o da Tabela de Controle dos Alertas<\/a><\/li>\n<li><a href=\"https:\/\/www.fabriciolima.net\/blog\/wp-content\/uploads\/2017\/05\/4-CheckList-Tabelas-e-Procedures.txt\" target=\"_blank\" rel=\"noopener noreferrer\">5 &#8211; CheckList &#8211; Tabelas e Procedures<\/a><\/li>\n<li><a href=\"https:\/\/www.fabriciolima.net\/blog\/wp-content\/uploads\/2017\/05\/5-CheckList-Procedure-de-Envio-do-Email.txt\" target=\"_blank\" rel=\"noopener noreferrer\">6 &#8211; CheckList &#8211; Procedure de Envio do Email<\/a><\/li>\n<\/ul>\n<p>Segue abaixo o v\u00eddeo com a explica\u00e7\u00e3o de como executar os scripts:<\/p>\n<p><iframe loading=\"lazy\" width=\"1170\" height=\"658\" src=\"https:\/\/www.youtube.com\/embed\/GduDGM7fnxQ?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen><\/iframe><\/p>\n<p>\u00c9 isso ai galera&#8230; Script prontinho e simples de implantar como viram no v\u00eddeo.<\/p>\n<p>Espero que tenha contribu\u00eddo para tornar seu dia a dia de DBA um pouco mais simples.<\/p>\n<p>Aproveitem o Checklist sem modera\u00e7\u00e3o e indiquem para seus conhecidos que possuem um banco SQL Server para que eles tamb\u00e9m possma usar.<\/p>\n<p><b>Gostou desse Post?<\/b><\/p>\n<p>Curta, comente, compartilhe com os coleguinhas\u2026<\/p>\n<p>Assine meu canal no <a class=\"external-link wpel-icon-left\" href=\"https:\/\/www.youtube.com\/channel\/UCeBRAO_LLrUdSrOXIywjzRA\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\" data-wpel-link=\"external\">Youtube<\/a> e curta minha <a class=\"external-link wpel-icon-left\" href=\"https:\/\/www.facebook.com\/FabricioLimaSolucoesemBancodeDados\/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\" data-wpel-link=\"external\">P\u00e1gina no Facebook<\/a> para receber Dicas de Leituras e Eventos sobre SQL Server.<\/p>\n<p>At\u00e9 a pr\u00f3xima.<\/p>\n<p>Abra\u00e7os,<\/p>\n<p>Fabr\u00edcio Lima<\/p>\n<p>Microsoft Data Platform MVP<\/p>\n<p>Consultor e Instrutor SQL Server<\/p>\n<p>Trabalha com SQL Server desde 2006<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Update dia 22\/09\/2019: Veja nesse post uma nova vers\u00e3o para a cria\u00e7\u00e3o desse Checklist para seu BD SQL Server junto com outros 40 alertas: http:\/\/www.fabriciolima.net\/blog\/2019\/09\/22\/passo-a-passo-de-como-criar-40-alertas-para-monitorar-seu-sql-server\/ &nbsp; &nbsp; Ol\u00e1 Pessoal, No dia 07\/03\/2010 eu fiz meu primeiro post para esse blog: Apresenta\u00e7\u00e3o Contudo, foi no dia 24\/03\/2010 que eu comecei a ficar conhecido no mundo SQL [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_exactmetrics_skip_tracking":false,"_exactmetrics_sitenote_active":false,"_exactmetrics_sitenote_note":"","_exactmetrics_sitenote_category":0,"footnotes":""},"categories":[3,5,942,991,33,280],"tags":[18,1398,1399,190,1323,1401,1402,1400,1407,91,184,1403,1081,1404,1262,1405,33,1406],"class_list":["post-6982","post","type-post","status-publish","format-standard","hentry","category-administracao-de-bd","category-carreira","category-consultoria-sql-server","category-dba-remoto","category-sql-server","category-virtual-pass-br","tag-checklist","tag-checklist-banco-de-dados","tag-checklist-dba","tag-checklist-diario","tag-contadores-sql-server","tag-crescimento-bases-sql-server","tag-crescimento-tabelas-sql-server","tag-disponibilidade-do-sql","tag-error-log-sql-server","tag-espaco-em-disco","tag-fragmentacao-de-indices","tag-monitoramento-backup-full","tag-monitoramento-dba","tag-monitoramento-jobs","tag-monitoramento-sql-server","tag-queries-demoradas-sql-server","tag-sql-server","tag-waitstats"],"post_mailing_queue_ids":[],"_links":{"self":[{"href":"https:\/\/fabriciolima.net\/blog\/wp-json\/wp\/v2\/posts\/6982","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fabriciolima.net\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fabriciolima.net\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fabriciolima.net\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fabriciolima.net\/blog\/wp-json\/wp\/v2\/comments?post=6982"}],"version-history":[{"count":4,"href":"https:\/\/fabriciolima.net\/blog\/wp-json\/wp\/v2\/posts\/6982\/revisions"}],"predecessor-version":[{"id":10907,"href":"https:\/\/fabriciolima.net\/blog\/wp-json\/wp\/v2\/posts\/6982\/revisions\/10907"}],"wp:attachment":[{"href":"https:\/\/fabriciolima.net\/blog\/wp-json\/wp\/v2\/media?parent=6982"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fabriciolima.net\/blog\/wp-json\/wp\/v2\/categories?post=6982"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fabriciolima.net\/blog\/wp-json\/wp\/v2\/tags?post=6982"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}