{"id":450,"date":"2016-02-18T18:23:49","date_gmt":"2016-02-18T18:23:49","guid":{"rendered":"http:\/\/www.tiagoneves.net\/blog\/?p=450"},"modified":"2016-02-18T18:23:49","modified_gmt":"2016-02-18T18:23:49","slug":"notificacao-em-caso-de-failover-ou-restart-do-sql-server","status":"publish","type":"post","link":"https:\/\/www.tiagoneves.net\/blog\/notificacao-em-caso-de-failover-ou-restart-do-sql-server\/","title":{"rendered":"Notifica\u00e7\u00e3o em caso de failover ou restart do SQL Server"},"content":{"rendered":"<p>Ol\u00e1 pessoal tudo certo?<\/p>\n<p>No post de hoje vou demonstrar como criar uma notifica\u00e7\u00e3o de quando a sua inst\u00e2ncia for reiniciada ou acontecer um faillover.<\/p>\n<p>Quando administramos muitas inst\u00e2ncias, pode ocorrer alguns eventos como um restart de uma inst\u00e2ncia ou um failover e acabar passando despercebido, por isso, toda vez que ocorre um destes eventos eu recebo uma notifica\u00e7\u00e3o por email para verificar o que aconteceu.<\/p>\n<p>Para criar este alerta eu uso a sys.dm_server_services, para mais informa\u00e7\u00f5es sobre (<a href=\"https:\/\/msdn.microsoft.com\/pt-br\/library\/hh204542%28v=sql.120%29.aspx\">https:\/\/msdn.microsoft.com\/pt-br\/library\/hh204542%28v=sql.120%29.aspx<\/a>).<\/p>\n<pre class=\"theme:ssms2012 lang:tsql decode:true \">SELECT servicename, startup_type_desc, status_desc, last_startup_time\r\nFROM sys.dm_server_services<\/pre>\n<p><a href=\"https:\/\/i0.wp.com\/www.tiagoneves.net\/blog\/wp-content\/uploads\/2016\/02\/NotificacaoFailover_StatusServico.png\"  rel=\"lightbox[450] attachment wp-att-451\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-451\" src=\"https:\/\/i0.wp.com\/www.tiagoneves.net\/blog\/wp-content\/uploads\/2016\/02\/NotificacaoFailover_StatusServico.png?resize=614%2C62\" alt=\"NotificacaoFailover_StatusServico\" width=\"614\" height=\"62\" srcset=\"https:\/\/i0.wp.com\/www.tiagoneves.net\/blog\/wp-content\/uploads\/2016\/02\/NotificacaoFailover_StatusServico.png?w=614&amp;ssl=1 614w, https:\/\/i0.wp.com\/www.tiagoneves.net\/blog\/wp-content\/uploads\/2016\/02\/NotificacaoFailover_StatusServico.png?resize=300%2C30&amp;ssl=1 300w\" sizes=\"auto, (max-width: 614px) 100vw, 614px\" \/><\/a><\/p>\n<p>A notifica\u00e7\u00e3o do evento \u00e9 realizada atrav\u00e9s um job que \u00e9 executado toda vez que o SQL Agent for iniciado, ele vai enviar um e-mail notificando que houve um failover ou que a inst\u00e2ncia foi reiniciada.<\/p>\n<pre class=\"theme:ssms2012 lang:tsql decode:true\">DECLARE\r\n    @msg NVARCHAR(MAX),\r\n    @instancia VARCHAR(100),\r\n    @assunto VARCHAR(100);\r\n\r\nSELECT\r\n    @instancia = @@SERVERNAME;\r\nSET @assunto = 'A instancia ' + @instancia + ' Foi reiniciada';\r\nSET @msg = '&lt;p&gt; ' + @instancia + ' A Instancia foi reniciada.&lt;\/p&gt;';\r\n\r\nSET @msg = @msg + '&lt;table border=\"2\" cellspacing=\"2\" cellpadding=\"2\"&gt;';\r\n\r\nSET @msg = @msg + '&lt;tbody align=\"left\" style=\"font-family:Arial; font-size: 11;\" \r\n                   &lt;TR&gt;&lt;TH&gt;Service Name&lt;\/TH&gt;&lt;TH&gt;Startup Type&lt;\/TH&gt;&lt;TH&gt;Status&lt;\/TH&gt;\r\n                   &lt;TH&gt;Startup Time&lt;\/TH&gt;&lt;\/TR&gt;&lt;\/tbody&gt;';\r\n\r\nSELECT\r\n    @msg = @msg + '&lt;tbody align=\"left\" style=\"font-family:Arial;\r\n                    font-size: 11;\" &lt;TR&gt;&lt;TD&gt;' + servicename + '&lt;\/TD&gt;&lt;TD&gt;' \r\n\t           + startup_type_desc + '&lt;\/TD&gt;&lt;TD&gt;' + status_desc \r\n                   + '&lt;\/TD&gt;&lt;TD&gt;'+ CAST(last_startup_time AS VARCHAR(30))\r\n                   + '&lt;\/TD&gt;&lt;\/TR&gt;&lt;\/tbody&gt;'\r\nFROM\r\n    sys.dm_server_services;\r\n\r\n\r\nEXEC msdb.dbo.sp_send_dbmail\r\n    @profile_name = 'MSSQLSERVER',  -- \r\n    @recipients = 'meu@email.com',\r\n    @subject = @assunto, \r\n    @body = @msg, \r\n    @body_format = 'HTML';<\/pre>\n<p>Para criar o job basta expandir o SQL Agent<\/p>\n<p><a href=\"https:\/\/i0.wp.com\/www.tiagoneves.net\/blog\/wp-content\/uploads\/2016\/02\/NotificacaoFailover_CreateJob_NewJOb.png\"  rel=\"lightbox[450] attachment wp-att-454\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-454\" src=\"https:\/\/i0.wp.com\/www.tiagoneves.net\/blog\/wp-content\/uploads\/2016\/02\/NotificacaoFailover_CreateJob_NewJOb.png?resize=309%2C292\" alt=\"NotificacaoFailover_CreateJob_NewJOb\" width=\"309\" height=\"292\" srcset=\"https:\/\/i0.wp.com\/www.tiagoneves.net\/blog\/wp-content\/uploads\/2016\/02\/NotificacaoFailover_CreateJob_NewJOb.png?w=451&amp;ssl=1 451w, https:\/\/i0.wp.com\/www.tiagoneves.net\/blog\/wp-content\/uploads\/2016\/02\/NotificacaoFailover_CreateJob_NewJOb.png?resize=300%2C283&amp;ssl=1 300w\" sizes=\"auto, (max-width: 309px) 100vw, 309px\" \/><\/a><\/p>\n<p><a href=\"https:\/\/i0.wp.com\/www.tiagoneves.net\/blog\/wp-content\/uploads\/2016\/02\/NotificacaoFailover_CreateJob.png\"  rel=\"lightbox[450] attachment wp-att-453\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-453\" src=\"https:\/\/i0.wp.com\/www.tiagoneves.net\/blog\/wp-content\/uploads\/2016\/02\/NotificacaoFailover_CreateJob.png?resize=678%2C399\" alt=\"NotificacaoFailover_CreateJob\" width=\"678\" height=\"399\" srcset=\"https:\/\/i0.wp.com\/www.tiagoneves.net\/blog\/wp-content\/uploads\/2016\/02\/NotificacaoFailover_CreateJob.png?w=1306&amp;ssl=1 1306w, https:\/\/i0.wp.com\/www.tiagoneves.net\/blog\/wp-content\/uploads\/2016\/02\/NotificacaoFailover_CreateJob.png?resize=300%2C176&amp;ssl=1 300w, https:\/\/i0.wp.com\/www.tiagoneves.net\/blog\/wp-content\/uploads\/2016\/02\/NotificacaoFailover_CreateJob.png?resize=768%2C452&amp;ssl=1 768w, https:\/\/i0.wp.com\/www.tiagoneves.net\/blog\/wp-content\/uploads\/2016\/02\/NotificacaoFailover_CreateJob.png?resize=1024%2C602&amp;ssl=1 1024w\" sizes=\"auto, (max-width: 678px) 100vw, 678px\" \/><\/a><\/p>\n<p>Na guia steps voc\u00ea deve colocar o script acima.<\/p>\n<p><a href=\"https:\/\/i0.wp.com\/www.tiagoneves.net\/blog\/wp-content\/uploads\/2016\/02\/NotificacaoFailover_CreateJob_Task.png\"  rel=\"lightbox[450] attachment wp-att-455\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-455\" src=\"https:\/\/i0.wp.com\/www.tiagoneves.net\/blog\/wp-content\/uploads\/2016\/02\/NotificacaoFailover_CreateJob_Task.png?resize=678%2C397\" alt=\"NotificacaoFailover_CreateJob_Task\" width=\"678\" height=\"397\" srcset=\"https:\/\/i0.wp.com\/www.tiagoneves.net\/blog\/wp-content\/uploads\/2016\/02\/NotificacaoFailover_CreateJob_Task.png?w=1080&amp;ssl=1 1080w, https:\/\/i0.wp.com\/www.tiagoneves.net\/blog\/wp-content\/uploads\/2016\/02\/NotificacaoFailover_CreateJob_Task.png?resize=300%2C176&amp;ssl=1 300w, https:\/\/i0.wp.com\/www.tiagoneves.net\/blog\/wp-content\/uploads\/2016\/02\/NotificacaoFailover_CreateJob_Task.png?resize=768%2C450&amp;ssl=1 768w, https:\/\/i0.wp.com\/www.tiagoneves.net\/blog\/wp-content\/uploads\/2016\/02\/NotificacaoFailover_CreateJob_Task.png?resize=1024%2C600&amp;ssl=1 1024w\" sizes=\"auto, (max-width: 678px) 100vw, 678px\" \/><\/a><\/p>\n<p>Na guia schedules dever\u00e1 colocar &#8220;Start automatically when SQL Server Agent starts&#8221;<\/p>\n<p><a href=\"https:\/\/i0.wp.com\/www.tiagoneves.net\/blog\/wp-content\/uploads\/2016\/02\/NotificacaoFailover_CreateJob_Schedule.png\"  rel=\"lightbox[450] attachment wp-att-456\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-456\" src=\"https:\/\/i0.wp.com\/www.tiagoneves.net\/blog\/wp-content\/uploads\/2016\/02\/NotificacaoFailover_CreateJob_Schedule.png?resize=678%2C582\" alt=\"NotificacaoFailover_CreateJob_Schedule\" width=\"678\" height=\"582\" srcset=\"https:\/\/i0.wp.com\/www.tiagoneves.net\/blog\/wp-content\/uploads\/2016\/02\/NotificacaoFailover_CreateJob_Schedule.png?w=679&amp;ssl=1 679w, https:\/\/i0.wp.com\/www.tiagoneves.net\/blog\/wp-content\/uploads\/2016\/02\/NotificacaoFailover_CreateJob_Schedule.png?resize=300%2C258&amp;ssl=1 300w\" sizes=\"auto, (max-width: 678px) 100vw, 678px\" \/><\/a><\/p>\n<p>Pronto, quando acontecer um restart voc\u00ea vai receber um email como este.<\/p>\n<p><a href=\"https:\/\/i0.wp.com\/www.tiagoneves.net\/blog\/wp-content\/uploads\/2016\/02\/NotificacaoFailover_Email_Notificacao.png\"  rel=\"lightbox[450] attachment wp-att-457\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-457\" src=\"https:\/\/i0.wp.com\/www.tiagoneves.net\/blog\/wp-content\/uploads\/2016\/02\/NotificacaoFailover_Email_Notificacao.png?resize=678%2C244\" alt=\"NotificacaoFailover_Email_Notificacao\" width=\"678\" height=\"244\" srcset=\"https:\/\/i0.wp.com\/www.tiagoneves.net\/blog\/wp-content\/uploads\/2016\/02\/NotificacaoFailover_Email_Notificacao.png?w=684&amp;ssl=1 684w, https:\/\/i0.wp.com\/www.tiagoneves.net\/blog\/wp-content\/uploads\/2016\/02\/NotificacaoFailover_Email_Notificacao.png?resize=300%2C108&amp;ssl=1 300w\" sizes=\"auto, (max-width: 678px) 100vw, 678px\" \/><\/a><\/p>\n<p>Para criar um notifica\u00e7\u00e3o em caso de failover, \u00e9 um procedimento um pouco diferente, para isso precisamos criar uma tabela em um banco de dados, nela vamos armazenar os n\u00f3s que fazem parte do nosso cluster, essa informa\u00e7\u00e3o obtemos na fun\u00e7\u00e3o <a href=\"https:\/\/msdn.microsoft.com\/en-us\/library\/ms174396.aspx\">SERVERPROPERTY<\/a>, ela nos mostra todas as informa\u00e7\u00f5es da inst\u00e2ncia.<\/p>\n<p>Vamos criar as tabelas e popular com os dados que s\u00e3o obtidos na fun\u00e7\u00e3o SERVERPROPERTY.<\/p>\n<p>Como \u00e9 a configura\u00e7\u00e3o inicial vamos colocar os valores Nm_Servidor_Ativo e Nm_Servidor_Passivo com o mesmo valor.<\/p>\n<pre class=\"theme:ssms2012 lang:tsql decode:true\">CREATE TABLE Alerta_Failover\r\n(\r\nNm_Servidor_Ativo VARCHAR(50),\r\nNm_Servidor_Passivo VARCHAR(50)\r\n)\r\n\r\nINSERT INTO Alerta_Failover (Nm_Servidor_Ativo,Nm_Servidor_Passivo)\r\n\u00a0VALUES (CONVERT(VARCHAR(100),SERVERPROPERTY('ComputerNamePhysicalNetBIOS')),\r\n\u00a0(CONVERT(VARCHAR(100),SERVERPROPERTY('ComputerNamePhysicalNetBIOS'))))<\/pre>\n<p>Ap\u00f3s as tabelas criadas vamos criar um job, para envio do alerta em caso de failover, os passos para criar o job \u00e9 o mesmo da inst\u00e2ncia stand alone, por\u00e9m na parte de configurar o step voc\u00ea vai utilizar este script, ele vai nos notificar se houve um failover ou se apenas a inst\u00e2ncia foi reiniciada.<\/p>\n<pre class=\"theme:ssms2012 lang:tsql decode:true  \">DECLARE @Nm_Servidor_Ativo VARCHAR(100);\r\nDECLARE @Nm_Servidor_Passivo VARCHAR(100);\r\nDECLARE @msg NVARCHAR(MAX);\r\nDECLARE @instancia VARCHAR(100);\r\nDECLARE @assunto VARCHAR(100);\r\n\r\nSET @Nm_Servidor_Ativo = CONVERT(VARCHAR(100), SERVERPROPERTY('ComputerNamePhysicalNetBIOS'));\r\nSET @Nm_Servidor_Passivo = ( SELECT Nm_Servidor_Passivo FROM Alerta_Failover );\r\nSELECT\r\n    @instancia = @@SERVERNAME;\r\n\r\n\r\nIF @Nm_Servidor_Ativo &lt;&gt; @Nm_Servidor_Passivo\r\n    \r\n\tBEGIN\r\n\r\n\r\n        UPDATE\r\n            Alerta_Failover\r\n        SET\r\n            Nm_Servidor_Ativo = @Nm_Servidor_Ativo;\r\n\r\n        SET @assunto = 'Aten\u00e7\u00e3o ocorreu um failover na inst\u00e2ncia ' + @instancia + '.';\r\n        \r\n\t\tSET @msg = '&lt;p&gt; Um failover aconteceu na inst\u00e2ncia ' + @instancia + '&lt;\/p&gt;';\r\n  \r\n        SET @msg = @msg + '&lt;table border=\"2\" cellspacing=\"2\" cellpadding=\"2\"&gt;';\r\n     \r\n        SET @msg = @msg + '&lt;tbody align=\"left\" style=\"font-family:Arial; font-size: 11;\"\r\n\t\t                   &lt;TR&gt;&lt;TH&gt;Nm_Servidor_Ativo&lt;\/TH&gt;&lt;TH&gt;Nm_Servidor_Passivo&lt;\/TH&gt;&lt;\/TR&gt;&lt;\/tbody&gt;';\r\n\t\t\r\n        SET @msg = @msg + '&lt;tbody align=\"left\" style=\"font-family:Arial; font-size: 11;\" &lt;TR&gt;&lt;TD&gt;' + @Nm_Servidor_Ativo + \r\n\t\t                  '&lt;\/TD&gt;&lt;TD&gt;' + @Nm_Servidor_Passivo + '&lt;\/TD&gt;&lt;\/TR&gt;&lt;\/tbody&gt;';\r\n\r\n        EXEC msdb.dbo.sp_send_dbmail \r\n\t\t\t@profile_name = 'MSSQLSERVER', \r\n\t\t\t@recipients = 'meu@email.com', \r\n\t\t\t@subject = @assunto, \r\n\t\t\t@body = @msg,\r\n\t\t\t@body_format = 'HTML';\r\n        \r\n\t\tUPDATE\r\n            Alerta_Failover\r\n        SET\r\n            Nm_Servidor_Passivo = @Nm_Servidor_Ativo;\r\n\t  \r\n    END;\r\n\r\n\r\nIF @Nm_Servidor_Ativo = @Nm_Servidor_Passivo  -- Restart\r\n  \r\n    DECLARE @msg_restart NVARCHAR(MAX);\r\n\tDECLARE @assunto_restart VARCHAR(100);\r\n\r\nBEGIN\r\n\r\n\r\n \r\n    SET @msg_restart = 'Aten\u00e7\u00e3o a instancia: ' + @instancia + ' foi reiniciada, mas n\u00e3o fez failover.';\r\n    SET @assunto_restart = 'Aten\u00e7\u00e3o inst\u00e2ncia: ' + @instancia + ' Foi reiniciada.';\r\n    EXEC msdb.dbo.sp_send_dbmail\r\n\t\t@profile_name = 'MSSQLSERVER', \r\n\t\t@recipients = 'meu@email.com', \r\n\t\t@subject = @assunto_restart, \r\n\t\t@body = @msg_restart;\r\n\r\nEND;\r\n<\/pre>\n<p>E-mail de notifica\u00e7\u00e3o em caso de failover.<\/p>\n<p><a href=\"https:\/\/i0.wp.com\/www.tiagoneves.net\/blog\/wp-content\/uploads\/2016\/02\/NotificacaoFailover_EmailFailover.png\"  rel=\"lightbox[450] attachment wp-att-459\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-459\" src=\"https:\/\/i0.wp.com\/www.tiagoneves.net\/blog\/wp-content\/uploads\/2016\/02\/NotificacaoFailover_EmailFailover.png?resize=678%2C230\" alt=\"NotificacaoFailover_EmailFailover\" width=\"678\" height=\"230\" srcset=\"https:\/\/i0.wp.com\/www.tiagoneves.net\/blog\/wp-content\/uploads\/2016\/02\/NotificacaoFailover_EmailFailover.png?w=718&amp;ssl=1 718w, https:\/\/i0.wp.com\/www.tiagoneves.net\/blog\/wp-content\/uploads\/2016\/02\/NotificacaoFailover_EmailFailover.png?resize=300%2C102&amp;ssl=1 300w\" sizes=\"auto, (max-width: 678px) 100vw, 678px\" \/><\/a><\/p>\n<p>E-mail de notifica\u00e7\u00e3o em caso de restart;<\/p>\n<p><a href=\"https:\/\/i0.wp.com\/www.tiagoneves.net\/blog\/wp-content\/uploads\/2016\/02\/NotificacaoFailover_EmailRestart.png\"  rel=\"lightbox[450] attachment wp-att-460\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-460\" src=\"https:\/\/i0.wp.com\/www.tiagoneves.net\/blog\/wp-content\/uploads\/2016\/02\/NotificacaoFailover_EmailRestart.png?resize=678%2C156\" alt=\"NotificacaoFailover_EmailRestart\" width=\"678\" height=\"156\" srcset=\"https:\/\/i0.wp.com\/www.tiagoneves.net\/blog\/wp-content\/uploads\/2016\/02\/NotificacaoFailover_EmailRestart.png?w=714&amp;ssl=1 714w, https:\/\/i0.wp.com\/www.tiagoneves.net\/blog\/wp-content\/uploads\/2016\/02\/NotificacaoFailover_EmailRestart.png?resize=300%2C69&amp;ssl=1 300w\" sizes=\"auto, (max-width: 678px) 100vw, 678px\" \/><\/a><\/p>\n<p>Bom pessoal, por hoje \u00e9 isso, espero que o alerta possa te ajudar a monitorar os eventos de failover e restart da sua inst\u00e2ncia e at\u00e9 a pr\u00f3xima.<\/p>\n<p>Abra\u00e7os,<\/p>\n<p>Tiago Neves<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Ol\u00e1 pessoal tudo certo? No post de hoje vou demonstrar como criar uma notifica\u00e7\u00e3o de quando a sua inst\u00e2ncia for reiniciada ou acontecer um faillover. Quando administramos muitas inst\u00e2ncias, pode ocorrer alguns eventos como um restart de uma inst\u00e2ncia ou um failover e acabar passando despercebido, por isso, toda vez que ocorre um destes eventos [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"rop_custom_images_group":[],"rop_custom_messages_group":[],"rop_publish_now":"initial","rop_publish_now_accounts":{"twitter_91251433_91251433":""},"rop_publish_now_history":[],"rop_publish_now_status":"pending","_exactmetrics_skip_tracking":false,"_exactmetrics_sitenote_active":false,"_exactmetrics_sitenote_note":"","_exactmetrics_sitenote_category":0,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"advanced_seo_description":"","jetpack_seo_html_title":"","jetpack_seo_noindex":false,"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"_wpscppro_dont_share_socialmedia":false,"_wpscppro_custom_social_share_image":0,"_facebook_share_type":"","_twitter_share_type":"","_linkedin_share_type":"","_pinterest_share_type":"","_linkedin_share_type_page":"","_instagram_share_type":"","_medium_share_type":"","_threads_share_type":"","_google_business_share_type":"","_selected_social_profile":[],"_wpsp_enable_custom_social_template":false,"_wpsp_social_scheduling":{"enabled":false,"datetime":null,"platforms":[],"status":"template_only","dateOption":"today","timeOption":"now","customDays":"","customHours":"","customDate":"","customTime":"","schedulingType":"absolute"},"_wpsp_active_default_template":true},"categories":[4,20,5],"tags":[112,111,114,113,115,116],"class_list":["post-450","post","type-post","status-publish","format-standard","hentry","category-scripts","category-sqlserver-geral","category-virtual-pass-br","tag-failover","tag-monitoramento","tag-notificacao","tag-restart","tag-tiago-neves","tag-tiagonevesdba"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p6eIyh-7g","jetpack-related-posts":[{"id":2414,"url":"https:\/\/www.tiagoneves.net\/blog\/sql-server-2016-esta-chegando-ao-fim-do-suporte-o-que-isso-significa-na-pratica\/","url_meta":{"origin":450,"position":0},"title":"SQL Server 2016 est\u00e1 chegando ao fim do suporte: o que isso significa na pr\u00e1tica?","author":"tiagoneves","date":"27 de abril de 2026","format":false,"excerpt":"O SQL Server 2016 ter\u00e1 seu suporte estendido encerrado em 14 de julho de 2026, o que resultar\u00e1 na falta de atualiza\u00e7\u00f5es de seguran\u00e7a e suporte. Continuar usando essa vers\u00e3o traz riscos como vulnerabilidades e n\u00e3o conformidade regulat\u00f3ria. Planejar a migra\u00e7\u00e3o para vers\u00f5es mais recentes ou cloud deve ser prioridade\u2026","rel":"","context":"Em &quot;Seguran\u00e7a&quot;","block_context":{"text":"Seguran\u00e7a","link":"https:\/\/www.tiagoneves.net\/blog\/category\/seguranca\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.tiagoneves.net\/blog\/wp-content\/uploads\/2026\/04\/sql_server_2016_eos_v3.png?fit=772%2C702&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.tiagoneves.net\/blog\/wp-content\/uploads\/2026\/04\/sql_server_2016_eos_v3.png?fit=772%2C702&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/www.tiagoneves.net\/blog\/wp-content\/uploads\/2026\/04\/sql_server_2016_eos_v3.png?fit=772%2C702&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/www.tiagoneves.net\/blog\/wp-content\/uploads\/2026\/04\/sql_server_2016_eos_v3.png?fit=772%2C702&ssl=1&resize=700%2C400 2x"},"classes":[]}],"jetpack_likes_enabled":true,"_links":{"self":[{"href":"https:\/\/www.tiagoneves.net\/blog\/wp-json\/wp\/v2\/posts\/450","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.tiagoneves.net\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.tiagoneves.net\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.tiagoneves.net\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.tiagoneves.net\/blog\/wp-json\/wp\/v2\/comments?post=450"}],"version-history":[{"count":4,"href":"https:\/\/www.tiagoneves.net\/blog\/wp-json\/wp\/v2\/posts\/450\/revisions"}],"predecessor-version":[{"id":510,"href":"https:\/\/www.tiagoneves.net\/blog\/wp-json\/wp\/v2\/posts\/450\/revisions\/510"}],"wp:attachment":[{"href":"https:\/\/www.tiagoneves.net\/blog\/wp-json\/wp\/v2\/media?parent=450"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.tiagoneves.net\/blog\/wp-json\/wp\/v2\/categories?post=450"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.tiagoneves.net\/blog\/wp-json\/wp\/v2\/tags?post=450"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}