{"id":11132,"date":"2019-11-20T09:19:59","date_gmt":"2019-11-20T12:19:59","guid":{"rendered":"http:\/\/www.fabriciolima.net\/?p=11132"},"modified":"2019-11-20T11:55:55","modified_gmt":"2019-11-20T14:55:55","slug":"como-criar-mais-de-30-alertas-por-e-mail-no-sql-server-rds-da-amazon","status":"publish","type":"post","link":"https:\/\/fabriciolima.net\/blog\/2019\/11\/20\/como-criar-mais-de-30-alertas-por-e-mail-no-sql-server-rds-da-amazon\/","title":{"rendered":"Como criar mais de 30 alertas por e-mail no SQL Server RDS da Amazon"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-11160 aligncenter\" src=\"https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2019\/11\/Amazon-RDS-300x150.png\" alt=\"\" width=\"300\" height=\"150\" srcset=\"https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2019\/11\/Amazon-RDS-300x150.png 300w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2019\/11\/Amazon-RDS-410x205.png 410w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2019\/11\/Amazon-RDS-100x50.png 100w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2019\/11\/Amazon-RDS-275x138.png 275w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2019\/11\/Amazon-RDS-20x10.png 20w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2019\/11\/Amazon-RDS.png 600w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/p>\n<p>Fala Pessoal,<\/p>\n<p>Para quem encontrou meu Blog s\u00f3 agora, desde setembro j\u00e1 tinha liberado scripts para criar 40 alertas no SQL Server:<\/p>\n<p><a href=\"https:\/\/www.fabriciolima.net\/blog\/2019\/09\/22\/passo-a-passo-de-como-criar-40-alertas-para-monitorar-seu-sql-server\/\" target=\"_blank\" rel=\"noopener\">https:\/\/www.fabriciolima.net\/blog\/2019\/09\/22\/passo-a-passo-de-como-criar-40-alertas-para-monitorar-seu-sql-server\/<\/a><\/p>\n<p>Tamb\u00e9m gravei um mini curso gr\u00e1tis explicando em detalhes como configurar esses 40 alertas:<\/p>\n<p><a href=\"https:\/\/cursos.fabriciolima.net\/course?courseid=criando-40-alertas-para-monitorar-o-sql-server\">https:\/\/cursos.fabriciolima.net\/course?courseid=criando-40-alertas-para-monitorar-o-sql-server<\/a><\/p>\n<p>Contudo, esses alertas funcionam para voc\u00ea que administra uma inst\u00e2ncia &#8220;normal&#8221; do SQL Server (F\u00edsico ou Virtual).<\/p>\n<p>Quem utiliza o SQL Server na <strong>Amazon<\/strong> como servi\u00e7o (<strong>RDS<\/strong>), n\u00e3o consegue configurar esse tipo de e-mail diretamente do SQL Server.<\/p>\n<p>E agora Fabr\u00edcio? Quem poder\u00e1 me defender?<\/p>\n<p>R: EU!!! O DBA dos alertas.<\/p>\n<p>Segue abaixo uma poss\u00edvel solu\u00e7\u00e3o para esse problema:<\/p>\n<p>1 &#8211; Salvar os e-mails que deveriam ser enviados em uma tabela no RDS<\/p>\n<p>2 &#8211; Criar uma outra m\u00e1quina virtual com o SQL Server (sem ser Express)<\/p>\n<p>3 &#8211; Criar um Linked Server do seu SQL Server na VM para o RDS da Amazon<\/p>\n<p>4 &#8211; Fazer a conex\u00e3o com o RDS via Linked Server para pegar os e-mails que devem ser enviados e enviar da VM<\/p>\n<p>\u00c9 exatamente isso que estou usando com meus clientes RDS.<\/p>\n<p><strong>Me ensina a fazer isso Fabr\u00edcio?<\/strong><\/p>\n<p>Claro, vamos fazer aqui juntos.<\/p>\n<p>Segue abaixo o passo a passo que usei para criar em um cliente:<\/p>\n<p><strong>1 &#8211; Criar uma base chamada Traces no RDS do cliente<\/strong><\/p>\n<p>&nbsp;<\/p>\n<p><strong>2 &#8211; Abrir os scripts de cria\u00e7\u00e3o dos alertas no Github (free):<\/strong><\/p>\n<p><a href=\"https:\/\/github.com\/FabricioLimaSolucoesEmBD\/Script_SQLServer_Alerts\">https:\/\/github.com\/FabricioLimaSolucoesEmBD\/Script_SQLServer_Alerts<\/a><\/p>\n<p>&nbsp;<\/p>\n<p><strong>3 &#8211; Execu\u00e7\u00e3o do &#8220;Script 1.0 &#8211; Step by Step to Create the Alerts.sql&#8221;<\/strong><\/p>\n<p>Como o RDS n\u00e3o permite criar a sp_whoisactive na master, criar na base Traces que foi criada no item 1.<\/p>\n<p>No RDS n\u00e3o podemos criar um operator para os jobs na MSDB. Ent\u00e3o pule esse passo.<\/p>\n<p>Crie a tabela <strong>Ignore_Databases <\/strong>do script.<\/p>\n<p>&nbsp;<\/p>\n<p><strong>4 &#8211; Execu\u00e7\u00e3o do Script &#8220;2.0 &#8211; Create Alert Table.sql&#8221;<\/strong><\/p>\n<p>Esse Script \u00e9 s\u00f3 abrir e executar sem nenhuma altera\u00e7\u00e3o.<\/p>\n<p>&nbsp;<\/p>\n<p><strong>5 &#8211; Executar essa procedure abaixo para configurar o envio dos alertas<\/strong><\/p>\n<p>Execute a procedure para criar a tabela com todas as configura\u00e7\u00f5es de alertas. Se for preciso, esse \u00e9 o lugar onde deve acertar os valores dos alertas.<\/p>\n<p>Mude o par\u00e2metro &#8220;Email1@provedor.com;Email2@provedor.com&#8221; para os e-mails que v\u00e3o receber os alertas.<\/p>\n<p>Tamb\u00e9m mude o par\u00e2metro @Profile para o Database Mail Profile configurado no seu SQL Server da VM que far\u00e1 o envio do e-mail.<\/p>\n<p>Procedure que deve ser executada:<\/p>\n<pre class=\"lang:tsql decode:true\">USE Traces\r\n\r\nexec stpConfiguration_Table 'Email1@provedor.com;Email2@provedor.com', @Profile, @Fl_Language --(1 - Portuguese | 0 -- English)\r\n<\/pre>\n<p>&nbsp;<\/p>\n<p><strong>6 &#8211; Execu\u00e7\u00e3o do Script &#8220;2.1 &#8211; Create All Alert Procedures and Jobs.sql&#8221;<\/strong><\/p>\n<p>N\u00e3o podemos rodar o script por completo pois ele cria jobs.<\/p>\n<p>Procure no Script a string <em><strong>&#8220;USE [msdb]&#8221;<\/strong><\/em>, execute tudo o que tem acima dessa String.<\/p>\n<p>Nos 3 jobs que esse Script cria, voc\u00ea vai ter que retirar essa parte do c\u00f3digo:<\/p>\n<pre class=\"lang:tsql decode:true\">@owner_login_name = N'sa', \r\n@notify_email_operator_name=N'DBA_Operator',<\/pre>\n<p>Antes de finalizar, temos que criar uma tabela para controlar o envio de e-mail via Linked Server:<\/p>\n<pre class=\"lang:tsql decode:true \">create table Send_DbMail(Id_Send_dbMail int identity,\r\n\t\t\t\t\tDs_Profile_Email VARCHAR(200), \r\n\t\t\t\t\tDs_Email VARCHAR(500),\r\n\t\t\t\t\tDs_Subject VARCHAR(500),\r\n\t\t\t\t\tDs_Mail_HTML VARCHAR(MAX),\r\n\t\t\t\t\tDs_BodyFormat VARCHAR(50),\r\n\t\t\t\t\tDs_Importance VARCHAR(50), \r\n\t\t\t\t\tDt_Sent datetime)\r\n\r\n\r\ncreate clustered index SK01_Send_DbMail on Send_DbMail(Dt_Sent)<\/pre>\n<p>Em seguida, mudamos a procedure de envio de e-mail para salvar em uma tabela ao inv\u00e9s de enviar o e-mail direto:<\/p>\n<pre class=\"lang:tsql decode:true\">ALTER PROCEDURE stpSend_Dbmail @Ds_Profile_Email VARCHAR(200), @Ds_Email VARCHAR(500),@Ds_Subject VARCHAR(500),@Ds_Mail_HTML VARCHAR(MAX),@Ds_BodyFormat VARCHAR(50),@Ds_Importance VARCHAR(50)\r\nAS\t\t\t\r\n\tinsert into Send_DbMail(Ds_Profile_Email , Ds_Email,Ds_Subject ,Ds_Mail_HTML ,Ds_BodyFormat ,Ds_Importance)\r\n\tselect @Ds_Profile_Email,@Ds_Email,@Ds_Subject,@Ds_Mail_HTML,@Ds_BodyFormat,@Ds_Importance\r\n\r\n\t--EXEC msdb.dbo.sp_send_dbmail\r\n\t--\t@profile_name = @Ds_Profile_Email,\r\n\t--\t@recipients =\t@Ds_Email,\r\n\t--\t@subject =\t\t@Ds_Subject,\r\n\t--\t@body =\t\t\t@Ds_Mail_HTML,\r\n\t--\t@body_format =\t@Ds_BodyFormat,\r\n\t--\t@importance =\t@Ds_Importance<\/pre>\n<p>Para finalizar as customiza\u00e7\u00f5es para o RDS, abra a procedure\u00a0<strong>stpWhoIsActive_Result<\/strong> e altere a chamada da <strong>sp_whoisactive<\/strong> para a base <strong>Traces<\/strong>:<\/p>\n<pre class=\"lang:tsql decode:true \">EXEC Traces.[dbo].[sp_whoisactive]\r\n\t\t\t@get_outer_command =\t1,\r\n\t\t\t@delta_interval = 1,\r\n\t\t\t@output_column_list =\t'[dd hh:mm:ss.mss][database_name][login_name][host_name][start_time][status][session_id][blocking_session_id][wait_info][open_tran_count][CPU][CPU_delta][reads][reads_delta][writes][sql_command][sql_text]',\r\n\t\t\t@destination_table =\t'#WhoIsActive_Result'\r\n<\/pre>\n<p>Existe uma procedure que envia informa\u00e7\u00f5es do ambiente uma v\u00eaz por m\u00eas:\u00a0<strong>stpSQLServer_Configuration<\/strong><\/p>\n<p>Essa procedure \u00e9 uma s\u00e9rie de blocos com coment\u00e1rios como esse:<\/p>\n<pre class=\"lang:tsql decode:true\">\/***********************************************************************************************************************************\r\n--\tDisk Space\r\n***********************************************************************************************************************************\/<\/pre>\n<p>Procure os blocos com as descri\u00e7\u00f5es abaixo para comentar o c\u00f3digo inteiro desses blocos:<\/p>\n<ul>\n<li>&#8212; Disk Space<\/li>\n<li>&#8212; Jobs da Inst\u00e2ncia &#8211; BODY<\/li>\n<li>&#8212; SQL Server Alerts<\/li>\n<li>&#8212; Operators Agent &#8211; HEADER<\/li>\n<\/ul>\n<p>Temos que fazer isso devido a limita\u00e7\u00f5es do RDS.<\/p>\n<p>Pronto!<\/p>\n<p>Feito isso, finalmente conseguimos finalizar a execu\u00e7\u00e3o do Script 2.1<\/p>\n<p>Preferi colocar essas mudan\u00e7as aqui, ao inv\u00e9s de duplicar o c\u00f3digo dos alertas e ter que manter dois Scripts para sempre.<\/p>\n<p>Parece complexo, mas \u00e9 f\u00e1cil!<\/p>\n<p>&nbsp;<\/p>\n<p><strong>7 &#8211; Pular alguns Scripts<\/strong><\/p>\n<p>Pulem os Scripts 3.1, 3.2, 3.3, 3.4 e 3.5<\/p>\n<p>O Script 3.6, na minha opini\u00e3o, deveria ter em todo SQL Server no mundo, ent\u00e3o execute ele.<\/p>\n<p>Temos que fazer a mesma altera\u00e7\u00e3o, retirando o Script abaixo da parte de cria\u00e7\u00e3o do job:<\/p>\n<pre class=\"lang:tsql decode:true\">@owner_login_name = N'sa', \r\n@notify_email_operator_name=N'DBA_Operator',<\/pre>\n<p>Tamb\u00e9m vamos pular os Scripts 3.7, 3.8 e 3.9<\/p>\n<p>Nesse momento j\u00e1 temos os alertas criados e os seguintes jobs no RDS:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-11136 aligncenter\" src=\"https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2019\/11\/Jobs_RDS_1.png\" alt=\"\" width=\"293\" height=\"178\" srcset=\"https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2019\/11\/Jobs_RDS_1.png 293w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2019\/11\/Jobs_RDS_1-100x61.png 100w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2019\/11\/Jobs_RDS_1-275x167.png 275w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2019\/11\/Jobs_RDS_1-20x12.png 20w\" sizes=\"auto, (max-width: 293px) 100vw, 293px\" \/><\/p>\n<p>Rode o Job Di\u00e1rio e veja se tudo vai funcionar corretamente.<\/p>\n<p>&nbsp;<\/p>\n<p>Agora vamos continuar com a cria\u00e7\u00e3o de um <strong>Checklist Di\u00e1rio<\/strong> para o seu banco de dados RDS.<\/p>\n<p>&nbsp;<\/p>\n<p><strong>8 &#8211; Executar o Script &#8220;4.0 &#8211; Procedures CheckList.sql&#8221;<\/strong><\/p>\n<p>Procure pela String <em><strong>&#8220;USE [msdb]&#8221;<\/strong> <\/em>e execute todo o c\u00f3digo antes dela.<\/p>\n<p>Em seguida, retire o owner e o operator dos 5 jobs que esse script cria para que consiga criar com sucesso:<\/p>\n<pre class=\"lang:tsql decode:true \">@owner_login_name = N'sa', \r\n@notify_email_operator_name=N'DBA_Operator',<\/pre>\n<p>Desabilite um item do checklist que n\u00e3o funciona no RDS:<\/p>\n<pre class=\"lang:tsql decode:true \">update CheckList_Parameter\r\nset Fl_Enabled = 0\r\nwhere Nm_Procedure = 'stpCheckList_Jobs_Running'<\/pre>\n<p>Feito isso criamos v\u00e1rias tabelas, procedures e os jobs abaixo:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-11137 aligncenter\" src=\"https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2019\/11\/Jobs_RDS_2.png\" alt=\"\" width=\"299\" height=\"298\" srcset=\"https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2019\/11\/Jobs_RDS_2.png 299w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2019\/11\/Jobs_RDS_2-150x150.png 150w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2019\/11\/Jobs_RDS_2-100x100.png 100w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2019\/11\/Jobs_RDS_2-275x274.png 275w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2019\/11\/Jobs_RDS_2-20x20.png 20w\" sizes=\"auto, (max-width: 299px) 100vw, 299px\" \/><\/p>\n<p>Finalizamos com isso a cria\u00e7\u00e3o do checklist do banco de dados.<\/p>\n<p>&nbsp;<\/p>\n<p><strong>9 &#8211;\u00a0Executar o Script 4.1 &#8211; Delete Old Data.sql<\/strong><\/p>\n<p>Acertar a parte do job igual j\u00e1 fizemos anteriormente.<\/p>\n<p>Esse Script serve para manter a base Traces pequena.<\/p>\n<p>&nbsp;<\/p>\n<p>Agora vamos implementar o processo de envio do e-mail de uma VM nossa com SQL Server que tem acesso ao RDS da Amazon.<\/p>\n<p>&nbsp;<\/p>\n<p><strong>10 &#8211; Criar um Linked Server da nossa VM com SQL Server para o RDS da Amazon.<\/strong><\/p>\n<p>Para criar um LS, criamos um usu\u00e1rio chamado <strong>LS_DBA<\/strong> no <strong>RDS<\/strong> e damos permiss\u00e3o na tabela de controle do envio dos e-mails:<\/p>\n<pre class=\"lang:tsql decode:true\">USE [master]\r\nGO\r\nCREATE LOGIN [LS_DBA] WITH PASSWORD=N'XXXXXX', DEFAULT_DATABASE=[Traces], CHECK_EXPIRATION=OFF, CHECK_POLICY=OFF\r\nGO\r\nUSE [Traces]\r\nGO\r\nCREATE USER [LS_DBA] FOR LOGIN [LS_DBA]\r\nGO\r\n\r\nGRANT SELECT,UPDATE on Send_DbMail to [LS_DBA]<\/pre>\n<p>Depois voc\u00ea deve cria um LS da sua VM com SQL Server para o RDS (n\u00e3o vou colocar o passo a passo disso aqui).<\/p>\n<p>&nbsp;<\/p>\n<p><strong>11 &#8211; Para finalizar, basta criar um job na VM com SQL Server com o script abaixo:<\/strong><\/p>\n<pre class=\"lang:tsql decode:true \">select *\r\ninto #Envio_Email\r\nfrom [NOME_LS].Traces.dbo.Send_DbMail\r\nwhere Dt_sent is null\r\n\r\ndeclare @Ds_Profile_Email VARCHAR(200), @Ds_Email VARCHAR(500),@Ds_Subject VARCHAR(500),@Ds_Mail_HTML VARCHAR(MAX),@Ds_BodyFormat VARCHAR(50),@Ds_Importance VARCHAR(50),@Id_Send_DbMail int\r\n\r\nwhile exists (select null from #Envio_Email)\r\nbegin\r\n\r\n\tselect top 1 @Ds_Profile_Email = Ds_Profile_Email, @Ds_Email = Ds_Email, @Ds_Subject = Ds_Subject, @Ds_Mail_HTML = Ds_Mail_HTML,\r\n\t\t@Ds_BodyFormat=Ds_BodyFormat,@Ds_Importance=Ds_Importance,@Id_Send_DbMail = Id_Send_DbMail\r\n\tfrom #Envio_Email\r\n\torder by Id_Send_DbMail\r\n\r\n\r\n\tEXEC msdb.dbo.sp_send_dbmail\r\n\t\t\t\t\t@profile_name = @Ds_Profile_Email,\r\n\t\t\t\t\t@recipients =\t@Ds_Email,\r\n\t\t\t\t\t@subject =\t\t@Ds_Subject,\r\n\t\t\t\t\t@body =\t\t\t@Ds_Mail_HTML,\r\n\t\t\t\t\t@body_format =\t@Ds_BodyFormat,\r\n\t\t\t\t\t@importance =\t@Ds_Importance\t\t\r\n\r\n\tupdate [NOME_LS].Traces.dbo.Send_DbMail\r\n\tset Dt_Sent = getdate()\r\n\twhere Id_Send_DbMail = @Id_Send_DbMail\r\n\r\n\tdelete from #Envio_Email\r\n\twhere Id_Send_DbMail= @Id_Send_DbMail\r\n\r\nend\r\n<\/pre>\n<p>&nbsp;<\/p>\n<p><strong>Ufa! Pronto!!!<\/strong><\/p>\n<p>Agora temos <strong>mais de 30 alertas<\/strong> para incrementar nosso monitoramento no <strong>RDS<\/strong> da <strong>Amazon (<\/strong>os riscos em vermelho n\u00e3o est\u00e3o dispon\u00edveis):<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-11138 aligncenter\" src=\"https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2019\/11\/Alertas-RDS-new-300x168.png\" alt=\"\" width=\"715\" height=\"400\" srcset=\"https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2019\/11\/Alertas-RDS-new-300x168.png 300w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2019\/11\/Alertas-RDS-new-1024x572.png 1024w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2019\/11\/Alertas-RDS-new-768x429.png 768w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2019\/11\/Alertas-RDS-new-700x391.png 700w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2019\/11\/Alertas-RDS-new-410x229.png 410w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2019\/11\/Alertas-RDS-new-100x56.png 100w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2019\/11\/Alertas-RDS-new-275x154.png 275w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2019\/11\/Alertas-RDS-new-20x11.png 20w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2019\/11\/Alertas-RDS-new.png 1372w\" sizes=\"auto, (max-width: 715px) 100vw, 715px\" \/><\/p>\n<p>Segue um exemplo do alerta de lock que criamos:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-11147 aligncenter\" src=\"https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2019\/11\/lock2-300x105.jpg\" alt=\"\" width=\"960\" height=\"336\" srcset=\"https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2019\/11\/lock2-300x105.jpg 300w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2019\/11\/lock2-1024x359.jpg 1024w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2019\/11\/lock2-768x269.jpg 768w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2019\/11\/lock2-1536x539.jpg 1536w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2019\/11\/lock2-700x245.jpg 700w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2019\/11\/lock2-410x144.jpg 410w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2019\/11\/lock2-100x35.jpg 100w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2019\/11\/lock2-275x96.jpg 275w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2019\/11\/lock2-20x7.jpg 20w, https:\/\/fabriciolima.net\/blog\/wp-content\/uploads\/2019\/11\/lock2.jpg 1600w\" sizes=\"auto, (max-width: 960px) 100vw, 960px\" \/><\/p>\n<p>Nele temos quem est\u00e1 bloqueando quem, de qual host, quais as queries envolvidas e ainda temos o resultado da whoisactive com todas as outras queries em execu\u00e7\u00e3o.<\/p>\n<p>At\u00e9 onde sei a amazon n\u00e3o disponibiliza nenhum alerta com todas essas informa\u00e7\u00f5es para voc\u00ea olhar do seu celular quem est\u00e1 bloqueando quem.<\/p>\n<p><strong>Mas Fabr\u00edcio, para eu criar esses jobs eu vou ter que pagar uma VM com SQL Server para poder enviar os e-mails???<\/strong><\/p>\n<p><strong>R: Voc\u00ea tem 2 op\u00e7\u00f5es:<\/strong><\/p>\n<p>1 &#8211; Implementar isso tudo sozinho e usar um SQL Server que voc\u00ea j\u00e1 possua para criar esse LS. Se n\u00e3o tiver, vai ter que pagar a mensalidade mesmo.<\/p>\n<p>2 &#8211; Contratar nossos servi\u00e7os para que possamos implantar tudo isso para voc\u00ea utlizando nossa VM que j\u00e1 pagamos para enviar os e-mails.<\/p>\n<p>&nbsp;<\/p>\n<p>Ou seja, estou te ensinando a fazer tudo de gra\u00e7a. Mas se n\u00e3o conseguir ou n\u00e3o tiver tempo para implementar essas rotinas, te ofere\u00e7o ajuda de consultoria do nosso time para implementar tudo isso.<\/p>\n<p>O importante \u00e9 seu SQL Server ser muito bem monitorado.<\/p>\n<p><b>Gostou desse Post?<\/b><\/p>\n<p>Curta, comente, compartilhe\u2026<\/p>\n<p>Curta nossa p\u00e1gina no\u00a0<a class=\"external-link wpel-icon-left\" href=\"https:\/\/www.facebook.com\/FabricioLimaSolucoesemBancodeDados\/\" target=\"_blank\" rel=\"external noopener noreferrer nofollow\" data-wpel-link=\"external\">Facebook<\/a>\u00a0,\u00a0<a class=\"external-link wpel-icon-left\" href=\"https:\/\/www.linkedin.com\/company\/fabriciolimasolucoesembd\" target=\"_blank\" rel=\"noopener external noreferrer nofollow\" data-wpel-link=\"external\">LinkedIn<\/a>\u00a0e\u00a0<a class=\"external-link wpel-icon-left\" href=\"https:\/\/www.instagram.com\/fabriciolimasolucoesembd\" target=\"_blank\" rel=\"noopener external noreferrer nofollow\" data-wpel-link=\"external\">Instagram<\/a>\u00a0para receber Dicas de Leituras, V\u00eddeos e Eventos sobre SQL Server.<\/p>\n<p>At\u00e9 a pr\u00f3xima.<\/p>\n<p>&nbsp;<\/p>\n<p>Abra\u00e7os,<\/p>\n<p>Fabr\u00edcio Lima<\/p>\n<p>CEO na Fabr\u00edcio Lima Solu\u00e7\u00f5es em BD<\/p>\n<p>Microsoft Data Platform MVP<\/p>\n<p>Instagram:<a class=\"external-link wpel-icon-left\" href=\"https:\/\/www.instagram.com\/fabriciofrancalima\/\" target=\"_blank\" rel=\"noopener nofollow external noreferrer\" data-wpel-link=\"external\">@fabriciofrancalima<\/a><\/p>\n<p>Linkedin:\u00a0<a class=\"external-link wpel-icon-left\" href=\"https:\/\/www.linkedin.com\/in\/fabriciolimasolucoesembd\/\" target=\"_blank\" rel=\"noopener nofollow external noreferrer\" data-wpel-link=\"external\">https:\/\/www.linkedin.com\/in\/fabriciolimasolucoesembd\/<\/a><\/p>\n<p>Consultoria: comercial@fabriciolima.net<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Fala Pessoal, Para quem encontrou meu Blog s\u00f3 agora, desde setembro j\u00e1 tinha liberado scripts para criar 40 alertas no SQL Server: https:\/\/www.fabriciolima.net\/blog\/2019\/09\/22\/passo-a-passo-de-como-criar-40-alertas-para-monitorar-seu-sql-server\/ Tamb\u00e9m gravei um mini curso gr\u00e1tis explicando em detalhes como configurar esses 40 alertas: https:\/\/cursos.fabriciolima.net\/course?courseid=criando-40-alertas-para-monitorar-o-sql-server Contudo, esses alertas funcionam para voc\u00ea que administra uma inst\u00e2ncia &#8220;normal&#8221; do SQL Server (F\u00edsico ou Virtual). [&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,1735,942,991,33,280],"tags":[1742,1741,1736,1737,1745,1740,1743,1744,1739,1738,33],"class_list":["post-11132","post","type-post","status-publish","format-standard","hentry","category-administracao-de-bd","category-amazon-rds","category-consultoria-sql-server","category-dba-remoto","category-sql-server","category-virtual-pass-br","tag-alerta-amazon","tag-alerta-rds","tag-amazon","tag-aws","tag-dba-rds","tag-email-rds","tag-email-sql-server-rds","tag-monitoramento-rds","tag-rds-amazon","tag-rds-sql-server","tag-sql-server"],"post_mailing_queue_ids":[],"_links":{"self":[{"href":"https:\/\/fabriciolima.net\/blog\/wp-json\/wp\/v2\/posts\/11132","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=11132"}],"version-history":[{"count":16,"href":"https:\/\/fabriciolima.net\/blog\/wp-json\/wp\/v2\/posts\/11132\/revisions"}],"predecessor-version":[{"id":11163,"href":"https:\/\/fabriciolima.net\/blog\/wp-json\/wp\/v2\/posts\/11132\/revisions\/11163"}],"wp:attachment":[{"href":"https:\/\/fabriciolima.net\/blog\/wp-json\/wp\/v2\/media?parent=11132"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fabriciolima.net\/blog\/wp-json\/wp\/v2\/categories?post=11132"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fabriciolima.net\/blog\/wp-json\/wp\/v2\/tags?post=11132"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}