Como o Mirror pode salvar a sua noite!!!
Olá pessoal, tudo certo?
Hoje vou compartilhar com vocês como o Database Mirroring pode salvar a sua noite, primeiramente precisamos entender o que é Database Mirroring e como o que ele funciona.
O que é Database Mirroring no Sql Server?
O Database Mirroring foi oficialmente disponibilizado a partir do SQL Server 2005 Service Pack 1 (SP1), database mirroring foi uma solução de software que permite aumentar a disponibilidade do seu ambiente.
O database mirroring permite que você tenha uma cópia idêntica do seu banco de dados em um outro servidor, essa cópia pode ser de forma síncrona ou assíncrona.
Para mais informações sobre como configurar o database mirroring, o Nilton Pinheiro tem post com step-by-step de como realizar a configuração.
Mas o objetivo deste post é mostrar como o database mirroring pode te ajudar passar por um problema de corrupção de dados.
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 (“ainda estou no projeto dba fitness“), quando chega em casa e verifica no celular um alerta que existe uma base corrompida na sua principal instância.
Ao visualizar a mensagem, já veio aquele pensamento terrível, “perdi a minha noite” , vem o frio na barriga “qual foi o estrago?“, passado os momentos de adrenalina alta, logo penso, primeiro passo em um momento de crise é NÃO FICAR DESESPERADO!!!
Bom, comecei a atuar, primeiro passo foi verificar qual era o banco e qual pagina estava corrompida, essa informação você obtém na tabela suspect_pages na database MSDB, toda vez que o SQL Server identifica uma página, que ele suspeita que ela esta corrompida ele insere as informações na tabela.
Na tabela temos informações como o Database_id, File_id, Page_id, Event_type, Error_count e o Last_update_date.
Ao ver a mensagem já fiquei tranquilo porque o event_type = 5, quer dizer que a pagina foi recuperada, através do database mirroring ou do AlwaysOn, mas para confirmar procurei informações no log do SQL Server, e encontrei dois registros de informações um do servidor principal solicitando a pagina e a outra o mirror entregando a pagina.
Após as confirmações 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ão tinha mais erro na base.
Concluindo, uma da funcionalidade do database mirroring é conseguir copiar uma página corrompida na base do espelho. Se você tem infraestrutura para configurar o database mirroring, vale muito configurar, pois você nem vai ter despesa com licenciamento e vai ter uma segurança maior em caso de corrupção de dados. Um ponto importante é database mirroring pode te ajudar a passar por momento de recuperação, mas sua maior garantia sempre será o backup.
Já conhece a comunidade de SQL Server no Espírito Santo? então venha conhecer http://www.tiagoneves.net/blog/comunidade-sql-server-es/
Bom por hoje é isso.
Um abraço,
Tiago Neves
Pois interessante Tiago, mostrando a utilidade e importância do Mirror. Valeu e sucesso!
Abraço.
Luiz Vitor
Thiago, muito legal!
Obrigado por compartilhar, é uma funcionalidade importante, e é sempre bom ter esse tipo de opção prá “salvar a noite”, ou quem sabe, o emprego! rsrs
Um abraço!