{"id":7206,"date":"2017-01-19T10:32:17","date_gmt":"2017-01-19T12:32:17","guid":{"rendered":"http:\/\/www.fabriciolima.net\/?p=7206"},"modified":"2017-02-02T20:24:06","modified_gmt":"2017-02-02T22:24:06","slug":"alerta-monitorando-o-status-das-bases-de-dados-no-sql-server","status":"publish","type":"post","link":"https:\/\/fabriciolima.net\/blog\/2017\/01\/19\/alerta-monitorando-o-status-das-bases-de-dados-no-sql-server\/","title":{"rendered":"Alerta: Monitorando o Status das Bases de Dados no SQL Server"},"content":{"rendered":"<p>Ol\u00e1 Pessoal,<\/p>\n<p>Hoje vou compartilhar com voc\u00eas o script de cria\u00e7\u00e3o de mais um alerta para nos ajudar na Administra\u00e7\u00e3o do nosso SQL Server.<\/p>\n<p>Esse alerta \u00e9 um pouco mais simples. Ele vai monitorar o Status das nossas bases de dados.<\/p>\n<p>Caso alguma base fique com o Status diferente de ONLINE e RESTORING, n\u00f3s seremos alertados.<\/p>\n<p>N\u00e3o monitoro o Status Restoring, pois tem muita gente que fica restaurando bases no servidor de produ\u00e7\u00e3o e isso iria gerar falsos alertas de problemas. Contudo, se no seu caso voc\u00ea quer monitorar quando uma base entra em Restoring, basta alterar o Script do Alerta.<\/p>\n<h6>Simulando um problema em uma Base<\/h6>\n<p><strong>Para testar o alerta fiz o seguinte procedimento:<\/strong><\/p>\n<ul>\n<li>Parei o servi\u00e7o do SQL Server<\/li>\n<li>Alterei o nome do arquivo .mdf de uma base chamada TreinamentoDBA<\/li>\n<li>Subi o servi\u00e7o do SQL Server<\/li>\n<\/ul>\n<p>Ao fazer esse procedimento a base <strong>TreinamentoDBA<\/strong> subiu com o status <strong>RECOVERY_PENDING.<\/strong><\/p>\n<p><strong>Quando o job de alerta rodou, ele enviou o seguinte e-mail:<\/strong><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-7208 aligncenter\" src=\"https:\/\/www.fabriciolima.net\/blog\/wp-content\/uploads\/2017\/01\/AlertaBaseONLINE.png\" alt=\"\" width=\"610\" height=\"203\" srcset=\"https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2017\/01\/AlertaBaseONLINE.png 875w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2017\/01\/AlertaBaseONLINE-300x100.png 300w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2017\/01\/AlertaBaseONLINE-768x255.png 768w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2017\/01\/AlertaBaseONLINE-700x233.png 700w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2017\/01\/AlertaBaseONLINE-410x136.png 410w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2017\/01\/AlertaBaseONLINE-100x33.png 100w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2017\/01\/AlertaBaseONLINE-275x91.png 275w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2017\/01\/AlertaBaseONLINE-20x7.png 20w\" sizes=\"auto, (max-width: 610px) 100vw, 610px\" \/><\/p>\n<p>Parei o SQL Server novamente, voltei o nome correto do arquivo .mdf e subi o servi\u00e7o.<\/p>\n<p><strong>Quando o job de alerta rodou, ele enviou o seguinte e-mail:<\/strong><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-7209 aligncenter\" src=\"https:\/\/www.fabriciolima.net\/blog\/wp-content\/uploads\/2017\/01\/CLEARBaseONLINE.png\" alt=\"\" width=\"581\" height=\"278\" srcset=\"https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2017\/01\/CLEARBaseONLINE.png 957w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2017\/01\/CLEARBaseONLINE-300x144.png 300w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2017\/01\/CLEARBaseONLINE-768x368.png 768w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2017\/01\/CLEARBaseONLINE-700x335.png 700w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2017\/01\/CLEARBaseONLINE-410x196.png 410w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2017\/01\/CLEARBaseONLINE-100x48.png 100w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2017\/01\/CLEARBaseONLINE-275x132.png 275w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2017\/01\/CLEARBaseONLINE-20x10.png 20w\" sizes=\"auto, (max-width: 581px) 100vw, 581px\" \/><\/p>\n<p>Pronto. Agora sei quando uma base muda de Status no banco de dados dos meus clientes.<\/p>\n<p>Detalhe que s\u00f3 vai receber um e-mail de Alerta (n\u00e3o vai encher sua caixa de entrada). O de CLEAR s\u00f3 \u00e9 enviado ap\u00f3s a resolu\u00e7\u00e3o do problema.<\/p>\n<p><strong>Como crio esse alerta?<\/strong><\/p>\n<p><strong>Pr\u00e9-requisitos:<\/strong><\/p>\n<ul>\n<li>Configurar o envio de e-mail do SQL Server (claro). Segue um <a href=\"http:\/\/blogs.msdn.com\/b\/suhde\/archive\/2009\/07\/12\/how-to-configure-sql-server-database-mail-to-send-email-using-your-windows-live-mail-account-or-your-gmail-account.aspx\" target=\"_blank\"><b>link<\/b><\/a> como refer\u00eancia.<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<p>Segue o script para criar esse alerta: <a href=\"https:\/\/www.fabriciolima.net\/blog\/wp-content\/uploads\/2017\/01\/Script_Alerta_Status_Database.txt\" target=\"_blank\"><b>Download Script<\/b><\/a><br \/>\nEsse script vai criar uma tabela chamada <em><strong>Alerta<\/strong> <\/em>para controlar o ALERTA\u00a0e o CLEAR.<\/p>\n<p>E tamb\u00e9m vai criar uma procedure chamada <em><strong>stpAlerta_Status_Databases<\/strong><\/em> que far\u00e1 a valida\u00e7\u00e3o. Voc\u00ea deve colocar essa procedure em um job para rodar a cada 1 minuto (dever de casa).<\/p>\n<p>No in\u00edcio do script tem uma documenta\u00e7\u00e3o dizendo que voc\u00ea precisa alterar o Profile e o E-mail de envio do Alerta.<\/p>\n<p>Em todos os meus clientes onde realizo um suporte e monitoramento mensal eu crio esse alerta para me ajudar na administra\u00e7\u00e3o do ambiente.<\/p>\n<p>Voce \u00e9 daqueles que s\u00f3 acreditam vendo?<\/p>\n<p><strong>Segue abaixo o v\u00eddeo com a DEMO:<\/strong><\/p>\n<p><iframe loading=\"lazy\" width=\"1170\" height=\"658\" src=\"https:\/\/www.youtube.com\/embed\/zObdlXH7NvQ?feature=oembed\" frameborder=\"0\" allowfullscreen><\/iframe><\/p>\n<p>&nbsp;<\/p>\n<h6>Outros alertas:<\/h6>\n<ul>\n<li><a href=\"https:\/\/www.fabriciolima.net\/blog\/2017\/01\/12\/alerta-monitorando-o-tamanho-do-transaction-log-no-sql-server\/\" target=\"_blank\">Alerta: Monitorando o tamanho do Transaction Log no SQL Server<\/a><\/li>\n<li><a href=\"https:\/\/www.fabriciolima.net\/blog\/2016\/11\/07\/casos-do-dia-a-dia-monitorando-o-tamanho-do-arquivo-mdf-do-tempdb-e-sua-version-store\/\" target=\"_blank\">Casos do Dia a Dia: Monitorando o tamanho do arquivo MDF do Tempdb e sua Version Store<\/a><\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<p><b>Gostou dessa Dica?<\/b><\/p>\n<p>Curta, comente, compartilhe\u2026<\/p>\n<p>Assine meu canal no <a href=\"https:\/\/www.youtube.com\/channel\/UCeBRAO_LLrUdSrOXIywjzRA\" target=\"_blank\">Youtube<\/a> e curta minha p\u00e1gina no <a class=\"external-link wpel-icon-left\" href=\"https:\/\/www.facebook.com\/FabricioLimaSolucoesemBancodeDados\/\" target=\"_blank\" rel=\"nofollow external noopener noreferrer\" data-wpel-link=\"external\">Facebook<\/a> para receber Dicas de Leituras, V\u00eddeos e Eventos sobre SQL Server.<\/p>\n<p>Veja esse e outros Alertas no meu\u00a0<a class=\"external-link wpel-icon-left\" href=\"https:\/\/www.fabriciolima.net\/cursos-online\/treinamento-tarefas-do-dia-a-dia-de-um-dba-online\/\" target=\"_blank\" rel=\"nofollow external noopener noreferrer\" data-wpel-link=\"external\">Treinamento de Tarefas do Dia a Dia de um DBA<\/a>.<\/p>\n<p>At\u00e9 a pr\u00f3xima.<\/p>\n<p>Fabr\u00edcio Lima<\/p>\n<p>MCITP \u2013 Database Administrator<\/p>\n<p>Consultor e Instrutor SQL Server<\/p>\n<p>Trabalha com SQL Server desde 2006<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Ol\u00e1 Pessoal, Hoje vou compartilhar com voc\u00eas o script de cria\u00e7\u00e3o de mais um alerta para nos ajudar na Administra\u00e7\u00e3o do nosso SQL Server. Esse alerta \u00e9 um pouco mais simples. Ele vai monitorar o Status das nossas bases de dados. Caso alguma base fique com o Status diferente de ONLINE e RESTORING, n\u00f3s seremos [&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,942,991,33,280],"tags":[1260,1414,1415,1419,1417,1418,1262,1416,33],"class_list":["post-7206","post","type-post","status-publish","format-standard","hentry","category-administracao-de-bd","category-consultoria-sql-server","category-dba-remoto","category-sql-server","category-virtual-pass-br","tag-alerta","tag-alerta-bases-de-dados","tag-alerta-status-bases-sql-server","tag-base-emergency-mode","tag-base-offline","tag-base-suspect","tag-monitoramento-sql-server","tag-recovery_pending","tag-sql-server"],"post_mailing_queue_ids":[],"_links":{"self":[{"href":"https:\/\/fabriciolima.net\/blog\/wp-json\/wp\/v2\/posts\/7206","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=7206"}],"version-history":[{"count":0,"href":"https:\/\/fabriciolima.net\/blog\/wp-json\/wp\/v2\/posts\/7206\/revisions"}],"wp:attachment":[{"href":"https:\/\/fabriciolima.net\/blog\/wp-json\/wp\/v2\/media?parent=7206"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fabriciolima.net\/blog\/wp-json\/wp\/v2\/categories?post=7206"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fabriciolima.net\/blog\/wp-json\/wp\/v2\/tags?post=7206"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}