Database Mirroring – Operation Mode High Performance – Parte 2
Olá Pessoal,
Neste post continuarei o teste do Operation Mode High Performance. Caso ainda não tenha visto o post anterior, sugiro que o leia antes de continuar:
Database Mirroring – Operation Mode High Performance – Parte 1
Nesse teste foi simulada uma falha com a parada do serviço do SQL Server do servidor A (Principal). Após a parada do servidor, o monitor do Mirror fica como abaixo:
Ao rodar uma query qualquer no servidor de mirror é gerado o erro abaixo:
Msg 955, Level 14, State 1, Line 2
Database Mirror1 is enabled for Database Mirroring, but the database lacks quorum: the database cannot be opened. Check the partner and witness connections if configured.
Simulando um caso real do servidor A não voltar rapidamente e você ser pressionado a colocar o banco no ar o mais rápido possível, eu subi o servidor B (Mirror) como principal. Com esse Operation Mode, a única forma de fazer isso é com uma possível perda de dados utilizando o comando abaixo:
alter database mirror1 set partner force_Service_Allow_data_loss
Após subir a base do servidor B com o force_Service_Allow_data_loss, a database voltou a ficar disponível e continuou sendo utilizada normalmente.
Simulando uma continuação normal do banco de dados no servidor B, iniciei o loop de insert no mesmo. Nesse momento, o log da database mirror1 também começou a aumentar sem parar.
Após uma grande utilização do Servidor B, o pessoal da infraestrutura resolveu o problema do servidor A e o mesmo voltou a ficar online.
O servidor A subiu com a role Mirror e o servidor B assumiu a role Principal. Entretanto, as duas instâncias do mirror ficaram com o status Suspended conforme figura abaixo:
Para deixar o mirror online, tive que executar o comando abaixo no servidor B (Principal):
alter database mirror1 set partner resume
Após a execução desse comando o mirror ficou como na figura abaixo:
O loop que já estava rodando no servidor B desde quando ele ficou disponível e assumiu o papel de Principal, não parou por nenhum momento (mesmo com o Status do Mirror em Suspended), ou seja, os sistemas não caíram novamente quando o Servidor A ficou Online.
Lembrando que como o Operation Mode utilizado foi o High Performance e utilizei a opção force_Service_Allow_data_loss, alguns dados podem ter sido perdidos.
Até o próximo post com mais um teste desse Operation Mode.
Artigos Referências:
Série de Posts sobre Database Mirroring
Database Mirroring – Como alterar o Operation Mode
Database Mirroring – Operation Mode High Performance – Parte 1
Gostou desse Post?
Cadastre seu e-mail para receber novos Posts e curta minha Página no Facebook para receber Dicas de Leituras e Eventos sobre SQL Server.
Abraços,
Fabrício Lima
MCITP – Database Administrator
Consultor e Instrutor SQL Server
Trabalha com SQL Server desde 2006