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.

como_o_mirror_pode_salva_a_sua_noitePara 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.

como_o_mirror_pode_salva_a_sua_noite_notificacao-2Ao 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.

como_o_mirror_pode_salva_a_sua_noite_suspects_pages

como_o_mirror_pode_salva_a_sua_noite_event_log

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.

como_o_mirror_pode_salva_a_sua_noite_request_page_mirror

como_o_mirror_pode_salva_a_sua_noite_recive_page_mirror

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.

como_o_mirror_pode_salva_a_sua_noite_dbcc_checkdb

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

2 Comments

Deixe uma resposta