Loading…

Database Mirroring – Tempo Failover – HS Without Automatic Failover

Olá Pessoal,

A ideia desse teste é verificar o tempo que o Database Mirroring leva para fazer um failover manual de um servidor para o outro utilizando esse Operation mode.

Instâncias participantes dos testes:

1 – Instancia5              – Servidor Principal, referenciado no texto por Servidor A
2 – Instancia5\INST1    – Servidor Mirror, referenciado no texto por Servidor B

Nome da database espelhada: Mirror1

Script de criação da tabela Teste:

CREATE TABLE [dbo].[Teste](
[Cod] [int] IDENTITY(1,1) NOT NULL,
[Data] [datetime] NULL,
[Texto] [varchar](4000) NULL)

Loop de insert do teste:
while 1=1
begin
if exists (select null
from sys.databases
where name = ‘MIRROR1’ and state_desc = ‘ONLINE’)
insert into mirror1..Teste(texto)
select @@servername
end

Com um database mirroring configurado com o modo High Safety without Automatic Failover conforme pode ser visto abaixo:

Foram executadas cinco queries com loops infinitos de Inserts.

Em seguida foi feito o failover manual do servidor A para o Servidor B com o comando abaixo:

ALTER DATABASE mirror1 set partner failover

Como a query do loop possui uma verificação que só realiza o insert quando a database está ONLINE, esse loop também ficou sendo executado no servidor B para que assim que a database ficasse online, um insert fosse feito nessa tabela.

Assim, como a coluna Texto possui o nome do servidor onde o insert foi executado, é possível medir o tempo de failover entre as duas instancias. Para isso, foi verificado quando a coluna Texto troca o nome do servidor e com isso é possível saber a última inserção em um ambiente e a primeira inserção em outro ambiente.

Segue o resultado encontrado:

Comparando as duas colunas do tipo datetime, temos que o tempo do failover manual foi de 4.1 segundos.

Conclusão: Essa opção de realizar um FAILOVER MANUAL é bem interessante para a instalação de Hotfix e Services Packs nos servidores, pois pode diminuir o tempo de indisponibilidade dos sistemas enquanto um Service Pack está sendo instalado.
Ex.: Da ultima vez que fui instalar o SP3 do SQL Server 2005 em um servidor de produção eu demorei 30 minutos incluindo o boot.

Até o próximo Post.

Artigos relacionados:

Série de Posts sobre Database Mirroring

Database Mirroring – Como alterar o Operation Mode

Database Mirroring – Operation Mode High Performance – Parte 1

Database Mirroring – Operation Mode High Performance – Parte 2

Database Mirroring – Operation Mode High Performance – Parte 3

Database Mirroring – Operation Mode High Safety Without Failover – Parte 1

Database Mirroring – Operation Mode High Safety Without Failover – Parte 2

Database Mirroring – Operation Mode High Safety with Automatic Failover

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

4 thoughts on “Database Mirroring – Tempo Failover – HS Without Automatic Failover

  1. Grande Fabrício, excelente post. Mas me diga, quando você trabalha em um ambiente onde o app é desktop, ou seja, tem sempre um arquivo de configuração que aponta qual o instância/banco que deve se conectar pra o sistema ficar operacional. Tenho um ambiente onde são 120 hots e em cada host tem um arquivo que é configurado a instância de conexão do aplicativo mais o banco de dados que deve ser usado. Tenho um Mirror nesse ambiente, porém sempre configuro ele manual, pois em caso de falha tenho que rodar um script .bat pra alterar o caminho do novo servidor principal. Como faz em seu ambiente???

    Abraços!

    1. Boa Tarde Jeferson,

      Obrigado.

      No meu caso a estratégia é alterar no DNS para o servidor secundário receber as conexões que iriam para o servidor primário em caso de desastre.

      No ALWAYSON do SQL 2012 isso é resolvido com o Listener que é um nome virtual que faz essa virada transparente para a aplicação.

      Abraços.

  2. Show meu caro. Uma ótima e perfeita solução. Irei adotar como estratégia, pois rodo um .bat que por muitas vezes não altera o caminho em todos os hots.

    Obrigado.

    Sucesso!

Deixe uma resposta