{"id":758,"date":"2016-10-31T14:27:45","date_gmt":"2016-10-31T14:27:45","guid":{"rendered":"http:\/\/www.tiagoneves.net\/blog\/?p=758"},"modified":"2016-11-01T00:51:06","modified_gmt":"2016-11-01T00:51:06","slug":"como-o-mirror-pode-salva-a-sua-noite","status":"publish","type":"post","link":"https:\/\/www.tiagoneves.net\/blog\/como-o-mirror-pode-salva-a-sua-noite\/","title":{"rendered":"Como o Mirror pode salvar a sua noite!!!"},"content":{"rendered":"<p style=\"text-align: justify;\">Ol\u00e1 pessoal, tudo certo?<\/p>\n<p style=\"text-align: justify;\">Hoje vou compartilhar com voc\u00eas como o Database Mirroring pode salvar a sua noite, primeiramente precisamos entender o que \u00e9\u00a0Database Mirroring e como o que ele funciona.<\/p>\n<p style=\"text-align: justify;\"><strong>O que \u00e9 Database Mirroring no Sql Server?<\/strong><\/p>\n<p style=\"text-align: justify;\">O Database Mirroring foi oficialmente disponibilizado a partir do SQL Server 2005 Service Pack 1 (SP1), database mirroring foi uma solu\u00e7\u00e3o de software que permite aumentar a disponibilidade do seu ambiente.<\/p>\n<p style=\"text-align: justify;\">O database mirroring permite que voc\u00ea tenha uma c\u00f3pia id\u00eantica do seu banco de dados em um outro servidor, essa c\u00f3pia pode ser de forma s\u00edncrona ou ass\u00edncrona.<\/p>\n<p style=\"text-align: justify;\"><a href=\"https:\/\/i0.wp.com\/www.tiagoneves.net\/blog\/wp-content\/uploads\/2016\/10\/Como_o_Mirror_pode_salva_a_sua_noite.png\" rel=\"lightbox[758]\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-760 aligncenter\" src=\"https:\/\/i0.wp.com\/www.tiagoneves.net\/blog\/wp-content\/uploads\/2016\/10\/Como_o_Mirror_pode_salva_a_sua_noite.png?resize=336%2C197\" alt=\"como_o_mirror_pode_salva_a_sua_noite\" width=\"336\" height=\"197\" srcset=\"https:\/\/i0.wp.com\/www.tiagoneves.net\/blog\/wp-content\/uploads\/2016\/10\/Como_o_Mirror_pode_salva_a_sua_noite.png?w=336&amp;ssl=1 336w, https:\/\/i0.wp.com\/www.tiagoneves.net\/blog\/wp-content\/uploads\/2016\/10\/Como_o_Mirror_pode_salva_a_sua_noite.png?resize=300%2C176&amp;ssl=1 300w\" sizes=\"auto, (max-width: 336px) 100vw, 336px\" \/><\/a>Para mais informa\u00e7\u00f5es sobre como configurar o database mirroring, o Nilton Pinheiro tem <a href=\"http:\/\/www.mcdbabrasil.com.br\/modules.php?name=News&amp;file=article&amp;sid=336\" target=\"_blank\">post<\/a> com step-by-step de como realizar a configura\u00e7\u00e3o.<\/p>\n<p style=\"text-align: justify;\">Mas o objetivo deste post \u00e9 mostrar como o database mirroring pode te ajudar passar por um problema de corrup\u00e7\u00e3o de dados.<\/p>\n<p style=\"text-align: justify;\">Uma bela noite o DBA vai embora para casa, feliz da vida depois de um dia produtivo, chega em casa e sai para dar uma corrida para manter a forma (&#8220;<strong>ainda estou no projeto dba fitness<\/strong>&#8220;), quando chega em casa e verifica no celular um alerta que existe uma base corrompida na sua principal inst\u00e2ncia.<\/p>\n<p style=\"text-align: justify;\"><a href=\"https:\/\/i0.wp.com\/www.tiagoneves.net\/blog\/wp-content\/uploads\/2016\/10\/Como_o_Mirror_pode_salva_a_sua_noite_notificacao-2.png\" rel=\"lightbox[758]\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" class=\"wp-image-762 aligncenter\" src=\"https:\/\/i0.wp.com\/www.tiagoneves.net\/blog\/wp-content\/uploads\/2016\/10\/Como_o_Mirror_pode_salva_a_sua_noite_notificacao-2.png?resize=167%2C297\" alt=\"como_o_mirror_pode_salva_a_sua_noite_notificacao-2\" width=\"167\" height=\"297\" srcset=\"https:\/\/i0.wp.com\/www.tiagoneves.net\/blog\/wp-content\/uploads\/2016\/10\/Como_o_Mirror_pode_salva_a_sua_noite_notificacao-2.png?w=371&amp;ssl=1 371w, https:\/\/i0.wp.com\/www.tiagoneves.net\/blog\/wp-content\/uploads\/2016\/10\/Como_o_Mirror_pode_salva_a_sua_noite_notificacao-2.png?resize=169%2C300&amp;ssl=1 169w\" sizes=\"auto, (max-width: 167px) 100vw, 167px\" \/><\/a>Ao visualizar a mensagem, j\u00e1 veio aquele pensamento terr\u00edvel, &#8220;<em>perdi a minha noite<\/em>&#8221; , vem o frio na barriga &#8220;<em>qual foi o estrago?<\/em>&#8220;, passado os momentos de adrenalina alta, logo penso, primeiro passo em um momento de crise \u00e9 <strong>N\u00c3O FICAR DESESPERADO!!!<br \/>\n<\/strong><\/p>\n<p style=\"text-align: justify;\">Bom, comecei a atuar, primeiro passo foi verificar qual era o banco e qual pagina estava corrompida, essa informa\u00e7\u00e3o voc\u00ea obt\u00e9m na tabela <a href=\"https:\/\/msdn.microsoft.com\/pt-br\/library\/ms174425.aspx\" target=\"_blank\">suspect_pages<\/a> na database MSDB, toda vez que o SQL Server identifica uma p\u00e1gina, que ele suspeita que ela esta corrompida ele insere as informa\u00e7\u00f5es na tabela.<\/p>\n<p style=\"text-align: justify;\">Na tabela temos informa\u00e7\u00f5es como o Database_id, File_id, Page_id, Event_type, Error_count e o Last_update_date.<\/p>\n<p><a href=\"https:\/\/i0.wp.com\/www.tiagoneves.net\/blog\/wp-content\/uploads\/2016\/10\/Como_o_Mirror_pode_salva_a_sua_noite_Event_log.png\" rel=\"lightbox[758]\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-764 aligncenter\" src=\"https:\/\/i0.wp.com\/www.tiagoneves.net\/blog\/wp-content\/uploads\/2016\/10\/Como_o_Mirror_pode_salva_a_sua_noite_Suspects_pages.png?resize=486%2C41\" alt=\"como_o_mirror_pode_salva_a_sua_noite_suspects_pages\" width=\"486\" height=\"41\" srcset=\"https:\/\/i0.wp.com\/www.tiagoneves.net\/blog\/wp-content\/uploads\/2016\/10\/Como_o_Mirror_pode_salva_a_sua_noite_Suspects_pages.png?w=486&amp;ssl=1 486w, https:\/\/i0.wp.com\/www.tiagoneves.net\/blog\/wp-content\/uploads\/2016\/10\/Como_o_Mirror_pode_salva_a_sua_noite_Suspects_pages.png?resize=300%2C25&amp;ssl=1 300w\" sizes=\"auto, (max-width: 486px) 100vw, 486px\" \/><\/a><\/p>\n<p><a href=\"https:\/\/i0.wp.com\/www.tiagoneves.net\/blog\/wp-content\/uploads\/2016\/10\/Como_o_Mirror_pode_salva_a_sua_noite_Event_log.png\" rel=\"lightbox[758]\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-765 aligncenter\" src=\"https:\/\/i0.wp.com\/www.tiagoneves.net\/blog\/wp-content\/uploads\/2016\/10\/Como_o_Mirror_pode_salva_a_sua_noite_Event_log.png?resize=678%2C57\" alt=\"como_o_mirror_pode_salva_a_sua_noite_event_log\" width=\"678\" height=\"57\" srcset=\"https:\/\/i0.wp.com\/www.tiagoneves.net\/blog\/wp-content\/uploads\/2016\/10\/Como_o_Mirror_pode_salva_a_sua_noite_Event_log.png?w=1066&amp;ssl=1 1066w, https:\/\/i0.wp.com\/www.tiagoneves.net\/blog\/wp-content\/uploads\/2016\/10\/Como_o_Mirror_pode_salva_a_sua_noite_Event_log.png?resize=300%2C25&amp;ssl=1 300w, https:\/\/i0.wp.com\/www.tiagoneves.net\/blog\/wp-content\/uploads\/2016\/10\/Como_o_Mirror_pode_salva_a_sua_noite_Event_log.png?resize=768%2C64&amp;ssl=1 768w, https:\/\/i0.wp.com\/www.tiagoneves.net\/blog\/wp-content\/uploads\/2016\/10\/Como_o_Mirror_pode_salva_a_sua_noite_Event_log.png?resize=1024%2C85&amp;ssl=1 1024w\" sizes=\"auto, (max-width: 678px) 100vw, 678px\" \/><\/a><\/p>\n<p style=\"text-align: justify;\">Ao ver a mensagem j\u00e1 fiquei tranquilo porque o event_type = 5, quer dizer que a pagina foi recuperada, atrav\u00e9s do database mirroring ou do AlwaysOn, mas para confirmar procurei informa\u00e7\u00f5es no log do SQL Server, e encontrei dois registros de informa\u00e7\u00f5es um do servidor principal solicitando a pagina e a outra o mirror entregando a pagina.<\/p>\n<p><a href=\"https:\/\/i0.wp.com\/www.tiagoneves.net\/blog\/wp-content\/uploads\/2016\/10\/Como_o_Mirror_pode_salva_a_sua_noite_Recive_page_mirror.png\" rel=\"lightbox[758]\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-766 aligncenter\" src=\"https:\/\/i0.wp.com\/www.tiagoneves.net\/blog\/wp-content\/uploads\/2016\/10\/Como_o_Mirror_pode_salva_a_sua_noite_Request_page_mirror.png?resize=621%2C46\" alt=\"como_o_mirror_pode_salva_a_sua_noite_request_page_mirror\" width=\"621\" height=\"46\" srcset=\"https:\/\/i0.wp.com\/www.tiagoneves.net\/blog\/wp-content\/uploads\/2016\/10\/Como_o_Mirror_pode_salva_a_sua_noite_Request_page_mirror.png?w=621&amp;ssl=1 621w, https:\/\/i0.wp.com\/www.tiagoneves.net\/blog\/wp-content\/uploads\/2016\/10\/Como_o_Mirror_pode_salva_a_sua_noite_Request_page_mirror.png?resize=300%2C22&amp;ssl=1 300w\" sizes=\"auto, (max-width: 621px) 100vw, 621px\" \/><\/a><\/p>\n<p><a href=\"https:\/\/i0.wp.com\/www.tiagoneves.net\/blog\/wp-content\/uploads\/2016\/10\/Como_o_Mirror_pode_salva_a_sua_noite_Recive_page_mirror.png\" rel=\"lightbox[758]\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-767 aligncenter\" src=\"https:\/\/i0.wp.com\/www.tiagoneves.net\/blog\/wp-content\/uploads\/2016\/10\/Como_o_Mirror_pode_salva_a_sua_noite_Recive_page_mirror.png?resize=667%2C48\" alt=\"como_o_mirror_pode_salva_a_sua_noite_recive_page_mirror\" width=\"667\" height=\"48\" srcset=\"https:\/\/i0.wp.com\/www.tiagoneves.net\/blog\/wp-content\/uploads\/2016\/10\/Como_o_Mirror_pode_salva_a_sua_noite_Recive_page_mirror.png?w=667&amp;ssl=1 667w, https:\/\/i0.wp.com\/www.tiagoneves.net\/blog\/wp-content\/uploads\/2016\/10\/Como_o_Mirror_pode_salva_a_sua_noite_Recive_page_mirror.png?resize=300%2C22&amp;ssl=1 300w\" sizes=\"auto, (max-width: 667px) 100vw, 667px\" \/><\/a><\/p>\n<p>Ap\u00f3s as confirma\u00e7\u00f5es como um DBA medroso que sou, fiz mais um teste para ter certeza que a base estava integra, executei o DBCC Checkdb na base, o que confirmou que n\u00e3o tinha mais erro na base.<\/p>\n<p><a href=\"https:\/\/i0.wp.com\/www.tiagoneves.net\/blog\/wp-content\/uploads\/2016\/10\/Como_o_Mirror_pode_salva_a_sua_noite_DBCC_Checkdb.png\" rel=\"lightbox[758]\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-768\" src=\"https:\/\/i0.wp.com\/www.tiagoneves.net\/blog\/wp-content\/uploads\/2016\/10\/Como_o_Mirror_pode_salva_a_sua_noite_DBCC_Checkdb.png?resize=678%2C34\" alt=\"como_o_mirror_pode_salva_a_sua_noite_dbcc_checkdb\" width=\"678\" height=\"34\" srcset=\"https:\/\/i0.wp.com\/www.tiagoneves.net\/blog\/wp-content\/uploads\/2016\/10\/Como_o_Mirror_pode_salva_a_sua_noite_DBCC_Checkdb.png?w=1053&amp;ssl=1 1053w, https:\/\/i0.wp.com\/www.tiagoneves.net\/blog\/wp-content\/uploads\/2016\/10\/Como_o_Mirror_pode_salva_a_sua_noite_DBCC_Checkdb.png?resize=300%2C15&amp;ssl=1 300w, https:\/\/i0.wp.com\/www.tiagoneves.net\/blog\/wp-content\/uploads\/2016\/10\/Como_o_Mirror_pode_salva_a_sua_noite_DBCC_Checkdb.png?resize=768%2C39&amp;ssl=1 768w, https:\/\/i0.wp.com\/www.tiagoneves.net\/blog\/wp-content\/uploads\/2016\/10\/Como_o_Mirror_pode_salva_a_sua_noite_DBCC_Checkdb.png?resize=1024%2C52&amp;ssl=1 1024w\" sizes=\"auto, (max-width: 678px) 100vw, 678px\" \/><\/a><\/p>\n<p style=\"text-align: justify;\">Concluindo, uma da funcionalidade do database mirroring \u00e9 conseguir copiar uma p\u00e1gina corrompida na base do espelho. Se voc\u00ea tem infraestrutura para configurar o database mirroring, vale muito configurar, pois voc\u00ea nem vai ter despesa com licenciamento e vai ter uma seguran\u00e7a maior em caso de corrup\u00e7\u00e3o de dados. Um ponto importante \u00e9 database mirroring pode te ajudar a passar por momento de recupera\u00e7\u00e3o, mas sua maior garantia sempre ser\u00e1 o backup.<\/p>\n<p style=\"text-align: justify;\">J\u00e1 conhece a comunidade de SQL Server no Esp\u00edrito Santo? ent\u00e3o venha conhecer <a href=\"http:\/\/www.tiagoneves.net\/blog\/comunidade-sql-server-es\/\" target=\"_blank\">http:\/\/www.tiagoneves.net\/blog\/comunidade-sql-server-es\/<\/a><\/p>\n<p style=\"text-align: justify;\">Bom por hoje \u00e9 isso.<\/p>\n<p style=\"text-align: justify;\">Um abra\u00e7o,<\/p>\n<p style=\"text-align: justify;\">Tiago Neves<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Ol\u00e1 pessoal, tudo certo? Hoje vou compartilhar com voc\u00eas como o Database Mirroring pode salvar a sua noite, primeiramente precisamos entender o que \u00e9\u00a0Database Mirroring e como o que ele funciona. O que \u00e9 Database Mirroring no Sql Server? O Database Mirroring foi oficialmente disponibilizado a partir do SQL Server 2005 Service Pack 1 (SP1), [&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":true,"_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":[2,20,138,5],"tags":[174,173,172,35],"class_list":["post-758","post","type-post","status-publish","format-standard","hentry","category-casos-do-dia-a-dia","category-sqlserver-geral","category-troubleshooting","category-virtual-pass-br","tag-checkdb","tag-corrupcao-de-dados","tag-database-mirroring","tag-sql-server"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p6eIyh-ce","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":758,"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\/758","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=758"}],"version-history":[{"count":7,"href":"https:\/\/www.tiagoneves.net\/blog\/wp-json\/wp\/v2\/posts\/758\/revisions"}],"predecessor-version":[{"id":774,"href":"https:\/\/www.tiagoneves.net\/blog\/wp-json\/wp\/v2\/posts\/758\/revisions\/774"}],"wp:attachment":[{"href":"https:\/\/www.tiagoneves.net\/blog\/wp-json\/wp\/v2\/media?parent=758"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.tiagoneves.net\/blog\/wp-json\/wp\/v2\/categories?post=758"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.tiagoneves.net\/blog\/wp-json\/wp\/v2\/tags?post=758"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}